From 94a2f9aecac27bed5407c258b96462f95f21953a Mon Sep 17 00:00:00 2001 From: Grygorii Zharun Date: Wed, 16 Apr 2014 04:41:22 -0500 Subject: [PATCH] [Summary] Added output configuration switch events into PREFERENSE dialog [git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 452981] --- gtk2_ardour/tracks_control_panel.logic.cc | 35 +++++++++++++++++++++-- gtk2_ardour/tracks_control_panel.logic.h | 2 ++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/tracks_control_panel.logic.cc b/gtk2_ardour/tracks_control_panel.logic.cc index 63c598ab63..51d6a62247 100644 --- a/gtk2_ardour/tracks_control_panel.logic.cc +++ b/gtk2_ardour/tracks_control_panel.logic.cc @@ -41,7 +41,7 @@ #include "ardour/audio_backend.h" #include "ardour/audioengine.h" //#include "ardour/mtdm.h" -//#include "ardour/rc_configuration.h" +#include "ardour/rc_configuration.h" //#include "ardour/types.h" //#include "pbd/convert.h" @@ -72,7 +72,10 @@ TracksControlPanel::init () midi_settings_tab_button.signal_clicked.connect (sigc::mem_fun (*this, &TracksControlPanel::on_midi_settings)); session_settings_tab_button.signal_clicked.connect (sigc::mem_fun (*this, &TracksControlPanel::on_session_settings)); control_panel_button.signal_clicked.connect (sigc::mem_fun (*this, &TracksControlPanel::on_control_panel)); - + + multi_out_button.signal_clicked.connect(sigc::mem_fun (*this, &TracksControlPanel::on_multi_out)); + stereo_out_button.signal_clicked.connect(sigc::mem_fun (*this, &TracksControlPanel::on_stereo_out)); + ARDOUR::AudioEngine::instance ()->Running.connect (running_connection, MISSING_INVALIDATOR, boost::bind (&TracksControlPanel::engine_running, this), gui_context()); ARDOUR::AudioEngine::instance ()->Stopped.connect (stopped_connection, MISSING_INVALIDATOR, boost::bind (&TracksControlPanel::engine_stopped, this), gui_context()); ARDOUR::AudioEngine::instance ()->Halted.connect (stopped_connection, MISSING_INVALIDATOR, boost::bind (&TracksControlPanel::engine_stopped, this), gui_context()); @@ -92,6 +95,8 @@ TracksControlPanel::init () midi_settings_layout.hide (); session_settings_layout.hide (); audio_settings_tab_button.set_active(true); + multi_out_button.set_active(ARDOUR::Config->get_output_auto_connect() & ARDOUR::AutoConnectPhysical); + stereo_out_button.set_active(ARDOUR::Config->get_output_auto_connect() & ARDOUR::AutoConnectMaster); } void @@ -441,6 +446,32 @@ TracksControlPanel::on_session_settings (WavesButton*) } +void +TracksControlPanel::on_multi_out (WavesButton*) +{ + if (ARDOUR::Config->get_output_auto_connect() & ARDOUR::AutoConnectPhysical) { + return; + } + + ARDOUR::Config->set_output_auto_connect(ARDOUR::AutoConnectPhysical); + stereo_out_button.set_active(false); + multi_out_button.set_active(true); +} + + +void +TracksControlPanel::on_stereo_out (WavesButton*) +{ + if (ARDOUR::Config->get_output_auto_connect() & ARDOUR::AutoConnectMaster) { + return; + } + + ARDOUR::Config->set_output_auto_connect(ARDOUR::AutoConnectMaster); + multi_out_button.set_active(false); + stereo_out_button.set_active(true); + +} + void TracksControlPanel::on_ok (WavesButton*) { diff --git a/gtk2_ardour/tracks_control_panel.logic.h b/gtk2_ardour/tracks_control_panel.logic.h index d247baa8df..5b83cc9d6f 100644 --- a/gtk2_ardour/tracks_control_panel.logic.h +++ b/gtk2_ardour/tracks_control_panel.logic.h @@ -55,6 +55,8 @@ void on_midi_settings(WavesButton*); void on_session_settings(WavesButton*); void on_control_panel(WavesButton*); + void on_multi_out (WavesButton*); + void on_stereo_out (WavesButton*); void on_ok(WavesButton*); void on_cancel(WavesButton*); void on_apply(WavesButton*);