From 60ec5dd33946d0500ae00730caa672bb45292a0b Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 28 May 2010 21:36:38 +0000 Subject: [PATCH] provide a generalized Sequence::get_notes()-by-predicate method, and prototypes for 2 future methods git-svn-id: svn://localhost/ardour2/branches/3.0@7191 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/evoral/evoral/Sequence.hpp | 18 +++++++++ libs/evoral/src/Sequence.cpp | 67 +++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) diff --git a/libs/evoral/evoral/Sequence.hpp b/libs/evoral/evoral/Sequence.hpp index 038cf2c344..36f4138abd 100644 --- a/libs/evoral/evoral/Sequence.hpp +++ b/libs/evoral/evoral/Sequence.hpp @@ -137,6 +137,24 @@ public: inline Notes& notes() { return _notes; } inline const Notes& notes() const { return _notes; } + enum NoteOperator { + PitchEqual, + PitchLessThan, + PitchLessThanOrEqual, + PitchGreater, + PitchGreaterThanOrEqual, + VelocityEqual, + VelocityLessThan, + VelocityLessThanOrEqual, + VelocityGreater, + VelocityGreaterThanOrEqual, + }; + + void get_notes (Notes&, NoteOperator, uint8_t val, int chan_mask = 0) const; + + void remove_overlapping_notes (); + void remove_duplicate_notes (); + void set_notes (const Sequence