diff options
author | David Robillard <d@drobilla.net> | 2007-06-27 15:51:50 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-06-27 15:51:50 +0000 |
commit | d7bd270aa10b3a8669223debe4c1b572ae876e2b (patch) | |
tree | db9ad92cb5096a54a9d7e91873fe73530ceaf21b /libs/ardour/ardour/panner.h | |
parent | d7afe01c307e35719dc1ee41c079f81f40f009df (diff) |
Big ol' automation refactor.
Things with automation parameters now inherit from Automatable, which handles serialization, fetching/adding/removing parameters, etc.
Use AutomationList everywhere instead of Curve, make Curve a member of AutomationList instead (towards other types of "Curve" needed for CC, among other things).
Work towards MIDI CC sending "automation" tracks.
git-svn-id: svn://localhost/ardour2/trunk@2069 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/panner.h')
-rw-r--r-- | libs/ardour/ardour/panner.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h index 0e5ab68525..af3cda94e2 100644 --- a/libs/ardour/ardour/panner.h +++ b/libs/ardour/ardour/panner.h @@ -81,8 +81,9 @@ class StreamPanner : public sigc::trackable, public PBD::Stateful /* XXX this is wrong. for multi-dimensional panners, there must surely be more than 1 automation curve. */ + /* TODO: Panner is-a Automation solves this */ - virtual Curve& automation() = 0; + virtual AutomationList& automation() = 0; sigc::signal<void> Changed; /* for position */ sigc::signal<void> StateChanged; /* for mute */ @@ -149,7 +150,8 @@ class BaseStereoPanner : public StreamPanner void set_automation_state (AutoState); void set_automation_style (AutoStyle); - Curve& automation() { return _automation; } + /* TODO: StreamPanner is-a Automatable? */ + AutomationList& automation() { return _automation; } /* old school automation loading */ @@ -163,7 +165,7 @@ class BaseStereoPanner : public StreamPanner float left_interp; float right_interp; - Curve _automation; + AutomationList _automation; }; class EqualPowerStereoPanner : public BaseStereoPanner @@ -203,8 +205,10 @@ class Multi2dPanner : public StreamPanner /* XXX this is wrong. for multi-dimensional panners, there must surely be more than 1 automation curve. */ + + /* TODO: StreamPanner is-a Automatable? */ - Curve& automation() { return _automation; } + AutomationList& automation() { return _automation; } void distribute (AudioBuffer& src, BufferSet& obufs, gain_t gain_coeff, nframes_t nframes); void distribute_automated (AudioBuffer& src, BufferSet& obufs, @@ -222,7 +226,7 @@ class Multi2dPanner : public StreamPanner int load (istream&, string path, uint32_t&); private: - Curve _automation; + AutomationList _automation; void update (); }; |