PDD_AudioGetInterruptType

This function determines the cause of the audio interrupt and returns the current device status.

Syntax

AUDIO_STATE PDD_AudioGetInterruptType( void );

Return Values

An integer indicating the type of interrupt. The defined values are:

AUDIO_STATE_OUT_PLAYING
Sound is currently playing.
AUDIO_STATE_OUT_UNDERFLOW
Sound was playing but not enough data has been supplied to continue.
AUDIO_STATE_OUT_STOPPED
Playback is stopped.
AUDIO_STATE_IN_RECORDING
Sound is currently recording.
AUDIO_STATE_IN_OVERFLOW
Sound was recording but the reserve buffer was not processed in time before the DMA needed to write to it again.
AUDIO_STATE_IN_STOPPED
Recording is stopped.
AUDIO_STATE_IGNORE
The interrupt does not represent a state change or update and should be ignored by the MDD. This state can be used to report a PDD private interrupt. For example, initializing a CODEC may generate an interrupt that need not be reported.
AUDIO_STATE_OUT_MASK
Bitmask for the output state (0xF0).
AUDIO_STATE_IN_MASK
Bitmask for the input state (0x0F).

Remarks

This function supports the implementation of the audio PDD.

The PDD reports the status of the playback or record circuitry. The interrupt occurs when the audio DMA passes a buffer boundary. See the AUDIO_STATE return values for the possible states that an interrupt can represent.

AUDIO_STATE is the state of the audio device. This value can represent a state change of either the input or the output circuit or both. The lower 4 bits represents the input status, and the upper 4 bits represents the output status; so if the current interrupt is for both input and output, the values can be combined using the OR operator. However, if the interrupt represents only one circuit, the other 4 bits should remain 0; otherwise, the MDD interprets this as a change or update in the circuit’s status.

This function is declared in the Waveddsi.h header file.