summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-10-22 16:19:27 +0000
committerCarl Hetherington <carl@carlh.net>2011-10-22 16:19:27 +0000
commit195c735181d94fcb496050d3339538cb3306a812 (patch)
treec3a372a5a1a9eda6fe49e9c5e82da93e8ee23932 /libs
parent47d0b8883036fa4f4a448c998b8d5e01fa283e16 (diff)
Implement reset() in panners, and use it from the GUI (fixes #4196).
git-svn-id: svn://localhost/ardour2/branches/3.0@10282 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/panner.h2
-rw-r--r--libs/panners/1in2out/panner_1in2out.cc7
-rw-r--r--libs/panners/1in2out/panner_1in2out.h2
-rw-r--r--libs/panners/2in2out/panner_2in2out.cc8
-rw-r--r--libs/panners/2in2out/panner_2in2out.h2
-rw-r--r--libs/panners/vbap/vbap.cc9
-rw-r--r--libs/panners/vbap/vbap.h2
7 files changed, 31 insertions, 1 deletions
diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h
index f770a181c1..6f54ea7d79 100644
--- a/libs/ardour/ardour/panner.h
+++ b/libs/ardour/ardour/panner.h
@@ -81,7 +81,7 @@ public:
virtual PBD::AngularVector signal_position (uint32_t) const { return PBD::AngularVector(); }
- virtual void reset() {}
+ virtual void reset () = 0;
void set_automation_state (AutoState);
AutoState automation_state() const;
diff --git a/libs/panners/1in2out/panner_1in2out.cc b/libs/panners/1in2out/panner_1in2out.cc
index 19b8dadd6d..2fb2df7e9a 100644
--- a/libs/panners/1in2out/panner_1in2out.cc
+++ b/libs/panners/1in2out/panner_1in2out.cc
@@ -373,3 +373,10 @@ Panner1in2out::value_as_string (boost::shared_ptr<AutomationControl> ac) const
return _pannable->value_as_string (ac);
}
}
+
+void
+Panner1in2out::reset ()
+{
+ set_position (0.5);
+ update ();
+}
diff --git a/libs/panners/1in2out/panner_1in2out.h b/libs/panners/1in2out/panner_1in2out.h
index bd1b1a9c12..13b48fa839 100644
--- a/libs/panners/1in2out/panner_1in2out.h
+++ b/libs/panners/1in2out/panner_1in2out.h
@@ -58,6 +58,8 @@ class Panner1in2out : public Panner
XMLNode& get_state ();
+ void reset ();
+
protected:
float left;
float right;
diff --git a/libs/panners/2in2out/panner_2in2out.cc b/libs/panners/2in2out/panner_2in2out.cc
index 1ac3974c49..c9dac08cf1 100644
--- a/libs/panners/2in2out/panner_2in2out.cc
+++ b/libs/panners/2in2out/panner_2in2out.cc
@@ -490,3 +490,11 @@ Panner2in2out::value_as_string (boost::shared_ptr<AutomationControl> ac) const
return _pannable->value_as_string (ac);
}
}
+
+void
+Panner2in2out::reset ()
+{
+ set_position (0.5);
+ set_width (1);
+ update ();
+}
diff --git a/libs/panners/2in2out/panner_2in2out.h b/libs/panners/2in2out/panner_2in2out.h
index 48f441fbd0..232d63ec62 100644
--- a/libs/panners/2in2out/panner_2in2out.h
+++ b/libs/panners/2in2out/panner_2in2out.h
@@ -66,6 +66,8 @@ class Panner2in2out : public Panner
void update ();
+ void reset ();
+
protected:
float left[2];
float right[2];
diff --git a/libs/panners/vbap/vbap.cc b/libs/panners/vbap/vbap.cc
index 59f8cddb62..f9ad5efed7 100644
--- a/libs/panners/vbap/vbap.cc
+++ b/libs/panners/vbap/vbap.cc
@@ -473,3 +473,12 @@ VBAPanner::set_width (double w)
{
_pannable->pan_width_control->set_value (min (1.0, max (-1.0, w)));
}
+
+void
+VBAPanner::reset ()
+{
+ set_position (0);
+ set_width (1);
+
+ update ();
+}
diff --git a/libs/panners/vbap/vbap.h b/libs/panners/vbap/vbap.h
index 752a0c9be6..e90bbc6fb1 100644
--- a/libs/panners/vbap/vbap.h
+++ b/libs/panners/vbap/vbap.h
@@ -63,6 +63,8 @@ public:
PBD::AngularVector signal_position (uint32_t n) const;
boost::shared_ptr<Speakers> get_speakers() const;
+ void reset ();
+
private:
struct Signal {
PBD::AngularVector direction;