X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fbuffer_set.h;h=284609a9884688bba0d8a2b766c3eca656f40436;hb=3b7230552d8aa6c36fd2fbc3ccc1cfb9109fc843;hp=1c7791878983be7f3af96398d6c828db3de2ed01;hpb=272c1a40db7c965664b256f7f5487dd224bfd413;p=ardour.git diff --git a/libs/ardour/ardour/buffer_set.h b/libs/ardour/ardour/buffer_set.h index 1c77918789..284609a988 100644 --- a/libs/ardour/ardour/buffer_set.h +++ b/libs/ardour/ardour/buffer_set.h @@ -126,6 +126,25 @@ public: audio_iterator audio_begin() { return audio_iterator(*this, 0); } audio_iterator audio_end() { return audio_iterator(*this, _count.n_audio()); } + class midi_iterator { + public: + MidiBuffer& operator*() { return _set.get_midi(_index); } + MidiBuffer* operator->() { return &_set.get_midi(_index); } + midi_iterator& operator++() { ++_index; return *this; } // yes, prefix only + bool operator==(const midi_iterator& other) { return (_index == other._index); } + bool operator!=(const midi_iterator& other) { return (_index != other._index); } + + private: + friend class BufferSet; + + midi_iterator(BufferSet& list, size_t index) : _set(list), _index(index) {} + + BufferSet& _set; + size_t _index; + }; + + midi_iterator midi_begin() { return midi_iterator(*this, 0); } + midi_iterator midi_end() { return midi_iterator(*this, _count.n_midi()); } class iterator { public: