indicate monitor-state

This commit is contained in:
Robin Gareus 2016-01-08 14:22:02 +01:00
parent 13148d29e2
commit 5a766dc24d
3 changed files with 19 additions and 2 deletions

View file

@ -228,7 +228,9 @@
<ColorAlias name="marker drag line" alias="color 44"/>
<ColorAlias name="marker label" alias="color 4"/>
<ColorAlias name="marker track" alias="color 31"/>
<ColorAlias name="master monitor section button: fill active" alias="color 42"/>
<ColorAlias name="master monitor section button normal: fill active" alias="color 42"/>
<ColorAlias name="master monitor section button active: fill" alias="color 40"/>
<ColorAlias name="master monitor section button active: fill active" alias="color 54"/>
<ColorAlias name="measure line bar" alias="color 13"/>
<ColorAlias name="measure line beat" alias="color 33"/>
<ColorAlias name="meter background bottom" alias="color 46"/>

View file

@ -501,8 +501,10 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
}
if (monitor_section_button == 0) {
Glib::RefPtr<Action> act = ActionManager::get_action ("Common", "ToggleMonitorSection");
_session->MonitorChanged.connect (route_connections, invalidator (*this), boost::bind (&MixerStrip::monitor_changed, this), gui_context());
monitor_section_button = manage (new ArdourButton);
monitor_section_button->set_name ("master monitor section button");
monitor_changed ();
monitor_section_button->set_related_action (act);
set_tooltip (monitor_section_button, _("Show/Hide Monitoring Section"));
mute_solo_table.attach (*monitor_section_button, 1, 2, 0, 1);
@ -1948,6 +1950,18 @@ MixerStrip::meter_point_string (MeterPoint mp)
return string();
}
/** Called when the monitor-section state */
void
MixerStrip::monitor_changed ()
{
assert (monitor_section_button);
if (_session->monitor_active()) {
monitor_section_button->set_name ("master monitor section button active");
} else {
monitor_section_button->set_name ("master monitor section button normal");
}
}
/** Called when the metering point has changed */
void
MixerStrip::meter_changed ()

View file

@ -180,6 +180,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
ArdourButton meter_point_button;
void meter_changed ();
void monitor_changed ();
ArdourButton input_button;
ArdourButton output_button;