summaryrefslogtreecommitdiff
path: root/libs/evoral/evoral/Sequence.hpp
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-05-28 21:36:38 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-05-28 21:36:38 +0000
commit60ec5dd33946d0500ae00730caa672bb45292a0b (patch)
treeea4c3577e47b25cee02991afa17ad7cf845eae38 /libs/evoral/evoral/Sequence.hpp
parent8932625869f181bc16833c9e9d253970656c180d (diff)
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
Diffstat (limited to 'libs/evoral/evoral/Sequence.hpp')
-rw-r--r--libs/evoral/evoral/Sequence.hpp18
1 files changed, 18 insertions, 0 deletions
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<Time>::Notes& n);
typedef std::vector< boost::shared_ptr< Event<Time> > > SysExes;