diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index ae658c3b00..d655d47744 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1503,6 +1503,9 @@ Editor::set_session (Session *t) _master_bus_ui->init(_session); } + bool set_master_bus_visible = Config->get_output_auto_connect() & AutoConnectMaster; + _master_bus_ui->master_bus_set_visible ( set_master_bus_visible ); + _set_session_in_progress = false; } @@ -5722,6 +5725,8 @@ Editor::output_connection_mode_changed () if (Config->get_output_auto_connect() & AutoConnectMaster) { + _master_bus_ui->master_bus_set_visible (true); + if (_session->master_out() && !axis_view_from_route(_session->master_out() ) ) { selection->block_tracks_changed(true); @@ -5744,6 +5749,9 @@ Editor::output_connection_mode_changed () selection->block_tracks_changed(false); } } else { + + _master_bus_ui->master_bus_set_visible (false); + TimeAxisView* tv = 0; if (_session->master_out() && (tv = axis_view_from_route(_session->master_out() ) ) ) { delete tv; diff --git a/gtk2_ardour/master_bus_ui.cc b/gtk2_ardour/master_bus_ui.cc index f17ec3e96b..641a5417b4 100644 --- a/gtk2_ardour/master_bus_ui.cc +++ b/gtk2_ardour/master_bus_ui.cc @@ -106,6 +106,8 @@ MasterBusUI::MasterBusUI (Session* sess, PublicEditor& ed) , _clear_solo_button (get_waves_button ("clear_solo_button")) , _global_rec_button (get_waves_button ("global_rec_button")) , _no_peak_display_box (get_event_box("no_peak_display_box") ) + , _master_bus_hbox (get_h_box("master_bus_hbox") ) + , _master_bus_empty_hbox (get_h_box("master_bus_empty_hbox")) , _master_bus_multi_out_mode_icon (get_image("master_bus_multi_out_mode_icon")) , _master_event_box (WavesUI::root () ) , _selected(false) @@ -211,6 +213,20 @@ void MasterBusUI::on_output_connection_mode_changed() route_mute_state_changed(NULL); } +void +MasterBusUI::master_bus_set_visible (bool set_visible) +{ + if ( set_visible ) + { + _master_bus_hbox.show (); + _master_bus_empty_hbox.hide (); + } else + { + _master_bus_hbox.hide (); + _master_bus_empty_hbox.show (); + } +} + void MasterBusUI::update_master_bus_selection () { diff --git a/gtk2_ardour/master_bus_ui.h b/gtk2_ardour/master_bus_ui.h index c93bf5c3b1..3e7c742e99 100644 --- a/gtk2_ardour/master_bus_ui.h +++ b/gtk2_ardour/master_bus_ui.h @@ -54,6 +54,8 @@ public: void set_route (boost::shared_ptr); void update_master_bus_selection(); static PBD::Signal1 CatchDeletion; + + void master_bus_set_visible (bool set_visible); private: static int __meter_width; @@ -105,6 +107,8 @@ private: WavesButton& _clear_solo_button; WavesButton& _global_rec_button; Gtk::EventBox& _no_peak_display_box; + Gtk::HBox& _master_bus_hbox; + Gtk::HBox& _master_bus_empty_hbox; Gtk::Image& _master_bus_multi_out_mode_icon; Gtk::Container& _master_event_box; diff --git a/gtk2_ardour/ui/master_ui.xml b/gtk2_ardour/ui/master_ui.xml index 77792e8b44..ba6f46729d 100644 --- a/gtk2_ardour/ui/master_ui.xml +++ b/gtk2_ardour/ui/master_ui.xml @@ -9,25 +9,31 @@ bgnormal="#494949" bgactive="#494949"/> - - - - -