Google
 

Open Sound System
OSS 4.x Programmer's Guide

Do you have problems with sound/audio application development? Don't panic! Click here for help!

SNDCTL_DSP_SYNC

Suspend the application until all samples have been played

Usage

ioctl(fd, SNDCTL_DSP_SYNC, NULL);

The above code fragment lacks all error checks for clarity. Real world applications must always check for the errors and handle them as described below. Also most OSS ioctl calls will return information in the argument variable and it's usually necessary to check it too.

Description

This ioctl can be used to wait until all samples written to the audio device have been played.

This call is practically useless and should be avoided in applications. The sync operation will always cause a more or less noticeable pause or click in the output. So it's recommended to output few samples of silence before and after making this call. Closing the device will perform the sync operation automatically so using this ioctl call is unnecessary before calling close.

Calling SNDCTL_DSP_SYNC will cause one or more output underruns so applications using SNDCTL_DSP_GETERROR need to be able to ignore underruns caused by the sync operation.

If it's necessary to keep the application in sync with audio playback then it's probably better to use the SNDCTL_DSP_GETODELAY call instead.

Compatibility issues

This call is supported by all OSS vesions.

Please look at the When OSS audio ioctl calls can be made section for information about DSP ioctl call ordering.

OSS ioctl return values

The return value from the OSS ioctl calls will be -1 if a fatal error occurred. Other values mean that the ioctl call was more or less successful. However in most cases the application must check the value returned in the argument to see what was the accepted value.

Please see the Possible error codes (errno) returned by OSS calls section for more info about the error codes returned by OSS.

Sample programs

ossplay.cSources for the ossplay audio player and for the ossrecord
ossplay_parser.cFile format parse routines for ossplay


Copyright (C) 4Front Technologies, 2007. All rights reserved.
Back to index OSS web site