connect "blink-rec-arm" only when needed.

This also fixes rec-arm button display when Mixer strip
is showing an aux-send instead of the current route.

It's still only a half-baked solution. If "blink-rec-arm" is
to stay a lot of details related to this will need addressing.
This commit is contained in:
Robin Gareus 2014-09-05 04:20:15 +02:00
parent ada9f10687
commit 0ae8dd4bdb
2 changed files with 14 additions and 1 deletions

View file

@ -147,7 +147,9 @@ RouteUI::init ()
rec_enable_button->set_elements ((ArdourButton::Element)(ArdourButton::Edge|ArdourButton::Body|ArdourButton::RecButton));
UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), "");
rec_blink_connection = ARDOUR_UI::instance()->Blink.connect (sigc::mem_fun (*this, &RouteUI::blink_rec_display));
if (ARDOUR_UI::config()->get_blink_rec_arm()) {
rec_blink_connection = ARDOUR_UI::instance()->Blink.connect (sigc::mem_fun (*this, &RouteUI::blink_rec_display));
}
show_sends_button = manage (new ArdourButton);
show_sends_button->set_name ("send alert button");
@ -1248,6 +1250,9 @@ RouteUI::blink_rec_display (bool blinkOn)
if (!rec_enable_button || !_route) {
return;
}
if (boost::dynamic_pointer_cast<Send>(_current_delivery)) {
return;
}
if (_route->record_enabled()) {
switch (_session->record_status ()) {
@ -1912,6 +1917,13 @@ RouteUI::parameter_changed (string const & p)
set_button_names ();
} else if (p == "auto-input") {
update_monitoring_display ();
} else if (p == "blink-rec-arm") {
if (ARDOUR_UI::config()->get_blink_rec_arm()) {
rec_blink_connection.disconnect ();
rec_blink_connection = ARDOUR_UI::instance()->Blink.connect (sigc::mem_fun (*this, &RouteUI::blink_rec_display));
} else {
rec_blink_connection.disconnect ();
}
}
}

View file

@ -321,6 +321,7 @@ ThemeManager::on_blink_rec_arm_toggled ()
{
ARDOUR_UI::config()->set_blink_rec_arm (blink_rec_button.get_active());
ARDOUR_UI::config()->set_dirty ();
ARDOUR::Config->ParameterChanged("blink-rec-arm");
}
void