From 9fbaa58e87a63749ff1694bdb9f4d1241db98689 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Mon, 17 Oct 2022 18:39:08 +0300 Subject: Improved the multi-song XMI support - Allow selecting every individual song of the XMI file - Allow dynamic song switch without re-opening of a file - Fixed XMI2MID converter with adding an ability to export every individual song - Added hooks for loop start and end events - Added an option to immediately stop the song processing on loop end reaching (needed to perform dynamic song switch at the loop end point) --- src/adlmidi_midiplay.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/adlmidi_midiplay.hpp') diff --git a/src/adlmidi_midiplay.hpp b/src/adlmidi_midiplay.hpp index 181350a..5208f7b 100644 --- a/src/adlmidi_midiplay.hpp +++ b/src/adlmidi_midiplay.hpp @@ -37,6 +37,10 @@ struct MIDIEventHooks MIDIEventHooks() : onNote(NULL), onNote_userData(NULL), + onLoopStart(NULL), + onLoopStart_userData(NULL), + onLoopEnd(NULL), + onLoopEnd_userData(NULL), onDebugMessage(NULL), onDebugMessage_userData(NULL) {} @@ -46,6 +50,13 @@ struct MIDIEventHooks NoteHook onNote; void *onNote_userData; + // Loop start/end hooks + ASL_LoopPointHook onLoopStart; + void *onLoopStart_userData; + ASL_LoopPointHook onLoopEnd; + void *onLoopEnd_userData; + + //! Library internal debug messages typedef void (*DebugMessageHook)(void *userdata, const char *fmt, ...); DebugMessageHook onDebugMessage; -- cgit v1.2.3