From 460d2d067545309f103089debdd68a553af29450 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 2 Jun 2010 19:55:37 +0000 Subject: [PATCH] add channel+pitch indexing for notes in a Sequence git-svn-id: svn://localhost/ardour2/branches/3.0@7217 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/evoral/evoral/Sequence.hpp | 10 +- libs/evoral/src/Sequence.cpp | 552 ++++++++++++++++++-------------- 2 files changed, 320 insertions(+), 242 deletions(-) diff --git a/libs/evoral/evoral/Sequence.hpp b/libs/evoral/evoral/Sequence.hpp index 8acd04fd27..acfe6970e0 100644 --- a/libs/evoral/evoral/Sequence.hpp +++ b/libs/evoral/evoral/Sequence.hpp @@ -137,6 +137,10 @@ public: inline Notes& notes() { return _notes; } inline const Notes& notes() const { return _notes; } + typedef std::multiset >, NoteNumberComparator> Pitches; + inline Pitches& pitches(uint8_t chan) { return _pitches[chan&0xf]; } + inline const Pitches& pitches(uint8_t chan) const { return _pitches[chan&0xf]; } + enum NoteOperator { PitchEqual, PitchLessThan, @@ -244,9 +248,13 @@ private: void append_control_unlocked(const Parameter& param, Time time, double value); void append_sysex_unlocked(const MIDIEvent