summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/automatable.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-04-25 13:41:38 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:41 -0400
commitf485cfa324717f57b9f820f43f1b53307b96a8b9 (patch)
tree39ad198f588b521e748356809d255a3c4c6f4c08 /libs/ardour/ardour/automatable.h
parenteee3837245f570d36e5d4d92409660c8ff777b5b (diff)
rearrange inheritance so that Automatable IS-A Slavable
Share assign code via Slavable; add visibility tags to Slavable+SlavableAutomationControl
Diffstat (limited to 'libs/ardour/ardour/automatable.h')
-rw-r--r--libs/ardour/ardour/automatable.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/libs/ardour/ardour/automatable.h b/libs/ardour/ardour/automatable.h
index c9e14cfae5..5f9f7d2b91 100644
--- a/libs/ardour/ardour/automatable.h
+++ b/libs/ardour/ardour/automatable.h
@@ -23,10 +23,15 @@
#include <map>
#include <set>
#include <string>
+
#include <boost/shared_ptr.hpp>
+
#include "pbd/signals.h"
+
#include "evoral/ControlSet.hpp"
+
#include "ardour/libardour_visibility.h"
+#include "ardour/slavable.h"
#include "ardour/types.h"
class XMLNode;
@@ -39,7 +44,7 @@ class AutomationControl;
/* The inherited ControlSet is virtual because AutomatableSequence inherits
* from this AND EvoralSequence, which is also a ControlSet
*/
-class LIBARDOUR_API Automatable : virtual public Evoral::ControlSet
+class LIBARDOUR_API Automatable : virtual public Evoral::ControlSet, public Slavable
{
public:
Automatable(Session&);
@@ -47,17 +52,17 @@ public:
virtual ~Automatable();
- boost::shared_ptr<Evoral::Control>
- control_factory(const Evoral::Parameter& id);
+ boost::shared_ptr<Evoral::Control> control_factory(const Evoral::Parameter& id);
- boost::shared_ptr<AutomationControl>
- automation_control (const Evoral::Parameter& id, bool create_if_missing=false);
+ boost::shared_ptr<AutomationControl> automation_control (const Evoral::Parameter& id) {
+ return automation_control (id, false);
+ }
- boost::shared_ptr<const AutomationControl>
- automation_control (const Evoral::Parameter& id) const;
+ boost::shared_ptr<AutomationControl> automation_control (const Evoral::Parameter& id, bool create_if_missing);
+ boost::shared_ptr<const AutomationControl> automation_control (const Evoral::Parameter& id) const;
virtual void add_control(boost::shared_ptr<Evoral::Control>);
- virtual bool find_next_event(double start, double end, Evoral::ControlEvent& ev, bool only_active = true) const;
+ virtual bool find_next_event (double start, double end, Evoral::ControlEvent& ev, bool only_active = true) const;
void clear_controls ();
virtual void transport_located (framepos_t now);