fix verbose plugin scan
[ardour.git] / gtk2_ardour / rc_option_editor.cc
index 90fa845bde14afc8e023ba3a9f0813bd0aff7555..0450948f57dc3c3b97ac51b4088775bd5d103276 100644 (file)
@@ -50,6 +50,7 @@
 #include "ardour_window.h"
 #include "ardour_dialog.h"
 #include "gui_thread.h"
+#include "meter_patterns.h"
 #include "midi_tracer.h"
 #include "rc_option_editor.h"
 #include "utils.h"
@@ -114,7 +115,6 @@ class AutoReturnTargetOptions : public OptionEditorBox
        {
                if (p == "auto-return-target-list") {
                        AutoReturnTarget art = _rc_config->get_auto_return_target_list();
-                       cerr << "ARTO, reset buttons with " << enum_2_string (art) << endl;
                        range_selection_button.set_active (art & RangeSelectionStart);
                        loop_button.set_active (art & Loop);
                        region_selection_button.set_active (art & RegionSelectionStart);
@@ -1515,6 +1515,7 @@ public:
                , _display_plugin_scan_progress (_("Always Display Plugin Scan Progress"))
                , _discover_vst_on_start (_("Scan for [new] VST Plugins on Application Start"))
                , _discover_au_on_start (_("Scan for AudioUnit Plugins on Application Start"))
+               , _verbose_plugin_scan (_("Verbose Plugin Scan"))
                , _timeout_adjustment (0, 0, 3000, 50, 50)
                , _timeout_slider (_timeout_adjustment)
        {
@@ -1587,6 +1588,12 @@ public:
                b = manage (new Button (_("Edit")));
                b->signal_clicked().connect (sigc::mem_fun (*this, &PluginOptions::edit_vst_path_clicked));
                t->attach (*b, 1, 2, n, n+1, FILL); ++n;
+
+               // currently verbose logging is only implemented for Windows VST.
+               t->attach (_verbose_plugin_scan, 0, 2, n, n+1); ++n;
+               _verbose_plugin_scan.signal_toggled().connect (sigc::mem_fun (*this, &PluginOptions::verbose_plugin_scan_toggled));
+               Gtkmm2ext::UI::instance()->set_tip (_verbose_plugin_scan,
+                                           _("<b>When enabled</b> additional information for every plugin is added to the Log Window."));
 #endif
 #endif // any VST
 
@@ -1634,6 +1641,10 @@ public:
                        bool const x = _rc_config->get_discover_audio_units();
                        _discover_au_on_start.set_active (x);
                }
+               else if (p == "verbose-plugin-scan") {
+                       bool const x = _rc_config->get_verbose_plugin_scan();
+                       _verbose_plugin_scan.set_active (x);
+               }
        }
 
        void set_state_from_config () {
@@ -1641,6 +1652,7 @@ public:
                parameter_changed ("discover-vst-on-start");
                parameter_changed ("vst-scan-timeout");
                parameter_changed ("discover-audio-units");
+               parameter_changed ("verbose-plugin-scan");
        }
 
 private:
@@ -1649,6 +1661,7 @@ private:
        CheckButton _display_plugin_scan_progress;
        CheckButton _discover_vst_on_start;
        CheckButton _discover_au_on_start;
+       CheckButton _verbose_plugin_scan;
        Adjustment _timeout_adjustment;
        HScale _timeout_slider;
 
@@ -1667,6 +1680,11 @@ private:
                _rc_config->set_discover_audio_units(x);
        }
 
+       void verbose_plugin_scan_toggled () {
+               bool const x = _verbose_plugin_scan.get_active();
+               _rc_config->set_verbose_plugin_scan(x);
+       }
+
        void timeout_changed () {
                int x = floor(_timeout_adjustment.get_value());
                _rc_config->set_vst_scan_timeout(x);
@@ -2965,6 +2983,54 @@ RCOptionEditor::RCOptionEditor ()
                        sigc::mem_fun (*_ui_config, &UIConfiguration::set_meter_peak)
                        );
 
+
+       ComboOption<MeterType>* mtm = new ComboOption<MeterType> (
+               "meter-type-master",
+               _("Default Meter Type for Master Bus"),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_type_master),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_type_master)
+               );
+       mtm->add (MeterPeak,    ArdourMeter::meter_type_string(MeterPeak));
+       mtm->add (MeterK20,     ArdourMeter::meter_type_string(MeterK20));
+       mtm->add (MeterK14,     ArdourMeter::meter_type_string(MeterK14));
+       mtm->add (MeterK12,     ArdourMeter::meter_type_string(MeterK12));
+       mtm->add (MeterIEC1DIN, ArdourMeter::meter_type_string(MeterIEC1DIN));
+       mtm->add (MeterIEC1NOR, ArdourMeter::meter_type_string(MeterIEC1NOR));
+       mtm->add (MeterIEC2BBC, ArdourMeter::meter_type_string(MeterIEC2BBC));
+       mtm->add (MeterIEC2EBU, ArdourMeter::meter_type_string(MeterIEC2EBU));
+
+       add_option (S_("Preferences|Metering"), mtm);
+
+
+       ComboOption<MeterType>* mtb = new ComboOption<MeterType> (
+               "meter-type-bus",
+               _("Default Meter Type for Busses"),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_type_bus),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_type_bus)
+               );
+       mtb->add (MeterPeak,    ArdourMeter::meter_type_string(MeterPeak));
+       mtb->add (MeterK20,     ArdourMeter::meter_type_string(MeterK20));
+       mtb->add (MeterK14,     ArdourMeter::meter_type_string(MeterK14));
+       mtb->add (MeterK12,     ArdourMeter::meter_type_string(MeterK12));
+       mtb->add (MeterIEC1DIN, ArdourMeter::meter_type_string(MeterIEC1DIN));
+       mtb->add (MeterIEC1NOR, ArdourMeter::meter_type_string(MeterIEC1NOR));
+       mtb->add (MeterIEC2BBC, ArdourMeter::meter_type_string(MeterIEC2BBC));
+       mtb->add (MeterIEC2EBU, ArdourMeter::meter_type_string(MeterIEC2EBU));
+
+       add_option (S_("Preferences|Metering"), mtb);
+
+       ComboOption<MeterType>* mtt = new ComboOption<MeterType> (
+               "meter-type-track",
+               _("Default Meter Type for Tracks"),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_type_track),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_type_track)
+               );
+       mtt->add (MeterPeak,    ArdourMeter::meter_type_string(MeterPeak));
+       mtt->add (MeterPeak0dB, ArdourMeter::meter_type_string(MeterPeak0dB));
+
+       add_option (S_("Preferences|Metering"), mtt);
+
+
        Gtkmm2ext::UI::instance()->set_tip
                (mpks->tip_widget(),
                 _("Specify the audio signal level in dbFS at and above which the meter-peak indicator will flash red."));