- _panner->reset_streampanner (which);
-}
-
-void
-PannerUI::pan_reset_all ()
-{
- _panner->reset_to_default ();
-}
-
-void
-PannerUI::effective_pan_display ()
-{
- if (_panner->empty()) {
- return;
- }
-
- switch (_panner->nouts()) {
- case 0:
- case 1:
- /* relax */
- break;
-
- case 2:
- update_pan_bars (true);
- break;
-
- default:
- //panner->move_puck (pan_value (v, right), 0.5);
- break;
- }
-}
-
-void
-PannerUI::pan_changed (void *src)
-{
- if (src == this) {
- return;
- }
-
- switch (_panner->npanners()) {
- case 0:
- panning_link_direction_button.set_sensitive (false);
- panning_link_button.set_sensitive (false);
- return;
- case 1:
- panning_link_direction_button.set_sensitive (false);
- panning_link_button.set_sensitive (false);
- break;
- default:
- panning_link_direction_button.set_sensitive (_panner->linked ());
- panning_link_button.set_sensitive (true);
- }
-
- uint32_t const nouts = _panner->nouts();
-
- switch (nouts) {
- case 0:
- case 1:
- /* relax */
- break;
-
- case 2:
- /* bring pan bar state up to date */
- update_pan_bars (false);
- break;
-
- default:
- // panner->move_puck (pan_value (pans[0], pans[1]), 0.5);
- break;
- }
-}
-
-void
-PannerUI::pan_adjustment_changed (uint32_t which)
-{
- if (!in_pan_update && which < _panner->npanners()) {
-
- float val = pan_adjustments[which]->get_value ();
- float const xpos = _panner->pan_control(which)->get_value();
-
- /* add a kinda-sorta detent for the middle */
-
- if (val != 0.5 && Panner::equivalent (val, 0.5)) {
- /* this is going to be reentrant, so just
- return after it.
- */
-
- in_pan_update = true;
- pan_adjustments[which]->set_value (0.5);
- in_pan_update = false;
- return;
- }
-
- if (!Panner::equivalent (val, xpos)) {
-
- _panner->pan_control(which)->set_value (val);
- /* XXX
- the panner objects have no access to the session,
- so do this here. ick.
- */
- _session->set_dirty();
- }