apply same always-check-display to recent sessions scroller in new session dialog
[ardour.git] / gtk2_ardour / rc_option_editor.cc
index 2a79772bb91a609656befc198bfdc64f3040bd99..f9336cee31366711b2194deabf4577a728f13c4a 100644 (file)
@@ -31,8 +31,6 @@
 #include "pbd/fpu.h"
 #include "pbd/cpus.h"
 
-#include "midi++/manager.h"
-
 #include "ardour/audioengine.h"
 #include "ardour/dB.h"
 #include "ardour/rc_configuration.h"
@@ -653,7 +651,7 @@ public:
        {
                _store = ListStore::create (_model);
                _view.set_model (_store);
-               _view.append_column (_("Name"), _model.name);
+               _view.append_column (_("Control Surface Protocol"), _model.name);
                _view.get_column(0)->set_resizable (true);
                _view.get_column(0)->set_expand (true);
                _view.append_column_editable (_("Enabled"), _model.enabled);
@@ -809,7 +807,6 @@ private:
         PBD::ScopedConnection protocol_status_connection;
 };
 
-#ifdef WITH_VIDEOTIMELINE
 class VideoTimelineOptions : public OptionEditorBox
 {
 public:
@@ -832,7 +829,7 @@ public:
                t->attach (*l, 0, 1, 1, 2, FILL);
                t->attach (_video_server_url_entry, 1, 2, 1, 2, FILL);
                Gtkmm2ext::UI::instance()->set_tip (_video_server_url_entry,
-                                           _("Base URL of the video-server including http prefix. This is usually 'http://hostname.example.org:1554/' and defaults to 'http://localhost:1554/' when the video-server is runing locally"));
+                                           _("Base URL of the video-server including http prefix. This is usually 'http://hostname.example.org:1554/' and defaults to 'http://localhost:1554/' when the video-server is running locally"));
 
                l = manage (new Label (_("Video Folder:")));
                l->set_alignment (0, 0.5);
@@ -927,7 +924,6 @@ private:
        CheckButton _show_video_server_dialog_button;
        CheckButton _video_advanced_setup_button;
 };
