diff options
author | JP Cimalando <jpcima@users.noreply.github.com> | 2018-07-09 20:20:55 +0200 |
---|---|---|
committer | JP Cimalando <jpcima@users.noreply.github.com> | 2018-07-09 20:58:43 +0200 |
commit | 9fdaf5361c57438bf7f5bafaf6bb9a79b6bb7493 (patch) | |
tree | 5226a20603b6b60ee05dc2d74e7474d62012948b /src/midi_sequencer.hpp | |
parent | 2a33defa5770a585f26c35ea731904859afd4ea6 (diff) | |
download | libADLMIDI-9fdaf5361c57438bf7f5bafaf6bb9a79b6bb7493.tar.gz libADLMIDI-9fdaf5361c57438bf7f5bafaf6bb9a79b6bb7493.tar.bz2 libADLMIDI-9fdaf5361c57438bf7f5bafaf6bb9a79b6bb7493.zip |
xmi: handle AIL callback trigger
Diffstat (limited to 'src/midi_sequencer.hpp')
-rw-r--r-- | src/midi_sequencer.hpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/midi_sequencer.hpp b/src/midi_sequencer.hpp index 8cb8c6e..2c75da4 100644 --- a/src/midi_sequencer.hpp +++ b/src/midi_sequencer.hpp @@ -131,6 +131,8 @@ class BW_MidiSequencer ST_LOOPSTACK_END = 0xE5,//size == 0 <CUSTOM> //! [Non-Standard] Loop End point with support of multi-loops ST_LOOPSTACK_BREAK = 0xE6,//size == 0 <CUSTOM> + //! [Non-Standard] Callback Trigger + ST_CALLBACK_TRIGGER = 0xE7,//size == 1 <CUSTOM> }; //! Main type of event uint8_t type; @@ -453,6 +455,19 @@ private: //! Index of solo track, or max for disabled size_t m_trackSolo; + /** + * @brief Handler of callback trigger events + * @param userData Pointer to user data (usually, context of something) + * @param trigger Value of the event which triggered this callback. + * @param track Identifier of the track which triggered this callback. + */ + typedef void (*TriggerHandler)(void *userData, unsigned trigger, size_t track); + + //! Handler of callback trigger events + TriggerHandler m_triggerHandler; + //! User data of callback trigger events + void *m_triggerUserData; + //! File parsing errors string (adding into m_errorString on aborting of the process) std::string m_parsingErrorsString; //! Common error string @@ -495,6 +510,13 @@ public: void setSoloTrack(size_t track); /** + * @brief Defines a handler for callback trigger events + * @param handler Handler to invoke from the sequencer when triggered, or NULL. + * @param userData Instance of the library + */ + void setTriggerHandler(TriggerHandler handler, void *userData); + + /** * @brief Get the list of CMF instruments (CMF only) * @return Array of raw CMF instruments entries */ |