fix meter(s) when mixer-strip is switched to AuxSend
authorRobin Gareus <robin@gareus.org>
Wed, 19 Feb 2014 17:32:00 +0000 (18:32 +0100)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 20 Feb 2014 04:25:08 +0000 (23:25 -0500)
gtk2_ardour/gain_meter.cc
gtk2_ardour/level_meter.cc
gtk2_ardour/mixer_strip.cc

index 53dd0062245bfae345a98da944f1afdafa41fc2c..c2a507103044d5a68f33e6e08c612adbd1442e47 100644 (file)
@@ -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();
index e428958343b7512d1cfe6583074c99bb706d0cf1..94b8d63d7f3290f7cf6c622815d684ac614209c0 100644 (file)
@@ -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());
index bb552c936bc1b4f06866b6c047827fdfd0f30acd..fb79c4b4a0d82d1bd927edede676ed1d16abf174 100644 (file)
@@ -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"
@@ -1863,6 +1864,7 @@ MixerStrip::show_send (boost::shared_ptr<Send> 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());