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),
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 && int32_t (npans) == _current_npans) {
return;
}
_current_nouts = nouts;
-
- cout << "Setup pan for " << _panner->name() << endl;
+ _current_npans = npans;
if (nouts == 0 || nouts == 1) {
} else if (nouts == 2) {
vector<Adjustment*>::size_type asz;
- uint32_t npans = _panner->npanners();
while (!pan_adjustments.empty()) {
delete pan_bars.back();
void
PannerUI::update_pan_sensitive ()
{
- bool sensitive = !(_panner->automation_state() & Play);
+ bool const sensitive = !(_panner->mono()) && !(_panner->automation_state() & Play);
switch (_panner->nouts()) {
case 0:
return (shrt ? _("Abs") : _("Abs"));
}
}
+
+void
+PannerUI::set_mono (bool yn)
+{
+ _panner->set_mono (yn);
+ update_pan_sensitive ();
+}
+
+