summaryrefslogtreecommitdiff
path: root/gtk2_ardour/gain_meter.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-18 09:00:24 +0200
committerRobin Gareus <robin@gareus.org>2013-07-18 09:00:24 +0200
commitd2c39db64db72eb364246327aafda871a71e0d8e (patch)
tree3a23d4d9b7d66511290d7c84c404a1f7daf733c0 /gtk2_ardour/gain_meter.cc
parent55c5a76e8bec0c9f485f89f63558c1baf00e74b2 (diff)
mixer metric background color fix (MIDI & inactive)
fixes http://tracker.ardour.org/view.php?id=5594
Diffstat (limited to 'gtk2_ardour/gain_meter.cc')
-rw-r--r--gtk2_ardour/gain_meter.cc29
1 files changed, 23 insertions, 6 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index 1148c6b889..f5d4f1afa2 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -950,6 +950,8 @@ GainMeter::GainMeter (Session* s, int fader_length)
meter_hbox.pack_start (meter_metric_area, false, false);
}
+GainMeter::~GainMeter () { }
+
void
GainMeter::set_controls (boost::shared_ptr<Route> r,
boost::shared_ptr<PeakMeter> meter,
@@ -977,6 +979,10 @@ GainMeter::set_controls (boost::shared_ptr<Route> r,
}
+ if (_route) {
+ _route->active_changed.connect (model_connections, invalidator (*this), boost::bind (&GainMeter::route_active_changed, this), gui_context ());
+ }
+
/*
if we have a non-hidden route (ie. we're not the click or the auditioner),
pack some route-dependent stuff.
@@ -1067,18 +1073,21 @@ GainMeter::meter_configuration_changed (ChanCount c)
set_meter_strip_name ("AudioBusMetricsInactive");
}
}
- else if (type == (1 << DataType::AUDIO)) {
+ else if (
+ (type == (1 << DataType::MIDI))
+ || (_route && boost::dynamic_pointer_cast<MidiTrack>(_route))
+ ) {
if (!_route || _route->active()) {
- set_meter_strip_name ("AudioTrackMetrics");
+ set_meter_strip_name ("MidiTrackMetrics");
} else {
- set_meter_strip_name ("AudioTrackMetricsInactive");
+ set_meter_strip_name ("MidiTrackMetricsInactive");
}
}
- else if (type == (1 << DataType::MIDI)) {
+ else if (type == (1 << DataType::AUDIO)) {
if (!_route || _route->active()) {
- set_meter_strip_name ("MidiTrackMetrics");
+ set_meter_strip_name ("AudioTrackMetrics");
} else {
- set_meter_strip_name ("MidiTrackMetricsInactive");
+ set_meter_strip_name ("AudioTrackMetricsInactive");
}
} else {
if (!_route || _route->active()) {
@@ -1091,6 +1100,14 @@ GainMeter::meter_configuration_changed (ChanCount c)
}
void
+GainMeter::route_active_changed ()
+{
+ if (_meter) {
+ meter_configuration_changed (_meter->input_streams ());
+ }
+}
+
+void
GainMeter::meter_type_changed (MeterType t)
{
_route->set_meter_type(t);