From f6541d7addb16ca5aa4462b0094237b2bb147b77 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 19 Feb 2014 18:32:00 +0100 Subject: fix meter(s) when mixer-strip is switched to AuxSend --- gtk2_ardour/gain_meter.cc | 10 ++++++++-- gtk2_ardour/level_meter.cc | 1 + gtk2_ardour/mixer_strip.cc | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 53dd006224..c2a5071030 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -274,18 +274,24 @@ void GainMeterBase::setup_meters (int len) { int meter_width = 5; + uint32_t meter_channels = 0; + if (_meter) { + meter_channels = _meter->input_streams().n_total(); + } else if (_route) { + meter_channels = _route->shared_peak_meter()->input_streams().n_total(); + } switch (_width) { case Wide: //meter_ticks1_area.show(); //meter_ticks2_area.show(); meter_metric_area.show(); - if (_route && _route->shared_peak_meter()->input_streams().n_total() == 1) { + if (meter_channels == 1) { meter_width = 10; } break; case Narrow: - if (_route && _route->shared_peak_meter()->input_streams().n_total() > 1) { + if (meter_channels > 1) { meter_width = 4; } //meter_ticks1_area.hide(); diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index 493a08baea..d76b450e38 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -78,6 +78,7 @@ LevelMeterBase::set_meter (PeakMeter* meter) _meter_type_connection.disconnect(); _meter = meter; + color_changed = true; if (_meter) { _meter->ConfigurationChanged.connect (_configuration_connection, parent_invalidator, boost::bind (&LevelMeterBase::configuration_changed, this, _1, _2), gui_context()); diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index a2900efeb0..284f46ce4b 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -37,6 +37,7 @@ #include "ardour/audio_track.h" #include "ardour/audioengine.h" #include "ardour/internal_send.h" +#include "ardour/meter.h" #include "ardour/midi_track.h" #include "ardour/pannable.h" #include "ardour/panner.h" @@ -1870,6 +1871,7 @@ MixerStrip::show_send (boost::shared_ptr send) set_current_delivery (send); + send->meter()->set_type(_route->shared_peak_meter()->get_type()); send->set_metering (true); _current_delivery->DropReferences.connect (send_gone_connection, invalidator (*this), boost::bind (&MixerStrip::revert_to_default_display, this), gui_context()); -- cgit v1.2.3