User defined CD data callback function.
void CALLBACK CDDataProc( HSTREAM handle, int pos, DWORD type, const void *buffer, DWORD length, void *user );
|handle||The CD stream that provided the data.|
|pos||The stream position (in bytes) that the data is from.|
|type||The type of data, which can be one of the following.|
|buffer||Pointer to the data.|
|length||The amount of data in bytes.|
|user||The user instance data given when BASS_CD_StreamCreateEx or BASS_CD_StreamCreateFileEx was called.|
CDs are read from in units of a frame, and so this function will always receive a whole number of frames' worth of data; there are 96 bytes of sub-channel data per-frame, and 296 bytes of C2 error info. When BASS_CD_SetOffset has been used to set a read offset, playback may begin mid-frame, and as a result of that, pos may start out negative because the delivered data is from the start of the 1st frame, before where playback will begin from.
Neither sub-channel data or C2 error info will be delivered in the case of a silenced frame resulting from the BASS_CONFIG_CD_SKIPERROR config option being enabled.