summaryrefslogtreecommitdiff
path: root/gtk2_ardour/stereo_panner.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-01-14 21:13:21 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-01-14 21:13:21 -0500
commit37b1f5017e904005fae6b815b1519b3fa595d8d3 (patch)
tree35f4da37569cfadc1554f5f212efa54e8ec89d91 /gtk2_ardour/stereo_panner.cc
parentadc2edc05cf2357d911c4767f6bb63bcf53145d8 (diff)
parent35c170937de6150ae09154f96e4920d30e83f6ce (diff)
merge with master
Diffstat (limited to 'gtk2_ardour/stereo_panner.cc')
-rw-r--r--gtk2_ardour/stereo_panner.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/gtk2_ardour/stereo_panner.cc b/gtk2_ardour/stereo_panner.cc
index e650338af4..49b381596c 100644
--- a/gtk2_ardour/stereo_panner.cc
+++ b/gtk2_ardour/stereo_panner.cc
@@ -95,9 +95,10 @@ StereoPanner::StereoPanner (boost::shared_ptr<PannerShell> p)
have_font = true;
}
- position_control->Changed.connect (connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context());
- width_control->Changed.connect (connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context());
- _panner_shell->Changed.connect (connections, invalidator (*this), boost::bind (&StereoPanner::bypass_handler, this), gui_context());
+ position_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context());
+ width_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context());
+
+ _panner_shell->Changed.connect (panshell_connections, invalidator (*this), boost::bind (&StereoPanner::bypass_handler, this), gui_context());
ColorsChanged.connect (sigc::mem_fun (*this, &StereoPanner::color_handler));
@@ -693,6 +694,20 @@ StereoPanner::bypass_handler ()
queue_draw ();
}
+void
+StereoPanner::pannable_handler ()
+{
+ panvalue_connections.drop_connections();
+ position_control = _panner->pannable()->pan_azimuth_control;
+ width_control = _panner->pannable()->pan_width_control;
+ position_binder.set_controllable(position_control);
+ width_binder.set_controllable(width_control);
+
+ position_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context());
+ width_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context());
+ queue_draw ();
+}
+
PannerEditor*
StereoPanner::editor ()
{