fix caching of Audio+Midi metrics
MIDI track meters can either be MIDI-only or Audio+MIDI previously they used the same ID for gain-meter static image cache.
This commit is contained in:
parent
9a9f4276a0
commit
2b9ee3b0f4
|
@ -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@"
|
||||
|
|
|
@ -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<AudioTrack>(_route) == 0
|
||||
&& boost::dynamic_pointer_cast<MidiTrack>(_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");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user