diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-11-26 17:43:03 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-11-26 17:43:03 +0000 |
commit | 553cf2982c4905c5a08f305ce2772beaa8c50324 (patch) | |
tree | d23a7bad787a2d5bc1a909a14e9869fcfb405ae8 /gtk2_ardour/panner_ui.cc | |
parent | 1539ac1b9661f0c0bb313d8f0d9a72b6dc95aaf1 (diff) |
one step closer to working vbap panning
git-svn-id: svn://localhost/ardour2/branches/3.0@8091 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/panner_ui.cc')
-rw-r--r-- | gtk2_ardour/panner_ui.cc | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index 25580f0f51..358e99c88b 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -666,23 +666,18 @@ PannerUI::pan_value_changed (uint32_t which) if (twod_panner) { - float x; - float y; - _panner->streampanner(which).get_position (x, y); - in_pan_update = true; - twod_panner->move_puck (which, x, y); + twod_panner->move_puck (which, _panner->streampanner(which).get_position()); in_pan_update = false; } else if (_panner->npanners() > 0 && which < _panner->npanners()) { - float xpos; - float val = pan_adjustments[which]->get_value (); - - _panner->streampanner(which).get_position (xpos); + AngularVector model = _panner->streampanner(which).get_position(); + double fract = pan_adjustments[which]->get_value(); + AngularVector view (BaseStereoPanner::lr_fract_to_azimuth (fract), 0.0); - if (!Panner::equivalent (val, xpos)) { + if (!Panner::equivalent (model, view)) { in_pan_update = true; - pan_adjustments[which]->set_value (xpos); + pan_adjustments[which]->set_value (BaseStereoPanner::azimuth_to_lr_fract (model.azi)); in_pan_update = false; } } @@ -701,7 +696,6 @@ PannerUI::update_pan_bars (bool only_if_aplay) */ for (i = pan_adjustments.begin(), n = 0; i != pan_adjustments.end(); ++i, ++n) { - float xpos, val; if (only_if_aplay) { boost::shared_ptr<AutomationList> alist (_panner->streampanner(n).pan_control()->alist()); @@ -711,11 +705,12 @@ PannerUI::update_pan_bars (bool only_if_aplay) } } - _panner->streampanner(n).get_effective_position (xpos); - val = (*i)->get_value (); + AngularVector model = _panner->streampanner(n).get_effective_position(); + double fract = (*i)->get_value(); + AngularVector view (BaseStereoPanner::lr_fract_to_azimuth (fract), 0.0); - if (!Panner::equivalent (val, xpos)) { - (*i)->set_value (xpos); + if (!Panner::equivalent (model, view)) { + (*i)->set_value (BaseStereoPanner::azimuth_to_lr_fract (model.azi)); } } |