fix initial panner control for new Sends
[ardour.git] / gtk2_ardour / rc_option_editor.cc
index 5e5e7ca7fb81e9b1cbb706f819d462471406e42e..3d5badf57b8408d08d5e273b519302be2b797a21 100644 (file)
@@ -1787,6 +1787,9 @@ RCOptionEditor::RCOptionEditor ()
         , _rc_config (Config)
        , _mixer_strip_visibility ("mixer-element-visibility")
 {
+
+       UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &RCOptionEditor::parameter_changed));
+
        /* MISC */
 
         uint32_t hwcpus = hardware_concurrency ();
@@ -2357,8 +2360,8 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_tape_machine_mode)
                     ));
 
-if (!Profile->get_mixbus()) {
        add_option (_("Audio"), new OptionEditorHeading (_("Connection of tracks and busses")));
+if (!Profile->get_mixbus()) {
 
        add_option (_("Audio"),
                    new BoolOption (
@@ -2392,6 +2395,18 @@ if (!Profile->get_mixbus()) {
        oac->add (ManualConnect, _("manually"));
 
        add_option (_("Audio"), oac);
+
+       bo = new BoolOption (
+                       "strict-io",
+                       _("Use 'Strict-I/O' for new tracks or Busses"),
+                       sigc::mem_fun (*_rc_config, &RCConfiguration::get_strict_io),
+                       sigc::mem_fun (*_rc_config, &RCConfiguration::set_strict_io)
+                       );
+
+       add_option (_("Audio"), bo);
+       Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
+                       _("With strict-i/o enabled, Effect Processors will not modify the number of channels on a track. The number of output channels will always match the number of input channels."));
+
 }  // !mixbus
 
        add_option (_("Audio"), new OptionEditorHeading (_("Denormals")));
@@ -2905,18 +2920,26 @@ if (!Profile->get_mixbus()) {
             new BoolOption (
                     "open-gui-after-adding-plugin",
                     _("Automatically open the plugin GUI when adding a new plugin"),
-                    sigc::mem_fun (*_rc_config, &RCConfiguration::get_open_gui_after_adding_plugin),
-                    sigc::mem_fun (*_rc_config, &RCConfiguration::set_open_gui_after_adding_plugin)
+                    sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_open_gui_after_adding_plugin),
+                    sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_open_gui_after_adding_plugin)
                     ));
 
 #ifdef LV2_SUPPORT
        add_option (_("Plugins"),
             new BoolOption (
-                    "show-inline-display-by-default,",
+                    "show-inline-display-by-default",
                     _("Show Plugin Inline Display on Mixerstrip by default"),
-                    sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_inline_display_by_default),
-                    sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_inline_display_by_default)
+                    sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_inline_display_by_default),
+                    sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_inline_display_by_default)
                     ));
+
+       _plugin_prefer_inline = new BoolOption (
+                       "prefer-inline-over-gui",
+                       _("Don't automatically open the plugin GUI when the plugin has an inline display mode"),
+                       sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_prefer_inline_over_gui),
+                       sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_prefer_inline_over_gui)
+                       );
+       add_option (_("Plugins"), _plugin_prefer_inline);
 #endif
 #endif
 
@@ -3242,6 +3265,10 @@ RCOptionEditor::parameter_changed (string const & p)
                bool const s = Config->get_send_ltc ();
                _ltc_send_continuously->set_sensitive (s);
                _ltc_volume_slider->set_sensitive (s);
+       } else if (p == "open-gui-after-adding-plugin" || p == "show-inline-display-by-default") {
+#ifdef LV2_SUPPORT
+               _plugin_prefer_inline->set_sensitive (UIConfiguration::instance().get_open_gui_after_adding_plugin() && UIConfiguration::instance().get_show_inline_display_by_default());
+#endif
        }
 }