From 0b06ca5fa3f97ab55c16831ac6a6e8212449d43f Mon Sep 17 00:00:00 2001 From: Nikolay Polyanovskii Date: Mon, 26 May 2014 10:13:53 -0500 Subject: [PATCH] [Summary] Update "EXO" label on Input/Output channels changes and engine changes [Reviewed] GZharun [git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 463588] --- gtk2_ardour/session_dialog.h | 2 ++ gtk2_ardour/session_dialog.logic.cc | 17 +++++++++++++++-- gtk2_ardour/session_dialog.logic.h | 6 +++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/session_dialog.h b/gtk2_ardour/session_dialog.h index c5b710c4dc..1bad15391a 100644 --- a/gtk2_ardour/session_dialog.h +++ b/gtk2_ardour/session_dialog.h @@ -20,6 +20,8 @@ #ifndef __gtk2_ardour_session_dialog_h__ #define __gtk2_ardour_session_dialog_h__ +#include "pbd/signals.h" + #include #include "waves_dialog.h" diff --git a/gtk2_ardour/session_dialog.logic.cc b/gtk2_ardour/session_dialog.logic.cc index a177548977..a4d1673c64 100644 --- a/gtk2_ardour/session_dialog.logic.cc +++ b/gtk2_ardour/session_dialog.logic.cc @@ -50,6 +50,7 @@ #include "opts.h" #include "i18n.h" #include "utils.h" +#include "gui_thread.h" #include "open_file_dialog_proxy.h" @@ -86,7 +87,12 @@ void SessionDialog::init() _quit_button.signal_clicked.connect (sigc::mem_fun (*this, &SessionDialog::on_quit)); _new_session_button.signal_clicked.connect (sigc::mem_fun (*this, &SessionDialog::on_new_session)); _system_configuration_button.signal_clicked.connect (sigc::mem_fun (*this, &SessionDialog::on_system_configuration)); - for (size_t i = 0; i < MAX_RECENT_SESSION_COUNTS; i++) { + + EngineStateController::instance ()->InputConfigChanged.connect (_system_config_update, invalidator (*this), boost::bind (&SessionDialog::on_system_configuration_change, this), gui_context()); + EngineStateController::instance ()->OutputConfigChanged.connect (_system_config_update, invalidator (*this), boost::bind (&SessionDialog::on_system_configuration_change, this), gui_context()); + EngineStateController::instance ()->EngineRunning.connect (_system_config_update, invalidator (*this), boost::bind (&SessionDialog::on_system_configuration_change, this), gui_context()); + + for (size_t i = 0; i < MAX_RECENT_SESSION_COUNTS; i++) { _recent_session_button[i]->signal_clicked.connect (sigc::mem_fun (*this, &SessionDialog::on_recent_session )); _recent_session_button[i]->signal_double_clicked.connect (sigc::mem_fun (*this, &SessionDialog::on_recent_session_double_click )); } @@ -198,7 +204,14 @@ SessionDialog::on_new_session (WavesButton*) } } -void SessionDialog::redisplay_system_configuration () +void +SessionDialog::on_system_configuration_change () +{ + redisplay_system_configuration (); +} + +void +SessionDialog::redisplay_system_configuration () { ARDOUR::EngineStateController* eng_controller (ARDOUR::EngineStateController::instance() ); diff --git a/gtk2_ardour/session_dialog.logic.h b/gtk2_ardour/session_dialog.logic.h index b18c63b468..14b32795a5 100644 --- a/gtk2_ardour/session_dialog.logic.h +++ b/gtk2_ardour/session_dialog.logic.h @@ -80,9 +80,13 @@ void on_recent_session_double_click (WavesButton*); void on_system_configuration (WavesButton*); bool on_delete_event (GdkEventAny*); - + + void on_system_configuration_change(); void redisplay_system_configuration(); int redisplay_recent_sessions (); void session_selected (); bool info_scroller_update(); + +// connections + PBD::ScopedConnectionList _system_config_update; // };