22 #ifndef EVORAL_CONTROLLABLE_HPP
23 #define EVORAL_CONTROLLABLE_HPP
29 #include <boost/noncopyable.hpp>
30 #include <glibmm/threads.h>
54 std::shared_ptr<Control>
57 inline std::shared_ptr<const Control>
59 const Controls::const_iterator i = _controls.find(
id);
60 return (i != _controls.end() ? i->second : std::shared_ptr<Control>());
63 typedef std::map< Parameter, std::shared_ptr<Control> >
Controls;
74 Glib::Threads::Mutex&
control_lock()
const {
return _control_lock; }
virtual void control_list_marked_dirty()
ControlSet(const ControlSet &)
PBD::ScopedConnectionList _list_connections
std::shared_ptr< const Control > control(const Parameter &id) const
virtual void control_list_interpolation_changed(Parameter const &, ControlList::InterpolationStyle)
void start_domain_bounce(Temporal::DomainBounceInfo &)
Glib::Threads::Mutex _control_lock
virtual void clear_controls()
std::map< Parameter, std::shared_ptr< Control > > Controls
PBD::ScopedConnectionList _control_connections
virtual std::shared_ptr< Evoral::Control > control_factory(const Evoral::Parameter &id)=0
virtual void add_control(std::shared_ptr< Control >)
virtual bool controls_empty() const
void what_has_data(std::set< Parameter > &) const
void finish_domain_bounce(Temporal::DomainBounceInfo &)
std::shared_ptr< Control > control(const Parameter &id, bool create_if_missing=false)
const Controls & controls() const
Glib::Threads::Mutex & control_lock() const