From 17b28d6e920e72cedbcd28fc40e73680bbc6d345 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 12 Sep 2014 12:55:24 -0400 Subject: [PATCH] global rec button should indicate recording status --- gtk2_ardour/editor.cc | 33 ++++++++++++++++++++++++++++++++ gtk2_ardour/editor.h | 4 +++- gtk2_ardour/ui/editor_window.xml | 2 +- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 9227dc1a0a..1167d796e4 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -648,7 +648,9 @@ Editor::Editor () setup_toolbar (); ARDOUR_UI::Blink.connect (sigc::mem_fun(*this, &Editor::solo_blink)); + ARDOUR_UI::Blink.connect (sigc::mem_fun(*this, &Editor::record_status_blink)); global_solo_button.signal_clicked.connect (sigc::mem_fun(*this,&Editor::global_solo_clicked)); + global_rec_button.signal_clicked.connect (sigc::mem_fun(*this,&Editor::global_rec_clicked)); set_zoom_focus (zoom_focus); set_visible_track_count (_visible_track_count); @@ -5691,3 +5693,34 @@ Editor::global_solo_clicked (WavesButton*) _session->set_listen (_session->get_routes(), false); } } + +void +Editor::record_status_blink (bool onoff) +{ + if (!_session) { + return; + } + + if (_session->have_rec_enabled_track()) { + switch (_session->record_status()) { + case Session::Disabled: + case Session::Enabled: + global_rec_button.set_active (onoff); + break; + + case Session::Recording: + global_rec_button.set_active (true); + break; + } + } else { + global_rec_button.set_active (false); + } +} + +void +Editor::global_rec_clicked (WavesButton*) +{ + DisplaySuspender ds; + _session->set_record_enabled (_session->get_routes(), !_session->have_rec_enabled_track()); +} + diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 5240b4ba24..a89ede6edf 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1625,8 +1625,10 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD WavesButton& add_marker_button; WavesButton& global_solo_button; void solo_blink (bool); - WavesButton& global_rec_button; void global_solo_clicked (WavesButton*); + WavesButton& global_rec_button; + void global_rec_clicked (WavesButton*); + void record_status_blink (bool); Gtkmm2ext::TearOff* _mouse_mode_tearoff; WavesButton& _tool_marker_button; diff --git a/gtk2_ardour/ui/editor_window.xml b/gtk2_ardour/ui/editor_window.xml index 7af2358b40..3594b705c2 100644 --- a/gtk2_ardour/ui/editor_window.xml +++ b/gtk2_ardour/ui/editor_window.xml @@ -378,7 +378,7 @@ height="24" width="42" normalicon="global_rec_button" - activeicon="global_rec_button"/> + activeicon="global_rec_button_active"/>