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_GETOPTR

Returns the current playback pointer (obsolete)

Usage

count_info ci;
ioctl(fd, SNDCTL_DSP_GETOPTR, &ci);

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 call returns the current playback pointer. The count_info structure has the following fields.

See the Audio timing considerations section for more information about audio timing.

In mmap mode (only) the ptr field tells the location where the next sample will be playback. The blocks field tells how many fragments have been playback since the last time this call was made (can be used for overun detection).

This ioctl call should only be used when using mmap(). In normal applications it's practically useless. For example the bytes field will wrap uncontrolledly after one hour or 2^32 bytes have been playback.

Related ioctl calls

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

mmap_duplex.cA simple sample program for doing dull duplex using mmap
mmap_test.cA sample program for using mmap()
ioctl_test.cThis program has been used to verify that some of the ioctl calls work


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