diff options
author | Robin Gareus <robin@gareus.org> | 2017-07-15 20:45:49 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-16 16:53:39 +0200 |
commit | dee990103a1fb607ff401ec7c56e8c241074ffb5 (patch) | |
tree | cb6b4d398f36eb3d6ab95c8ff0143ccf46082a28 /libs/ardour/ardour/automatable.h | |
parent | 06ca52d5a5c405a5cb2b3f2d827edc60712412e9 (diff) |
Consistent Automation evaluation:
Rule #89: The *owner* of each automation-control is responsible to
evaluate automation of automated automation-controls (and emit Changed()
signals to notify the GUI and slaved controls).
This can happen during run(), when the Processor evaluates automation
(eg. PluginInsert does that), but needs to regardless, every cycle.
Emit Changed signal for GainControl
This follow the same concept as PluginInsert: The Changed signal
is called on demand when evaluating automation.
Diffstat (limited to 'libs/ardour/ardour/automatable.h')
-rw-r--r-- | libs/ardour/ardour/automatable.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/ardour/ardour/automatable.h b/libs/ardour/ardour/automatable.h index 1acb8a60dc..bdc0edf4da 100644 --- a/libs/ardour/ardour/automatable.h +++ b/libs/ardour/ardour/automatable.h @@ -50,7 +50,7 @@ public: Automatable(Session&); Automatable (const Automatable& other); - virtual ~Automatable(); + virtual ~Automatable(); boost::shared_ptr<Evoral::Control> control_factory(const Evoral::Parameter& id); @@ -83,9 +83,11 @@ public: 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); + virtual void transport_located (framepos_t now); virtual void transport_stopped (framepos_t now); + virtual void automation_run (framepos_t, pframes_t); + virtual std::string describe_parameter(Evoral::Parameter param); AutoState get_parameter_automation_state (Evoral::Parameter param); @@ -103,7 +105,7 @@ public: PBD::Signal0<void> AutomationStateChanged; - protected: +protected: Session& _a_session; void can_automate(Evoral::Parameter); |