Retrieves the playback position of a sample, stream, or MOD music. Can also be used with a recording channel.

QWORD BASS_ChannelGetPosition(
    DWORD handle,
    DWORD mode


handleThe channel handle... a HCHANNEL, HMUSIC, HSTREAM, or HRECORD.
modeHow to retrieve the position. One of the following, with optional flags.
BASS_POS_BYTEGet the position in bytes.
BASS_POS_MUSIC_ORDERGet the position in orders and rows... LOWORD = order, HIWORD = row * scaler (BASS_ATTRIB_MUSIC_PSCALER). (HMUSIC only)
BASS_POS_DECODEFlag: Get the decoding/rendering position, which may be ahead of the playback position due to buffering. This flag is unnecessary with decoding channels because the decoding position will always be given for them anyway, as they do not have playback buffers.
other modes & flags may be supported by add-ons, see the documentation.

Return value

If successful, then the channel's position is returned, else -1 is returned. Use BASS_ErrorGetCode to get the error code.

Error codes

BASS_ERROR_HANDLEhandle is not a valid channel.
BASS_ERROR_NOTAVAILThe requested position is not available.
BASS_ERROR_UNKNOWNSome other mystery problem!

See also

BASS_ChannelBytes2Seconds, BASS_ChannelGetLength, BASS_ChannelIsActive, BASS_ChannelSetPosition, BASS_ChannelSetSync, BASS_StreamGetFilePosition