From d2f78c57285caba9e1355bb87135f90ea18a92b6 Mon Sep 17 00:00:00 2001 From: YPozdnyakov Date: Sat, 14 Feb 2015 13:29:09 +0200 Subject: [PATCH] [Summary]: switching to Multi-Out mode hide gain sliders on MixerBridge and Inspector. --- gtk2_ardour/editor.cc | 10 ++++++++-- gtk2_ardour/mixer_bridge_view.cc | 16 ++++++++++++++++ gtk2_ardour/mixer_bridge_view.h | 1 + gtk2_ardour/mixer_strip.cc | 9 +++++++++ gtk2_ardour/mixer_strip.h | 6 ++++-- gtk2_ardour/ui/inspector_gain_meter.xml | 3 ++- gtk2_ardour/ui/mixer_gain_meter.xml | 6 ++++-- 7 files changed, 44 insertions(+), 7 deletions(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 3e5d14fbaf..96651cd7a8 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1558,8 +1558,10 @@ 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 ); + bool stereo_out_mode_active = Config->get_output_auto_connect() & AutoConnectMaster; + _master_bus_ui->master_bus_set_visible ( stereo_out_mode_active ); + _mixer_bridge_view.all_gain_sliders_set_visible (stereo_out_mode_active); + current_mixer_strip->gain_slider_set_visible (stereo_out_mode_active); _set_session_in_progress = false; } @@ -5812,6 +5814,8 @@ Editor::output_connection_mode_changed () _master_bus_ui->master_bus_set_visible (true); + _mixer_bridge_view.all_gain_sliders_set_visible (true); + current_mixer_strip->gain_slider_set_visible (true); if (_session->master_out() && !axis_view_from_route(_session->master_out() ) ) { selection->block_tracks_changed(true); @@ -5837,6 +5841,8 @@ Editor::output_connection_mode_changed () _master_bus_ui->master_bus_set_visible (false); + _mixer_bridge_view.all_gain_sliders_set_visible (false); + current_mixer_strip->gain_slider_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/mixer_bridge_view.cc b/gtk2_ardour/mixer_bridge_view.cc index fe39e4c323..167c87e7b0 100644 --- a/gtk2_ardour/mixer_bridge_view.cc +++ b/gtk2_ardour/mixer_bridge_view.cc @@ -142,6 +142,17 @@ MixerBridgeView::session_going_away () _session = 0; } + +void +MixerBridgeView::all_gain_sliders_set_visible (bool visibility) +{ + for (std::map , MixerStrip*>::iterator i = _strips.begin(); i != _strips.end(); ++i) { + //(*i).second->gain_meter().get_gain_slider().set_visible (visibility); + //(*i).second->gain_meter().get_gain_display_button().set_visible (visibility); + (*i).second->gain_slider_set_visible (visibility); + } +} + gint MixerBridgeView::start_updating () { @@ -186,6 +197,11 @@ MixerBridgeView::add_strips (RouteList& routes) MixerStrip* strip = new MixerStrip (_session, route, _mixer_strip_script_name, _max_name_size); strip->signal_button_press_event().connect (sigc::bind (sigc::mem_fun(*this, &MixerBridgeView::strip_button_release_event), strip)); + + // in Multi-Out mode, new created strip mustn't show gain slider + bool set_gain_slider_visible = Config->get_output_auto_connect() & AutoConnectMaster; + strip->gain_slider_set_visible (set_gain_slider_visible); + _strips [route] = strip; strip->show(); } diff --git a/gtk2_ardour/mixer_bridge_view.h b/gtk2_ardour/mixer_bridge_view.h index 966ba5d9bb..f9dfa6512e 100644 --- a/gtk2_ardour/mixer_bridge_view.h +++ b/gtk2_ardour/mixer_bridge_view.h @@ -52,6 +52,7 @@ class MixerBridgeView : void set_session (ARDOUR::Session *); void set_max_name_size(size_t size) {_max_name_size = size;} void track_editor_selection (); + void all_gain_sliders_set_visible (bool); protected: void set_route_targets_for_operation (); diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 7c05aeb85f..eac39e18fb 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -1776,6 +1776,15 @@ MixerStrip::set_button_names () } } +void +MixerStrip::gain_slider_set_visible (bool visibility) +{ + gpm.get_gain_slider().set_visible (visibility); + gpm.get_gain_slider().set_no_show_all (!visibility); + gpm.get_gain_display_button().set_visible (visibility); + gpm.get_gain_display_button().set_no_show_all (!visibility); +} + PluginSelector* MixerStrip::plugin_selector() { diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 3fcd64da38..2578ade7e0 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -92,8 +92,10 @@ class MixerStrip : public RouteUI void set_button_names (); void show_send (boost::shared_ptr); void revert_to_default_display (); - - /** @return the delivery that is being edited using our fader; it will be the + + void gain_slider_set_visible (bool); + + /** @return the delivery that is being edited using our fader; it will be the * last send passed to ::show_send, or our route's main out delivery. */ boost::shared_ptr current_delivery () const { diff --git a/gtk2_ardour/ui/inspector_gain_meter.xml b/gtk2_ardour/ui/inspector_gain_meter.xml index 76468f2835..3c9969c18b 100644 --- a/gtk2_ardour/ui/inspector_gain_meter.xml +++ b/gtk2_ardour/ui/inspector_gain_meter.xml @@ -55,7 +55,8 @@ textcolornormal="#ffffff" textcoloractive="#ffffff" textcolorselected="#ffffff" - visible="false"/> + visible="false" + noshowall="true"/>