BASS_MIDI_StreamGetMarks
Retrieves the markers in a MIDI file stream.
DWORD BASS_MIDI_StreamGetMarks( HSTREAM handle, int track, DWORD type, BASS_MIDI_MARK *marks );
Parameters
handle | The MIDI stream to retrieve the markers from. | ||||||||||||||||||||
track | The track to get the markers from... 0 = 1st track, -1 = all tracks. | ||||||||||||||||||||
type | The type of marker to retrieve, one of the following.
| ||||||||||||||||||||
marks | Pointer to an array to receive the marker details... NULL = get the number of markers without getting the markers themselves. |
Return value
If successful, the number of markers is returned, else -1 is returned. Use BASS_ErrorGetCode to get the error code.Error codes
BASS_ERROR_HANDLE | handle is not valid. |
BASS_ERROR_ILLTYPE | type is not valid. |
BASS_ERROR_ILLPARAM | track is not valid. |
Remarks
This function should first be called with marks = NULL to get the number of markers, before allocating an array of the required size and retrieving the markers. The markers are ordered chronologically, and by track number (lowest first) if multiple markers have the same position.Syncs can be used to be informed of when markers are encountered during playback.
If a lyric marker text begins with a / (slash) character, that means a new line should be started. If the text begins with a \ (backslash) character, the display should be cleared. Lyrics can sometimes be found in BASS_MIDI_MARK_TEXT instead of BASS_MIDI_MARK_LYRIC markers.
Example
Retrieve the markers from all tracks in a MIDI stream.DWORD markc=BASS_MIDI_StreamGetMarks(handle, -1, BASS_MIDI_MARK_MARKER, NULL); // get number of markers BASS_MIDI_MARK *marks=(BASS_MIDI_MARK*)malloc(markc*sizeof(BASS_MIDI_MARK)); // allocate marker array BASS_MIDI_StreamGetMarks(handle, -1, BASS_MIDI_MARK_MARKER, marks); // get the markers