diff --git a/gtk2_ardour/ardour3_styles.rc.in b/gtk2_ardour/ardour3_styles.rc.in index 0872fc9141..da636eefd1 100644 --- a/gtk2_ardour/ardour3_styles.rc.in +++ b/gtk2_ardour/ardour3_styles.rc.in @@ -736,6 +736,11 @@ style "midi_track_metrics" = "midi_track_base" font_name = "@FONT_TINY@" } +style "audiomidi_track_metrics" = "midi_track_base" +{ + font_name = "@FONT_TINY@" +} + style "audio_bus_metrics" = "audio_bus_base" { font_name = "@FONT_TINY@" @@ -751,6 +756,11 @@ style "midi_track_metrics_inactive" = "track_controls_inactive" font_name = "@FONT_TINY@" } +style "audiomidi_track_metrics_inactive" = "track_controls_inactive" +{ + font_name = "@FONT_TINY@" +} + style "audio_bus_metrics_inactive" = "track_controls_inactive" { font_name = "@FONT_TINY@" diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 8a8d54d3c4..99f1f75f0e 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -48,6 +48,8 @@ #include "ardour/session.h" #include "ardour/route.h" #include "ardour/meter.h" +#include "ardour/audio_track.h" +#include "ardour/midi_track.h" #include "i18n.h" @@ -1151,11 +1153,43 @@ GainMeterBase::level_meter_button_press (GdkEventButton* ev) void GainMeter::meter_configuration_changed (ChanCount c) { + int type = 0; _types.clear (); for (DataType::iterator i = DataType::begin(); i != DataType::end(); ++i) { if (c.get (*i) > 0) { _types.push_back (*i); + type |= 1 << (*i); + } + } + + if (boost::dynamic_pointer_cast(_route) == 0 + && boost::dynamic_pointer_cast(_route) == 0 + ) { + if (_route->active()) { + set_meter_strip_name ("AudioBusMetrics"); + } else { + set_meter_strip_name ("AudioBusMetricsInactive"); + } + } + else if (type == (1 << DataType::AUDIO)) { + if (_route->active()) { + set_meter_strip_name ("AudioTrackMetrics"); + } else { + set_meter_strip_name ("AudioTrackMetricsInactive"); + } + } + else if (type == (1 << DataType::MIDI)) { + if (_route->active()) { + set_meter_strip_name ("MidiTrackMetrics"); + } else { + set_meter_strip_name ("MidiTrackMetricsInactive"); + } + } else { + if (_route->active()) { + set_meter_strip_name ("AudioMidiTrackMetrics"); + } else { + set_meter_strip_name ("AudioMidiTrackMetricsInactive"); } } diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 79d4b224f6..2ee3faf4e7 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -1665,28 +1665,22 @@ MixerStrip::reset_strip_style () if (is_midi_track()) { if (_route->active()) { set_name ("MidiTrackStripBase"); - gpm.set_meter_strip_name ("MidiTrackMetrics"); } else { set_name ("MidiTrackStripBaseInactive"); - gpm.set_meter_strip_name ("MidiTrackMetricsInactive"); } gpm.set_fader_name ("MidiTrackFader"); } else if (is_audio_track()) { if (_route->active()) { set_name ("AudioTrackStripBase"); - gpm.set_meter_strip_name ("AudioTrackMetrics"); } else { set_name ("AudioTrackStripBaseInactive"); - gpm.set_meter_strip_name ("AudioTrackMetricsInactive"); } gpm.set_fader_name ("AudioTrackFader"); } else { if (_route->active()) { set_name ("AudioBusStripBase"); - gpm.set_meter_strip_name ("AudioBusMetrics"); } else { set_name ("AudioBusStripBaseInactive"); - gpm.set_meter_strip_name ("AudioBusMetricsInactive"); } gpm.set_fader_name ("AudioBusFader");