int set_state (XMLNode const&, int);
XMLNode& get_state();
- bool find_next_event (double now, double end, Evoral::ControlEvent& next_event) const;
+ bool find_next_event (double n, double e, Evoral::ControlEvent& ev) const
+ {
+ Glib::Threads::RWLock::ReaderLock lm (master_lock);
+ return find_next_event_locked (n, e, ev);
+ }
+
+ bool find_next_event_locked (double now, double end, Evoral::ControlEvent& next_event) const;
protected:
}
bool
-SlavableAutomationControl::find_next_event (double now, double end, Evoral::ControlEvent& next_event) const
+SlavableAutomationControl::find_next_event_locked (double now, double end, Evoral::ControlEvent& next_event) const
{
- Glib::Threads::RWLock::ReaderLock lm (master_lock);
if (_masters.empty()) {
return false;
}
boost::shared_ptr<SlavableAutomationControl> sc
= boost::dynamic_pointer_cast<SlavableAutomationControl>(ac);
- if (sc && sc->find_next_event (now, end, next_event)) {
+ if (sc && sc->find_next_event_locked (now, end, next_event)) {
rv = true;
}