diff options
author | Carl Hetherington <carl@carlh.net> | 2009-08-30 00:40:48 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-08-30 00:40:48 +0000 |
commit | 1aa38f074f6dfaec52edd9be5a0421a82e39a7fb (patch) | |
tree | 7fb1a673cb9ffbab56804828b65e6bd01b43ccf4 /gtk2_ardour/panner_ui.cc | |
parent | 95c4046ff90404cc4bc2ae54dde9e61188fd9a65 (diff) |
Don't setup panner UI unless it has changed.
git-svn-id: svn://localhost/ardour2/branches/3.0@5606 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/panner_ui.cc')
-rw-r--r-- | gtk2_ardour/panner_ui.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index e133c1e0b9..c04ca055b2 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -51,6 +51,7 @@ const int PannerUI::pan_bar_height = 30; PannerUI::PannerUI (Session& s) : _session (s), + _current_nouts (-1), hAdjustment(0.0, 0.0, 0.0), vAdjustment(0.0, 0.0, 0.0), panning_viewport(hAdjustment, vAdjustment), @@ -154,7 +155,7 @@ PannerUI::set_panner (boost::shared_ptr<Panner> p) connections.push_back (_panner->Changed.connect (mem_fun(*this, &PannerUI::panner_changed))); connections.push_back (_panner->LinkStateChanged.connect (mem_fun(*this, &PannerUI::update_pan_linkage))); connections.push_back (_panner->StateChanged.connect (mem_fun(*this, &PannerUI::update_pan_state))); - + setup_pan (); pan_changed (0); @@ -335,14 +336,20 @@ PannerUI::update_pan_state () void PannerUI::setup_pan () { - cerr << "Setup pan for " << _panner->name() << endl; - if (!_panner) { return; } uint32_t nouts = _panner->nouts(); + if (nouts == _current_nouts) { + return; + } + + _current_nouts = nouts; + + cout << "Setup pan for " << _panner->name() << endl; + if (nouts == 0 || nouts == 1) { while (!pan_adjustments.empty()) { |