diff options
author | Damien Zammit <damien@zamaudio.com> | 2019-06-17 00:06:16 +1000 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2019-06-17 00:06:16 +1000 |
commit | 37f69e394cbb2baa538ae4a8386e2ccef9347ef3 (patch) | |
tree | 0c2c645cbd8bc56b370710acff1a4d0b3ef06ae6 /ptformat/ptfformat.h | |
parent | 83ef828c28d33645e0204e119dc5cc469d02e21e (diff) |
Almost fixed MIDI
Diffstat (limited to 'ptformat/ptfformat.h')
-rw-r--r-- | ptformat/ptfformat.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ptformat/ptfformat.h b/ptformat/ptfformat.h index 5bda5de..136df5a 100644 --- a/ptformat/ptfformat.h +++ b/ptformat/ptfformat.h @@ -169,6 +169,40 @@ public: } return false; } + + bool find_miditrack(uint16_t index, std::vector<track_t>::iterator& ti) { + std::vector<track_t>::iterator begin = miditracks.begin(); + std::vector<track_t>::iterator finish = miditracks.end(); + std::vector<track_t>::iterator found; + + // Create dummy track with index + wav_t w = { std::string(""), 0, 0, 0 }; + std::vector<midi_ev_t> m; + region_t r = { std::string(""), 0, 0, 0, 0, w, m}; + track_t t = { std::string(""), index, 0, r}; + + if ((found = std::find(begin, finish, t)) != finish) { + ti = found; + return true; + } + return false; + } + + bool find_midiregion(uint16_t index, std::vector<region_t>::iterator& ri) { + std::vector<region_t>::iterator begin = midiregions.begin(); + std::vector<region_t>::iterator finish = midiregions.end(); + std::vector<region_t>::iterator found; + + wav_t w = { std::string(""), 0, 0, 0 }; + std::vector<midi_ev_t> m; + region_t r = { std::string(""), index, 0, 0, 0, w, m}; + + if ((found = std::find(begin, finish, r)) != finish) { + ri = found; + return true; + } + return false; + } bool find_wav(uint16_t index, std::vector<wav_t>::iterator& wi) { std::vector<wav_t>::iterator begin = audiofiles.begin(); |