From 4180c8d5fde237b2a619aabfdae2d39b0cb6392f Mon Sep 17 00:00:00 2001 From: nikolay Date: Wed, 6 Aug 2014 12:00:27 +0300 Subject: [PATCH] [Summary] Fixed bug in Master_UI with not activated buttons. Changed name and type of variable (PBD::ScopedConnectionList _route_state_connections -> PBD::ScopedConnection _route_meter_connection;). [Reviewed] GZharun --- gtk2_ardour/master_bus_ui.cc | 19 ++++++++++++------- gtk2_ardour/master_bus_ui.h | 2 ++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gtk2_ardour/master_bus_ui.cc b/gtk2_ardour/master_bus_ui.cc index fec0530c10..f5050c93e8 100644 --- a/gtk2_ardour/master_bus_ui.cc +++ b/gtk2_ardour/master_bus_ui.cc @@ -213,13 +213,13 @@ MasterBusUI::set_route (boost::shared_ptr rt) _level_meter.clear_meters(); _level_meter.set_type (_route->meter_type()); _level_meter.setup_meters (__meter_width, __meter_width); - _route->shared_peak_meter()->ConfigurationChanged.connect (_route_state_connections, + _route->shared_peak_meter()->ConfigurationChanged.connect (_route_meter_connection, invalidator (*this), boost::bind (&MasterBusUI::meter_configuration_changed, this, _1), gui_context()); - _route->DropReferences.connect (_route_state_connections, + _route->DropReferences.connect (_route_meter_connection, invalidator (*this), boost::bind (&MasterBusUI::reset, this), @@ -229,7 +229,7 @@ MasterBusUI::set_route (boost::shared_ptr rt) void MasterBusUI::reset () { - _route_state_connections.drop_connections (); + _route_meter_connection.disconnect (); _route = boost::shared_ptr(); // It's to have it "false" } @@ -323,6 +323,12 @@ void MasterBusUI::connect_route_state_signals(RouteList& tracks) gui_context() ); } + Route* master = ARDOUR_UI::instance()->the_session()->master_out().get(); + master->mute_changed.connect (_route_state_connections, + invalidator (*this), + boost::bind (&MasterBusUI::route_mute_state_changed, this, _1), + gui_context() ); + update_master(); } @@ -368,7 +374,7 @@ void MasterBusUI::on_master_mute_button (WavesButton*) if (Config->get_output_auto_connect() & AutoConnectPhysical) // Multi out { boost::shared_ptr tracks = session->get_tracks(); - bool all_tracks_are_muted = this->check_all_tracks_are_muted(); + bool all_tracks_are_muted = this->check_all_tracks_are_muted(); session->set_mute(tracks, !all_tracks_are_muted); _master_mute_button.set_active( !all_tracks_are_muted ); } else if (Config->get_output_auto_connect() & AutoConnectMaster) // Stereo out @@ -380,7 +386,7 @@ void MasterBusUI::on_master_mute_button (WavesButton*) } void MasterBusUI::route_mute_state_changed (void* ) -{ +{ Session* session = ARDOUR_UI::instance()->the_session(); if( !session ) @@ -480,8 +486,7 @@ void MasterBusUI::on_global_rec_button (WavesButton*) boost::shared_ptr rl = session->get_tracks (); - bool all_tracks_are_record_armed = this->check_all_tracks_are_record_armed(); - + bool all_tracks_are_record_armed = this->check_all_tracks_are_record_armed(); session->set_record_enabled (rl, !all_tracks_are_record_armed); _global_rec_button.set_active(!all_tracks_are_record_armed); } diff --git a/gtk2_ardour/master_bus_ui.h b/gtk2_ardour/master_bus_ui.h index 12f86e51e2..2d588ccf33 100644 --- a/gtk2_ardour/master_bus_ui.h +++ b/gtk2_ardour/master_bus_ui.h @@ -73,6 +73,8 @@ private: void on_output_connection_mode_changed (); bool on_level_meter_button_press (GdkEventButton*); + PBD::ScopedConnection _route_meter_connection; + // MASTER staff void connect_route_state_signals(ARDOUR::RouteList& tracks); void update_master();