adiGetRecordStatus

Retrieves the record operation status.

Supported board types

Prototype

DWORD adiGetRecordStatus ( CTAHD ctahd, ADI_RECORD_STATUS *info, unsigned size)

Argument

Description

ctahd

Context handle returned by ctaCreateContext or ctaAttachContext.

info

Pointer to the ADI_RECORD_STATUS structure, as shown:

typedef struct
{                     /* Parms related to RECORD functions:*/
  DWORD size ;        /* Returned size (GetRecordStatus())  /
  DWORD reason;       /* Reason last record ended          */
  DWORD buffercount;  /* Counter of buffers submitted      */
  DWORD frame;        /* Number of frames submitted        */
  DWORD totalbytes;   /* Total bytes submitted             */
  void *buffer;       /* Last buffer pointer SUBMITTED.    */
  DWORD bytecount;    /* Number of bytes into this buffer  */
  DWORD bytesrecorded;/* Total bytes actually recorded.    */
  DWORD timestarted;  /* Actual time started (ms units)    */
  DWORD underrun;     /* Counts underrun events            */
} ADI_RECORD_STATUS;

Refer to the Details section for field descriptions.

size

Amount of memory available at info to receive the ADI_RECORD_STATUS.

Return values

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.

Details

Use adiGetRecordStatus to retrieve status information about the active or most recently completed voice record operation for the specified context.

Up to size bytes of the ADI_RECORD_STATUS structure are copied to the address pointed to by info. If size is greater than or equal to the size of ADI_RECORD_STATUS, the complete structure is copied. The number of bytes copied is returned in the ADI_RECORD_STATUS size field.

adiGetRecordStatus can be issued while actively recording. If there is no active record operation, the status information pertains to the most recently completed instance.

The ADI_RECORD_STATUS structure contains the following fields:

Field

Description

size

Number of bytes copied to info.

reason

Termination condition for the last ADIEVN_RECORD_DONE. This field is 0 if the record 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.

bytesrecorded

Total number of bytes received.

timestarted

Timestamp for the start of the record operation. Refer to adiGetTimeStamp.

underrun

Total number of underruns during the record instance.

See also

adiRecordAsync, adiRecordToMemory, adiStartRecording, adiStopRecording

Example

void myShowRecordStatus( CTAHD ctahd )
{
  ADI_RECORD_STATUS recordstatus;

  adiGetRecordStatus
( ctahd, &recordstatus, sizeof recordstatus );

  /* A termination condition of 0 indicates either record in progress,
   * or none yet started in this CTA context.
   */
  printf( "Termination condition=%x, bytes recorded=%d\n",recordstatus.reason, recordstatus.bytesrecorded );
}