Retrieves status for the active or most recently executed play operation.
AG
CG
DWORD adiGetPlayStatus ( CTAHD ctahd, ADI_PLAY_STATUS *info, unsigned size)
|
Argument |
Description |
|
ctahd |
Context handle returned by ctaCreateContext or ctaAttachContext. |
|
info |
Pointer to the ADI_PLAY_STATUS structure, as shown: typedef struct Refer to the Details section for field descriptions. |
|
size |
Amount of memory available at info to receive the ADI_PLAY_STATUS. |
|
Return value |
Description |
|
SUCCESS |
|
|
CTAERR_BAD_ARGUMENT |
info is NULL. |
|
CTAERR_BAD_SIZE |
size is smaller than the size of DWORD. |
|
CTAERR_INVALID_CTAHD |
Context handle is invalid. |
|
CTAERR_INVALID_STATE |
Function not valid in the current port state. |
|
CTAERR_SVR_COMM |
Server communication error. |
Use adiGetPlayStatus to retrieve status information about the active or most recently completed voice play operation for the specified context.
Up to size bytes of the ADI_PLAY_STATUS structure are copied to the address pointed to by info. If size is greater than or equal to the size of ADI_PLAY_STATUS, the complete structure is copied. The number of bytes copied is returned in the ADI_PLAY_STATUS size field.
adiGetPlayStatus can be issued while actively playing. If there is no active play operation, the status information pertains to the most recently completed instance.
The ADI_PLAY_STATUS structure contains the following fields:
|
Field |
Description |
|---|---|
|
size |
Number of bytes copied to info. |
|
reason |
Termination condition for the last ADIEVN_PLAY_DONE. This field is 0 if the play operation is active, or if it has not been started since the context was last opened. |
|
buffercount |
Number of buffers submitted. |
|
framecount |
Number of voice frames submitted. |
|
totalbytes |
Number of bytes submitted by the application. |
|
buffer |
Last buffer pointer submitted. |
|
bytecount |
Size of the last buffer submitted. |
|
bytesplayed |
Total number of bytes actually processed by the DSP and transmitted. |
|
timestarted |
Timestamp for when the play operation started. Refer to adiGetTimeStamp. |
|
underrun |
Total number of underruns during the play instance. |
adiPlayAsync, adiPlayFromMemory, adiStartPlaying, adiStopPlaying
void myShowPlayStatus( CTAHD ctahd )
{
ADI_PLAY_STATUS playstatus;
adiGetPlayStatus( ctahd, &playstatus, sizeof playstatus );
printf( "Termination condition=%x bytes played=%d\n",
playstatus.reason, playstatus.bytesplayed );
}