summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-10-14 23:47:44 +0000
committerCarl Hetherington <carl@carlh.net>2009-10-14 23:47:44 +0000
commit09efd82c6aea973e3eb9497ef2b09256bf5ddde4 (patch)
tree4ec39121453eb76121b55b9fa09c47554f6a22e8
parent39ad06f03bed5d434e1738ccaf4c8ab76f86649b (diff)
Fix assertion failure when switching from a 2-channel to 1-channel route with the editor mixer open.
git-svn-id: svn://localhost/ardour2/branches/3.0@5785 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/panner_ui.cc10
-rw-r--r--gtk2_ardour/panner_ui.h1
2 files changed, 6 insertions, 5 deletions
diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc
index ca10dd4300..8b4830f484 100644
--- a/gtk2_ardour/panner_ui.cc
+++ b/gtk2_ardour/panner_ui.cc
@@ -52,6 +52,7 @@ const int PannerUI::pan_bar_height = 30;
PannerUI::PannerUI (Session& s)
: _session (s),
_current_nouts (-1),
+ _current_npans (-1),
hAdjustment(0.0, 0.0, 0.0),
vAdjustment(0.0, 0.0, 0.0),
panning_viewport(hAdjustment, vAdjustment),
@@ -340,15 +341,15 @@ PannerUI::setup_pan ()
return;
}
- uint32_t nouts = _panner->nouts();
+ uint32_t const nouts = _panner->nouts();
+ uint32_t const npans = _panner->npanners();
- if (int32_t (nouts) == _current_nouts) {
+ if (int32_t (nouts) == _current_nouts && npans == _current_npans) {
return;
}
_current_nouts = nouts;
-
- cout << "Setup pan for " << _panner->name() << endl;
+ _current_npans = npans;
if (nouts == 0 || nouts == 1) {
@@ -369,7 +370,6 @@ PannerUI::setup_pan ()
} else if (nouts == 2) {
vector<Adjustment*>::size_type asz;
- uint32_t npans = _panner->npanners();
while (!pan_adjustments.empty()) {
delete pan_bars.back();
diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h
index ce4781fe11..724b8b86e7 100644
--- a/gtk2_ardour/panner_ui.h
+++ b/gtk2_ardour/panner_ui.h
@@ -84,6 +84,7 @@ class PannerUI : public Gtk::HBox
bool ignore_toggle;
bool in_pan_update;
int _current_nouts;
+ int _current_npans;
static const int pan_bar_height;