summaryrefslogtreecommitdiff
path: root/libs/panners/2in2out/panner_2in2out.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-06-06 11:47:09 +0000
committerCarl Hetherington <carl@carlh.net>2012-06-06 11:47:09 +0000
commit46e448252f74ce35f37a1a41bb3ebe0f0312cd5d (patch)
tree727768ad3569c3e4becb9694e93fbf6f1b909691 /libs/panners/2in2out/panner_2in2out.cc
parent31f94b9b048f55b06b7de8fa0b8612b0fa2ea274 (diff)
Provide dialogs to edit pan values numerically, at least for
mono and stereo panners. git-svn-id: svn://localhost/ardour2/branches/3.0@12577 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/panners/2in2out/panner_2in2out.cc')
-rw-r--r--libs/panners/2in2out/panner_2in2out.cc21
1 files changed, 17 insertions, 4 deletions
diff --git a/libs/panners/2in2out/panner_2in2out.cc b/libs/panners/2in2out/panner_2in2out.cc
index 57b8836787..a316b764c7 100644
--- a/libs/panners/2in2out/panner_2in2out.cc
+++ b/libs/panners/2in2out/panner_2in2out.cc
@@ -152,8 +152,8 @@ Panner2in2out::update ()
*/
float pos[2];
- double width = _pannable->pan_width_control->get_value();
- const double direction_as_lr_fract = _pannable->pan_azimuth_control->get_value();
+ double width = this->width ();
+ const double direction_as_lr_fract = position ();
if (width < 0.0) {
width = -width;
@@ -189,17 +189,30 @@ Panner2in2out::update ()
bool
Panner2in2out::clamp_position (double& p)
{
- double w = _pannable->pan_width_control->get_value();
+ double w = width ();
return clamp_stereo_pan (p, w);
}
bool
Panner2in2out::clamp_width (double& w)
{
- double p = _pannable->pan_azimuth_control->get_value();
+ double p = position ();
return clamp_stereo_pan (p, w);
}
+pair<double, double>
+Panner2in2out::position_range () const
+{
+ return make_pair (0.5 - (1 - width()) / 2, 0.5 + (1 - width()) / 2);
+}
+
+pair<double, double>
+Panner2in2out::width_range () const
+{
+ double const w = min (position(), (1 - position())) * 2;
+ return make_pair (-w, w);
+}
+
bool
Panner2in2out::clamp_stereo_pan (double& direction_as_lr_fract, double& width)
{