summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/panner.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-06-27 15:51:50 +0000
committerDavid Robillard <d@drobilla.net>2007-06-27 15:51:50 +0000
commitd7bd270aa10b3a8669223debe4c1b572ae876e2b (patch)
treedb9ad92cb5096a54a9d7e91873fe73530ceaf21b /libs/ardour/ardour/panner.h
parentd7afe01c307e35719dc1ee41c079f81f40f009df (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.h14
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 ();
};