OSC: Changed gainVCA to gainfader as VCA is already used.
[ardour.git] / gtk2_ardour / rc_option_editor.cc
index 0ecb633dec66019d1393fa9d115828600dadf019..b2eaddfafbea80782ad83fdfe0c3ffaf0c6072c4 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 (
@@ -2394,6 +2397,18 @@ if (!Profile->get_mixbus()) {
        add_option (_("Audio"), oac);
 }  // !mixbus
 
+       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."));
+
+
        add_option (_("Audio"), new OptionEditorHeading (_("Denormals")));
 
        add_option (_("Audio"),
@@ -2481,7 +2496,7 @@ if (!Profile->get_mixbus()) {
 
        /* SOLO AND MUTE */
 
-       add_option (_("Solo / mute"), new OptionEditorHeading (_("Solo")));
+       add_option (_("Solo & mute"), new OptionEditorHeading (_("Solo")));
 
        _solo_control_is_listen_control = new BoolOption (
                "solo-control-is-listen-control",
@@ -2490,9 +2505,9 @@ if (!Profile->get_mixbus()) {
                sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_control_is_listen_control)
                );
 
-       add_option (_("Solo / mute"), _solo_control_is_listen_control);
+       add_option (_("Solo & mute"), _solo_control_is_listen_control);
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "exclusive-solo",
                     _("Exclusive solo"),
@@ -2500,7 +2515,7 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_exclusive_solo)
                     ));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "show-solo-mutes",
                     _("Show solo muting"),
@@ -2508,7 +2523,7 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_solo_mutes)
                     ));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "solo-mute-override",
                     _("Soloing overrides muting"),
@@ -2516,7 +2531,7 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_mute_override)
                     ));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new FaderOption (
                     "solo-mute-gain",
                     _("Solo-in-place mute cut (dB)"),
@@ -2534,7 +2549,7 @@ if (!Profile->get_mixbus()) {
        _listen_position->add (AfterFaderListen, _("after-fader (AFL)"));
        _listen_position->add (PreFaderListen, _("pre-fader (PFL)"));
 
-       add_option (_("Solo / mute"), _listen_position);
+       add_option (_("Solo & mute"), _listen_position);
 
        ComboOption<PFLPosition>* pp = new ComboOption<PFLPosition> (
                "pfl-position",
@@ -2546,7 +2561,7 @@ if (!Profile->get_mixbus()) {
        pp->add (PFLFromBeforeProcessors, _("before pre-fader processors"));
        pp->add (PFLFromAfterProcessors, _("pre-fader but after pre-fader processors"));
 
-       add_option (_("Solo / mute"), pp);
+       add_option (_("Solo & mute"), pp);
 
        ComboOption<AFLPosition>* pa = new ComboOption<AFLPosition> (
                "afl-position",
@@ -2558,11 +2573,11 @@ if (!Profile->get_mixbus()) {
        pa->add (AFLFromBeforeProcessors, _("immediately post-fader"));
        pa->add (AFLFromAfterProcessors, _("after post-fader processors (before pan)"));
 
-       add_option (_("Solo / mute"), pa);
+       add_option (_("Solo & mute"), pa);
 
-       add_option (_("Solo / mute"), new OptionEditorHeading (_("Default track / bus muting options")));
+       add_option (_("Solo & mute"), new OptionEditorHeading (_("Default track / bus muting options")));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "mute-affects-pre-fader",
                     _("Mute affects pre-fader sends"),
@@ -2570,7 +2585,7 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_pre_fader)
                     ));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "mute-affects-post-fader",
                     _("Mute affects post-fader sends"),
@@ -2578,7 +2593,7 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_post_fader)
                     ));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "mute-affects-control-outs",
                     _("Mute affects control outputs"),
@@ -2586,7 +2601,7 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_control_outs)
                     ));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "mute-affects-main-outs",
                     _("Mute affects main outputs"),
@@ -2594,9 +2609,9 @@ if (!Profile->get_mixbus()) {
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_main_outs)
                     ));
 
-       add_option (_("Solo / mute"), new OptionEditorHeading (_("Send Routing")));
+       add_option (_("Solo & mute"), new OptionEditorHeading (_("Send Routing")));
 
-       add_option (_("Solo / mute"),
+       add_option (_("Solo & mute"),
             new BoolOption (
                     "link-send-and-route-panner",
                     _("Link panners of Aux and External Sends with main panner by default"),
@@ -2905,9 +2920,27 @@ 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 Plugin Inline Display on Mixerstrip 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
 
        /* INTERFACE */
@@ -3232,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
        }
 }