Open Sound System |
Do you have problems with sound/audio application development? Don't panic! Click here for help! |
int route;
ioctl(fd, SNDCTL_DSP_GET_RECSRC, &route);
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.
Traditionally many audio applications have used the mixer ioctl calls to change the recording source. This must be avoided because in practice no program does this correctly. In addition the only correct way doesn't work with the freeware OSS clones anyway.
Please look at the When OSS audio ioctl calls can be made section for information about DSP ioctl call ordering.
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.
ossplay.c | Sources for the ossplay audio player and for the ossrecord |
recsrc.c | A sample program for recording source selection |