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!


Starts all devices added to a synchronization group.


int id=The sync group ID;
ioctl(fd, SNDCTL_DSP_SYNCSTART, &id);

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.


This ioctl call starts the recording and playback operations added to a synchronization group. The group ID is given in the argument.

The group identifier needs to be obtained by calling SNDCTL_DSP_SYNCGROUP. However the device pointed by the file descriptor (fd) doesn't need to belong to the sync group. Any application that knows the identifier can start the group.

Compatibility issues

This call is supported only by OSS 4.0 compatible drivers. Other versions will return errno=EINVAL. There is no exact replacement call but SNDCTL_DSP_SETTRIGGER can be used (not reliable with multiple devices).

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

synctest.cA program that demonstrates use of syncronization groups.

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