diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour3_ui_dark.rc.in | 12 | ||||
-rw-r--r-- | gtk2_ardour/gain_meter.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 9 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 21 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.h | 3 |
5 files changed, 43 insertions, 3 deletions
diff --git a/gtk2_ardour/ardour3_ui_dark.rc.in b/gtk2_ardour/ardour3_ui_dark.rc.in index 6a92cc7819..bac7baae8c 100644 --- a/gtk2_ardour/ardour3_ui_dark.rc.in +++ b/gtk2_ardour/ardour3_ui_dark.rc.in @@ -1063,6 +1063,16 @@ style "flashing_alert" = "very_small_text" bg[ACTIVE] = { 1.0, 0, 0} } + +style "green_flashing_alert" = "very_small_text" +{ + fg[NORMAL] = { 0.80, 0.80, 0.80 } + bg[NORMAL] = { 0.26, 0.26, 0.31 } + + fg[ACTIVE] = { 0.80, 0.80, 0.80 } + bg[ACTIVE] = { 0.52, 1.0, 0} +} + style "selected_io_selector_port_list" = "medium_bold_text" { @@ -1479,6 +1489,8 @@ widget "*BypassButton" style:highest "red_when_active" widget "*BypassButton*" style:highest "red_when_active" widget "*TransportSoloAlert" style:highest "flashing_alert" widget "*TransportSoloAlert.*" style:highest "flashing_alert" +widget "*SendAlert" style:highest "green_flashing_alert" +widget "*SendAlert.*" style:highest "green_flashing_alert" widget "*TransportAuditioningAlert" style:highest "flashing_alert" widget "*TransportAuditioningAlert.*" style:highest "flashing_alert" widget "*FadeCurve" style:highest "medium_bold_entry" diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h index 29d941f49a..ea817bcae2 100644 --- a/gtk2_ardour/gain_meter.h +++ b/gtk2_ardour/gain_meter.h @@ -63,6 +63,7 @@ class GainMeterBase : virtual public sigc::trackable virtual ~GainMeterBase (); virtual void set_io (boost::shared_ptr<ARDOUR::IO>); + boost::shared_ptr<ARDOUR::IO> io() const { return _io; } void update_gain_sensitive (); void update_meters (); diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 4d8d196b4b..fdc1e2f39b 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -294,7 +294,6 @@ MixerStrip::init () /* ditto for this button and busses */ - show_sends_button->set_name ("MixerRecordEnableButton"); show_sends_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::show_sends_press), false); show_sends_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::show_sends_release)); @@ -1506,10 +1505,12 @@ MixerStrip::switch_io (boost::shared_ptr<Route> target) /* don't change the display for the target or the master bus */ return; } else if (!is_track() && show_sends_button) { - /* make sure our show sends button is inactive, + /* make sure our show sends button is inactive, and we no longer blink, since we're not the target. */ + send_blink_connection.disconnect (); show_sends_button->set_active (false); + show_sends_button->set_state (STATE_NORMAL); } if (!target) { @@ -1537,9 +1538,12 @@ MixerStrip::switch_io (boost::shared_ptr<Route> target) panner_ui().setup_pan (); } + void MixerStrip::revert_to_default_display () { + show_sends_button->set_active (false); + if (_current_send) { _current_send->set_metering (false); _current_send.reset(); @@ -1550,3 +1554,4 @@ MixerStrip::revert_to_default_display () panner_ui().set_io (_route); panner_ui().setup_pan (); } + diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 5efb3a6a2c..393ab011f3 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -31,6 +31,7 @@ #include "pbd/shiva.h" #include "pbd/controllable.h" +#include "ardour_ui.h" #include "route_ui.h" #include "keyboard.h" #include "utils.h" @@ -122,7 +123,7 @@ RouteUI::init () UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), ""); show_sends_button = manage (new BindableToggleButton ("")); - show_sends_button->set_name ("ShowSendsButton"); + show_sends_button->set_name ("SendAlert"); show_sends_button->set_self_managed (true); UI::instance()->set_tip (show_sends_button, _("make mixer strips show sends to this bus"), ""); @@ -562,11 +563,15 @@ RouteUI::show_sends_press(GdkEventButton* ev) show_sends_button->set_active (!show_sends_button->get_active()); + /* start blinking */ + if (show_sends_button->get_active()) { /* show sends to this bus */ MixerStrip::SwitchIO (_route); + send_blink_connection = ARDOUR_UI::instance()->Blink.connect (mem_fun(*this, &RouteUI::send_blink)); } else { /* everybody back to normal */ + send_blink_connection.disconnect (); MixerStrip::SwitchIO (boost::shared_ptr<Route>()); } @@ -583,6 +588,20 @@ RouteUI::show_sends_release (GdkEventButton* ev) } void +RouteUI::send_blink (bool onoff) +{ + if (!show_sends_button) { + return; + } + + if (onoff) { + show_sends_button->set_state (STATE_ACTIVE); + } else { + show_sends_button->set_state (STATE_NORMAL); + } +} + +void RouteUI::solo_changed(void* src) { diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 5a1933997d..de8d7ea30c 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -83,6 +83,9 @@ class RouteUI : public virtual AxisView BindableToggleButton* solo_button; BindableToggleButton* rec_enable_button; /* audio tracks */ BindableToggleButton* show_sends_button; /* busses */ + + void send_blink (bool); + sigc::connection send_blink_connection; virtual std::string solo_button_name () const { return "SoloButton"; } virtual std::string safe_solo_button_name () const { return "SafeSoloButton"; } |