-#endif
 
 /** A class which allows control of visibility of some editor components usign
  *  a VisibilityGroup.  The caller should pass in a `dummy' VisibilityGroup
@@ -1150,7 +1146,7 @@ RCOptionEditor::RCOptionEditor ()
 
        tsf = new BoolOption (
                     "seamless-loop",
-                    _("Do seamless looping (not possible when slaved to MTC, JACK etc)"),
+                    _("Do seamless looping (not possible when slaved to MTC, LTC etc)"),
                     sigc::mem_fun (*_rc_config, &RCConfiguration::get_seamless_loop),
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_seamless_loop)
                     );
@@ -1317,6 +1313,14 @@ RCOptionEditor::RCOptionEditor ()
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_track_meters)
                     ));
 
+       add_option (_("Editor"),
+            new BoolOption (
+                    "show-editor-meter",
+                    _("Display master-meter in the toolbar"),
+                    sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_editor_meter),
+                    sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_editor_meter)
+                    ));
+
        bco = new BoolComboOption (
                     "use-overlap-equivalency",
                     _("Regions in active edit groups are edited together"),
@@ -1460,12 +1464,10 @@ RCOptionEditor::RCOptionEditor ()
                sigc::mem_fun (*_rc_config, &RCConfiguration::set_monitoring_model)
                );
 
-#ifndef __APPLE__
-        /* no JACK monitoring on CoreAudio */
-        if (AudioEngine::instance()->can_request_hardware_monitoring()) {
-                mm->add (HardwareMonitoring, _("JACK"));
+        if (AudioEngine::instance()->port_engine().can_monitor_input()) {
+                mm->add (HardwareMonitoring, _("via Audio Driver"));
         }
-#endif
+
        mm->add (SoftwareMonitoring, _("ardour"));
        mm->add (ExternalMonitoring, _("audio hardware"));
 
@@ -1815,9 +1817,9 @@ RCOptionEditor::RCOptionEditor ()
 
        add_option (_("User interaction"), new KeyboardOptions);
 
-       add_option (_("User interaction"), new OptionEditorHeading (_("Control surfaces")));
+       /* Control Surfaces */
 
-       add_option (_("User interaction"), new ControlSurfacesOptions (*this));
+       add_option (_("Control Surfaces"), new ControlSurfacesOptions (*this));
 
        ComboOption<RemoteModel>* rm = new ComboOption<RemoteModel> (
                "remote-model",
@@ -1830,16 +1832,14 @@ RCOptionEditor::RCOptionEditor ()
        rm->add (MixerOrdered, _("follows order of mixer"));
        rm->add (EditorOrdered, _("follows order of editor"));
 
-       add_option (_("User interaction"), rm);
+       add_option (_("Control Surfaces"), rm);
 
-#ifdef WITH_VIDEOTIMELINE
        /* VIDEO Timeline */
        add_option (_("Video"), new VideoTimelineOptions (_rc_config));
-#endif
 
        /* INTERFACE */
 
-       add_option (S_("GUI"),
+       add_option (S_("Preferences|GUI"),
             new BoolOption (
                     "widget-prelight",
                     _("Graphically indicate mouse pointer hovering over various widgets"),
@@ -1847,7 +1847,7 @@ RCOptionEditor::RCOptionEditor ()
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_widget_prelight)
                     ));
 
-       add_option (S_("GUI"),
+       add_option (S_("Preferences|GUI"),
             new BoolOption (
                     "use-tooltips",
                     _("Show tooltips if mouse hovers over a control"),
@@ -1857,15 +1857,8 @@ RCOptionEditor::RCOptionEditor ()
 
 #ifndef GTKOSX
        /* font scaling does nothing with GDK/Quartz */
-       add_option (S_("GUI"), new FontScalingOptions (_rc_config));
+       add_option (S_("Preferences|GUI"), new FontScalingOptions (_rc_config));
 #endif
-       add_option (S_("GUI"),
-                   new BoolOption (
-                           "use-own-plugin-gui",
-                           string_compose (_("Use plugins' own interfaces instead of %1's"), PROGRAM_NAME),
-                           sigc::mem_fun (*_rc_config, &RCConfiguration::get_use_plugin_own_gui),
-                           sigc::mem_fun (*_rc_config, &RCConfiguration::set_use_plugin_own_gui)
-                           ));
 
        add_option (S_("GUI"),
                    new BoolOption (
@@ -1885,7 +1878,7 @@ RCOptionEditor::RCOptionEditor ()
        _mixer_strip_visibility.add (0, X_("MeterPoint"), _("Meter Point"));
        
        add_option (
-               S_("GUI"),
+               S_("Preferences|GUI"),
                new VisibilityOption (
                        _("Mixer Strip"),
                        &_mixer_strip_visibility,
@@ -1894,7 +1887,7 @@ RCOptionEditor::RCOptionEditor ()
                        )
                );
 
-       add_option (S_("GUI"),
+       add_option (S_("Preferences|GUI"),
             new BoolOption (
                     "default-narrow_ms",
                     _("Use narrow strips in the mixer by default"),
@@ -1902,11 +1895,11 @@ RCOptionEditor::RCOptionEditor ()
                     sigc::mem_fun (*_rc_config, &RCConfiguration::set_default_narrow_ms)
                     ));
 
-       add_option (S_("GUI"), new OptionEditorHeading (_("Metering")));
+       add_option (S_("Preferences|GUI"), new OptionEditorHeading (_("Metering")));
 
        ComboOption<float>* mht = new ComboOption<float> (
                "meter-hold",
-               _("Meter hold time"),
+               _("Peak hold time"),
                sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_hold),
                sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_hold)
                );
@@ -1916,24 +1909,95 @@ RCOptionEditor::RCOptionEditor ()
        mht->add (MeterHoldMedium, _("medium"));
        mht->add (MeterHoldLong, _("long"));
 
-       add_option (S_("GUI"), mht);
+       add_option (S_("Preferences|GUI"), mht);
 
        ComboOption<float>* mfo = new ComboOption<float> (
                "meter-falloff",
-               _("Meter fall-off"),
+               _("DPM fall-off"),
                sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_falloff),
                sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_falloff)
                );
 
-       mfo->add (METER_FALLOFF_OFF, _("off"));
-       mfo->add (METER_FALLOFF_SLOWEST, _("slowest"));
-       mfo->add (METER_FALLOFF_SLOW, _("slow"));
-       mfo->add (METER_FALLOFF_MEDIUM, _("medium"));
-       mfo->add (METER_FALLOFF_FAST, _("fast"));
-       mfo->add (METER_FALLOFF_FASTER, _("faster"));
-       mfo->add (METER_FALLOFF_FASTEST, _("fastest"));
+       mfo->add (METER_FALLOFF_OFF,      _("off"));
+       mfo->add (METER_FALLOFF_SLOWEST,  _("slowest [6.6dB/sec]"));
+       mfo->add (METER_FALLOFF_SLOW,     _("slow [8.6dB/sec] (BBC PPM, EBU PPM)"));
+       mfo->add (METER_FALLOFF_SLOWISH,  _("slowish [12.0dB/sec] (DIN)"));
+       mfo->add (METER_FALLOFF_MODERATE, _("moderate [13.3dB/sec] (EBU Digi PPM, IRT Digi PPM)"));
+       mfo->add (METER_FALLOFF_MEDIUM,   _("medium [20dB/sec]"));
+       mfo->add (METER_FALLOFF_FAST,     _("fast [32dB/sec]"));
+       mfo->add (METER_FALLOFF_FASTER,   _("faster [46dB/sec]"));
+       mfo->add (METER_FALLOFF_FASTEST,  _("fastest [70dB/sec]"));
+
+       add_option (S_("Preferences|GUI"), mfo);
+
+       ComboOption<MeterLineUp>* mlu = new ComboOption<MeterLineUp> (
+               "meter-line-up-level",
+               _("Meter line-up level; 0dBu"),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_line_up_level),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_line_up_level)
+               );
+
+       mlu->add (MeteringLineUp24, _("-24dBFS (SMPTE US: 4dBu = -20dBFS)"));
+       mlu->add (MeteringLineUp20, _("-20dBFS (SMPTE RP.0155)"));
+       mlu->add (MeteringLineUp18, _("-18dBFS (EBU, BBC)"));
+       mlu->add (MeteringLineUp15, _("-15dBFS (DIN)"));
+
+       Gtkmm2ext::UI::instance()->set_tip (mlu->tip_widget(), _("Configure meter-marks and color-knee point for dBFS scale DPM, set reference level for IEC1/Nordic, IEC2 PPM and VU meter."));
+
+       add_option (S_("Preferences|GUI"), mlu);
+
+       ComboOption<MeterLineUp>* mld = new ComboOption<MeterLineUp> (
+               "meter-line-up-din",
+               _("IEC1/DIN Meter line-up level; 0dBu"),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_line_up_din),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_line_up_din)
+               );
+
+       mld->add (MeteringLineUp24, _("-24dBFS (SMPTE US: 4dBu = -20dBFS)"));
+       mld->add (MeteringLineUp20, _("-20dBFS (SMPTE RP.0155)"));
+       mld->add (MeteringLineUp18, _("-18dBFS (EBU, BBC)"));
+       mld->add (MeteringLineUp15, _("-15dBFS (DIN)"));
+
+       Gtkmm2ext::UI::instance()->set_tip (mld->tip_widget(), _("Reference level for IEC1/DIN meter."));
+
+       add_option (S_("Preferences|GUI"), mld);
+
+       ComboOption<VUMeterStandard>* mvu = new ComboOption<VUMeterStandard> (
+               "meter-vu-standard",
+               _("VU Meter standard"),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_vu_standard),
+               sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_vu_standard)
+               );
+
+       mvu->add (MeteringVUfrench,   _("0VU = -2dBu (France)"));
+       mvu->add (MeteringVUamerican, _("0VU = 0dBu (North America, Australia)"));
+       mvu->add (MeteringVUstandard, _("0VU = +4dBu (standard)"));
+       mvu->add (MeteringVUeight,    _("0VU = +8dBu"));
+
+       add_option (S_("Preferences|GUI"), mvu);
+
+       Gtk::Adjustment *mpk = manage (new Gtk::Adjustment(0, -10, 0, .1, .1));
+       HSliderOption *mpks = new HSliderOption("meter-peak",
+                       _("Peak threshold [dBFS]"),
+                       mpk,
+                       sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_peak),
+                       sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_peak)
+                       );
+
+       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."));
+
+       add_option (S_("Preferences|GUI"), mpks);
+
+       add_option (S_("Preferences|GUI"),
+            new BoolOption (
+                    "meter-style-led",
+                    _("LED meter style"),
+                    sigc::mem_fun (*_rc_config, &RCConfiguration::get_meter_style_led),
+                    sigc::mem_fun (*_rc_config, &RCConfiguration::set_meter_style_led)
+                    ));
 
-       add_option (S_("GUI"), mfo);
 }
 
 void