aboutsummaryrefslogtreecommitdiff
path: root/src/midi_sequencer.hpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2022-10-17 18:39:08 +0300
committerWohlstand <admin@wohlnet.ru>2022-10-17 18:39:08 +0300
commit9fbaa58e87a63749ff1694bdb9f4d1241db98689 (patch)
treee876a7ea5bed72a36836137f8915eed1fe84edd2 /src/midi_sequencer.hpp
parente27764edeb24936ce50da6229a781006e7ebdc75 (diff)
downloadlibADLMIDI-9fbaa58e87a63749ff1694bdb9f4d1241db98689.tar.gz
libADLMIDI-9fbaa58e87a63749ff1694bdb9f4d1241db98689.tar.bz2
libADLMIDI-9fbaa58e87a63749ff1694bdb9f4d1241db98689.zip
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)
Diffstat (limited to 'src/midi_sequencer.hpp')
-rw-r--r--src/midi_sequencer.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/midi_sequencer.hpp b/src/midi_sequencer.hpp
index 8872fde..2cba080 100644
--- a/src/midi_sequencer.hpp
+++ b/src/midi_sequencer.hpp
@@ -387,6 +387,12 @@ private:
//! Set the number of loops limit. Lesser than 0 - loop infinite
int m_loopCount;
+ //! The number of track of multi-track file (for exmaple, XMI) to load
+ int m_loadTrackNumber;
+
+ //! The XMI-specific list of raw songs, converted into SMF format
+ std::vector<std::vector<uint8_t > > m_rawSongsData;
+
/**
* @brief Loop stack entry
*/
@@ -612,6 +618,12 @@ public:
void setSoloTrack(size_t track);
/**
+ * @brief Set the track number of a multi-track file (such as XMI)
+ * @param trackNumber Identifier of the track to load (or -1 to mix all tracks as one song)
+ */
+ void setLoadTrack(int 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