+ typedef iterator_base<const BufferSet, const Buffer> const_iterator;
+ const_iterator begin(DataType type) const { return const_iterator(*this, type, 0); }
+ const_iterator end(DataType type) const { return const_iterator(*this, type, _count.get(type)); }
+
+ typedef iterator_base<BufferSet, AudioBuffer> audio_iterator;
+ audio_iterator audio_begin() { return audio_iterator(*this, DataType::AUDIO, 0); }
+ audio_iterator audio_end() { return audio_iterator(*this, DataType::AUDIO, _count.n_audio()); }
+
+ typedef iterator_base<BufferSet, MidiBuffer> midi_iterator;
+ midi_iterator midi_begin() { return midi_iterator(*this, DataType::MIDI, 0); }
+ midi_iterator midi_end() { return midi_iterator(*this, DataType::MIDI, _count.n_midi()); }
+