diff options
Diffstat (limited to 'libs/evoral')
-rw-r--r-- | libs/evoral/evoral/ControlSet.hpp | 2 | ||||
-rw-r--r-- | libs/evoral/src/ControlSet.cpp | 32 | ||||
-rw-r--r-- | libs/evoral/test/SequenceTest.hpp | 2 |
3 files changed, 3 insertions, 33 deletions
diff --git a/libs/evoral/evoral/ControlSet.hpp b/libs/evoral/evoral/ControlSet.hpp index b7d50d7d2e..f1c2d96f49 100644 --- a/libs/evoral/evoral/ControlSet.hpp +++ b/libs/evoral/evoral/ControlSet.hpp @@ -60,7 +60,7 @@ public: virtual void add_control(boost::shared_ptr<Control>); - bool find_next_event(double start, double end, ControlEvent& ev) const; + virtual bool find_next_event(double start, double end, ControlEvent& ev, bool only_active = true) const = 0; virtual bool controls_empty() const { return _controls.size() == 0; } virtual void clear_controls(); diff --git a/libs/evoral/src/ControlSet.cpp b/libs/evoral/src/ControlSet.cpp index f24c410d73..cc8d7c60a7 100644 --- a/libs/evoral/src/ControlSet.cpp +++ b/libs/evoral/src/ControlSet.cpp @@ -87,38 +87,6 @@ ControlSet::control (const Parameter& parameter, bool create_if_missing) } } -bool -ControlSet::find_next_event (double now, double end, ControlEvent& next_event) const -{ - Controls::const_iterator li; - - next_event.when = std::numeric_limits<double>::max(); - - for (li = _controls.begin(); li != _controls.end(); ++li) { - ControlList::const_iterator i; - boost::shared_ptr<const ControlList> alist (li->second->list()); - ControlEvent cp (now, 0.0f); - if (!alist) { - continue; - } - - for (i = lower_bound (alist->begin(), alist->end(), &cp, ControlList::time_comparator); - i != alist->end() && (*i)->when < end; ++i) { - if ((*i)->when > now) { - break; - } - } - - if (i != alist->end() && (*i)->when < end) { - if ((*i)->when < next_event.when) { - next_event.when = (*i)->when; - } - } - } - - return next_event.when != std::numeric_limits<double>::max(); -} - void ControlSet::clear_controls () { diff --git a/libs/evoral/test/SequenceTest.hpp b/libs/evoral/test/SequenceTest.hpp index da1991efc8..3207541571 100644 --- a/libs/evoral/test/SequenceTest.hpp +++ b/libs/evoral/test/SequenceTest.hpp @@ -51,6 +51,8 @@ class MySequence : public Sequence<Time> { public: MySequence(DummyTypeMap&map) : Sequence<Time>(map) {} + virtual bool find_next_event(double start, double end, ControlEvent& ev, bool only_active) const { return false; } + boost::shared_ptr<Control> control_factory(const Parameter& param) { const Evoral::ParameterDescriptor desc; boost::shared_ptr<ControlList> list(new ControlList(param, desc)); |