diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-04 16:39:03 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-04 16:39:03 +0000 |
commit | bf6de6da77ca8fdeda6e92ae5adffd0a9f14da1c (patch) | |
tree | c6547d77a1f70fc725611f8fc668dd176e1919a5 /gtk2_ardour/monitor_section.cc | |
parent | 823bad30497b67508ed4031232049ba2f9920941 (diff) |
remove muted-by-others, a concept that turns out to have been a red herring; add auditioning alert button to monitor section; start adding exclusive solo button to monitor section
git-svn-id: svn://localhost/ardour2/branches/3.0@7052 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/monitor_section.cc')
-rw-r--r-- | gtk2_ardour/monitor_section.cc | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc index b9e4c1b8a5..95b9e5c6a5 100644 --- a/gtk2_ardour/monitor_section.cc +++ b/gtk2_ardour/monitor_section.cc @@ -51,7 +51,8 @@ MonitorSection::MonitorSection (Session* s) , dim_all_button (_("dim")) , mono_button (_("mono")) , rude_solo_button (_("soloing")) - + , rude_audition_button (_("auditioning")) + , exclusive_solo_button (_("Exclusive solo")) { Glib::RefPtr<Action> act; @@ -90,10 +91,16 @@ MonitorSection::MonitorSection (Session* s) rude_solo_button.set_name ("TransportSoloAlert"); rude_solo_button.show (); - ARDOUR_UI::Blink.connect (sigc::mem_fun (*this, &MonitorSection::solo_blink)); + rude_audition_button.set_name ("TransportAuditioningAlert"); + rude_audition_button.show (); + + ARDOUR_UI::Blink.connect (sigc::mem_fun (*this, &MonitorSection::do_blink)); + rude_solo_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MonitorSection::cancel_solo), false); UI::instance()->set_tip (rude_solo_button, _("When active, something is soloed.\nClick to de-solo everything")); + rude_audition_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MonitorSection::cancel_audition), false); + UI::instance()->set_tip (rude_audition_button, _("When active, auditioning is active.\nClick to stop the audition")); solo_model_box.set_spacing (6); solo_model_box.pack_start (solo_in_place_button, false, false); @@ -151,9 +158,13 @@ MonitorSection::MonitorSection (Session* s) solo_packer->pack_start (*spin_packer, true, true); + exclusive_solo_button.set_name (X_("MonitorCutButton")); + upper_packer.set_spacing (12); upper_packer.pack_start (rude_solo_button, false, false); + upper_packer.pack_start (rude_audition_button, false, false); upper_packer.pack_start (solo_model_box, false, false); + upper_packer.pack_start (exclusive_solo_button, false, false); upper_packer.pack_start (*solo_packer, false, false); act = ActionManager::get_action (X_("Monitor"), X_("monitor-cut-all")); @@ -808,6 +819,32 @@ MonitorSection::map_state () } void +MonitorSection::do_blink (bool onoff) +{ + solo_blink (onoff); + audition_blink (onoff); +} + +void +MonitorSection::audition_blink (bool onoff) +{ + if (_session == 0) { + return; + } + + if (_session->is_auditioning()) { + if (onoff) { + rude_audition_button.set_state (STATE_ACTIVE); + } else { + rude_audition_button.set_state (STATE_NORMAL); + } + } else { + rude_audition_button.set_active (false); + rude_audition_button.set_state (STATE_NORMAL); + } +} + +void MonitorSection::solo_blink (bool onoff) { if (_session == 0) { @@ -840,6 +877,15 @@ MonitorSection::cancel_solo (GdkEventButton* ev) return true; } +bool +MonitorSection::cancel_audition (GdkEventButton* ev) +{ + if (_session) { + _session->cancel_audition(); + } + return true; +} + void MonitorSection::solo_cut_changed () { |