summaryrefslogtreecommitdiff
path: root/gtk2_ardour/rc_option_editor.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-12-30 01:50:40 +0100
committerRobin Gareus <robin@gareus.org>2016-12-30 01:50:40 +0100
commit42255603603c2854bab9e9a0818f0be371f54649 (patch)
tree09f37d56cd92256eee8c579624a9fdf69023c224 /gtk2_ardour/rc_option_editor.cc
parent0b40535e9a4220782c8beff7f87d073f15ac1329 (diff)
re-group preferences part five of 27 (probably)
Diffstat (limited to 'gtk2_ardour/rc_option_editor.cc')
-rw-r--r--gtk2_ardour/rc_option_editor.cc894
1 files changed, 448 insertions, 446 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 31f5d611ff..efae728796 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -2201,302 +2201,11 @@ RCOptionEditor::RCOptionEditor ()
PROGRAM_NAME));
add_option (_("Misc"), tsf);
- /* TRANSPORT */
-
- add_option (_("Transport"), new OptionEditorHeading (S_("Transport Options")));
-
- tsf = new BoolOption (
- "latched-record-enable",
- _("Keep record-enable engaged on stop"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_latched_record_enable),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_latched_record_enable)
- );
- // Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _(""));
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "loop-is-mode",
- _("Play loop is a transport mode"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_loop_is_mode),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_loop_is_mode)
- );
- Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
- (_("<b>When enabled</b> the loop button does not start playback but forces playback to always play the loop\n\n"
- "<b>When disabled</b> the loop button starts playing the loop, but stop then cancels loop playback")));
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "stop-recording-on-xrun",
- _("Stop recording when an xrun occurs"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_recording_on_xrun),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_recording_on_xrun)
- );
- Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
- string_compose (_("<b>When enabled</b> %1 will stop recording if an over- or underrun is detected by the audio engine"),
- PROGRAM_NAME));
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "create-xrun-marker",
- _("Create markers where xruns occur"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_create_xrun_marker),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_create_xrun_marker)
- );
- // Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _(""));
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "stop-at-session-end",
- _("Stop at the end of the session"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_at_session_end),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_at_session_end)
- );
- Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
- string_compose (_("<b>When enabled</b> if %1 is <b>not recording</b>, it will stop the transport "
- "when it reaches the current session end marker\n\n"
- "<b>When disabled</b> %1 will continue to roll past the session end marker at all times"),
- PROGRAM_NAME));
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "seamless-loop",
- _("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)
- );
- Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
- string_compose (_("<b>When enabled</b> this will loop by reading ahead and wrapping around at the loop point, "
- "preventing any need to do a transport locate at the end of the loop\n\n"
- "<b>When disabled</b> looping is done by locating back to the start of the loop when %1 reaches the end "
- "which will often cause a small click or delay"), PROGRAM_NAME));
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "disable-disarm-during-roll",
- _("Disable per-track record disarm while rolling"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_disable_disarm_during_roll),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_disable_disarm_during_roll)
- );
- Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("<b>When enabled</b> this will prevent you from accidentally stopping specific tracks recording during a take"));
- add_option (_("Transport"), tsf);
-
- tsf = new BoolOption (
- "quieten_at_speed",
- _("12dB gain reduction during fast-forward and fast-rewind"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_quieten_at_speed),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_quieten_at_speed)
- );
- Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("This will reduce the unpleasant increase in perceived volume "
- "that occurs when fast-forwarding or rewinding through some kinds of audio"));
- add_option (_("Transport"), tsf);
-
- ComboOption<float>* psc = new ComboOption<float> (
- "preroll-seconds",
- _("Preroll"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_preroll_seconds),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_preroll_seconds)
- );
- Gtkmm2ext::UI::instance()->set_tip (psc->tip_widget(),
- (_("The amount of preroll (in seconds) to apply when <b>Play with Preroll</b> is initiated.\n\n"
- "If <b>Follow Edits</b> is enabled, the preroll is applied to the playhead position when a region is selected or trimmed.")));
- psc->add (0.0, _("0 (no pre-roll)"));
- psc->add (0.1, _("0.1 second"));
- psc->add (0.25, _("0.25 second"));
- psc->add (0.5, _("0.5 second"));
- psc->add (1.0, _("1.0 second"));
- psc->add (2.0, _("2.0 seconds"));
- add_option (_("Transport"), psc);
-
- add_option (_("Sync"), new OptionEditorHeading (S_("Synchronization and Slave Options")));
-
- _sync_source = new ComboOption<SyncSource> (
- "sync-source",
- _("External timecode source"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_sync_source),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_sync_source)
- );
-
- add_option (_("Sync"), _sync_source);
-
- _sync_framerate = new BoolOption (
- "timecode-sync-frame-rate",
- _("Match session video frame rate to external timecode"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_sync_frame_rate),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_sync_frame_rate)
- );
- Gtkmm2ext::UI::instance()->set_tip
- (_sync_framerate->tip_widget(),
- string_compose (_("This option controls the value of the video frame rate <i>while chasing</i> an external timecode source.\n\n"
- "<b>When enabled</b> the session video frame rate will be changed to match that of the selected external timecode source.\n\n"
- "<b>When disabled</b> the session video frame rate will not be changed to match that of the selected external timecode source."
- "Instead the frame rate indication in the main clock will flash red and %1 will convert between the external "
- "timecode standard and the session standard."), PROGRAM_NAME));
-
- add_option (_("Sync"), _sync_framerate);
-
- _sync_genlock = new BoolOption (
- "timecode-source-is-synced",
- _("Sync-lock timecode to clock (disable drift compensation)"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_is_synced),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_is_synced)
- );
- Gtkmm2ext::UI::instance()->set_tip
- (_sync_genlock->tip_widget(),
- string_compose (_("<b>When enabled</b> %1 will never varispeed when slaved to external timecode. "
- "Sync Lock indicates that the selected external timecode source shares clock-sync "
- "(Black &amp; Burst, Wordclock, etc) with the audio interface. "
- "This option disables drift compensation. The transport speed is fixed at 1.0. "
- "Vari-speed LTC will be ignored and cause drift."
- "\n\n"
- "<b>When disabled</b> %1 will compensate for potential drift, regardless if the "
- "timecode sources shares clock sync."
- ), PROGRAM_NAME));
-
-
- add_option (_("Sync"), _sync_genlock);
-
- _sync_source_2997 = new BoolOption (
- "timecode-source-2997",
- _("Lock to 29.9700 fps instead of 30000/1001"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_2997),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_2997)
- );
- Gtkmm2ext::UI::instance()->set_tip
- (_sync_source_2997->tip_widget(),
- _("<b>When enabled</b> the external timecode source is assumed to use 29.97 fps instead of 30000/1001.\n"
- "SMPTE 12M-1999 specifies 29.97df as 30000/1001. The spec further mentions that "
- "drop-frame timecode has an accumulated error of -86ms over a 24-hour period.\n"
- "Drop-frame timecode would compensate exactly for a NTSC color frame rate of 30 * 0.9990 (ie 29.970000). "
- "That is not the actual rate. However, some vendors use that rate - despite it being against the specs - "
- "because the variant of using exactly 29.97 fps has zero timecode drift.\n"
- ));
-
- add_option (_("Sync"), _sync_source_2997);
-
- add_option (_("Sync/LTC"), new OptionEditorHeading (S_("LTC Reader")));
-
- _ltc_port = new ComboStringOption (
- "ltc-source-port",
- _("LTC incoming port"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_ltc_source_port),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_ltc_source_port)
- );
-
- vector<string> physical_inputs;
- physical_inputs.push_back (_("None"));
- AudioEngine::instance()->get_physical_inputs (DataType::AUDIO, physical_inputs);
- _ltc_port->set_popdown_strings (physical_inputs);
-
- populate_sync_options ();
- AudioEngine::instance()->Running.connect (engine_started_connection, MISSING_INVALIDATOR, boost::bind (&RCOptionEditor::populate_sync_options, this), gui_context());
-
- add_option (_("Sync/LTC"), _ltc_port);
-
- add_option (_("Sync/LTC"), new OptionEditorHeading (S_("LTC Generator")));
-
- add_option (_("Sync/LTC"),
- new BoolOption (
- "send-ltc",
- _("Enable LTC generator"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_ltc),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_ltc)
- ));
-
- _ltc_send_continuously = new BoolOption (
- "ltc-send-continuously",
- _("Send LTC while stopped"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_ltc_send_continuously),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_ltc_send_continuously)
- );
- Gtkmm2ext::UI::instance()->set_tip
- (_ltc_send_continuously->tip_widget(),
- string_compose (_("<b>When enabled</b> %1 will continue to send LTC information even when the transport (playhead) is not moving"), PROGRAM_NAME));
- add_option (_("Sync/LTC"), _ltc_send_continuously);
-
- _ltc_volume_slider = new HSliderOption("ltcvol", _("LTC generator level"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_ltc_output_volume),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_ltc_output_volume),
- -50, 0, .5, 5,
- .05, true);
-
- Gtkmm2ext::UI::instance()->set_tip
- (_ltc_volume_slider->tip_widget(),
- _("Specify the Peak Volume of the generated LTC signal in dBFS. A good value is 0dBu ^= -18dBFS in an EBU calibrated system"));
-
- add_option (_("Sync/LTC"), _ltc_volume_slider);
-
-
- add_option (_("Sync/MIDI"), new OptionEditorHeading (_("MIDI Clock Generator")));
-
- add_option (_("Sync/MIDI"),
- new BoolOption (
- "send-midi-clock",
- _("Send MIDI Clock"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_midi_clock),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_midi_clock)
- ));
-
- add_option (_("Sync/MIDI"), new OptionEditorHeading (_("MIDI Time Code (MTC) Generator")));
-
- add_option (_("Sync/MIDI"),
- new BoolOption (
- "send-mtc",
- _("Send MIDI Time Code"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_mtc),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mtc)
- ));
-
- add_option (_("Sync/MIDI"),
- new SpinOption<int> (
- "mtc-qf-speed-tolerance",
- _("Percentage either side of normal transport speed to transmit MTC"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mtc_qf_speed_tolerance),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mtc_qf_speed_tolerance),
- 0, 20, 1, 5
- ));
-
- add_option (_("Sync/MIDI"), new OptionEditorHeading (_("Midi Machine Control (MMC)")));
-
- add_option (_("Sync/MIDI"),
- new BoolOption (
- "mmc-control",
- _("Respond to MMC commands"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mmc_control),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_control)
- ));
-
- add_option (_("Sync/MIDI"),
- new BoolOption (
- "send-mmc",
- _("Send MMC commands"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_mmc),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mmc)
- ));
-
- add_option (_("Sync/MIDI"),
- new SpinOption<uint8_t> (
- "mmc-receive-device-id",
- _("Inbound MMC device ID"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mmc_receive_device_id),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_receive_device_id),
- 0, 128, 1, 10
- ));
-
- add_option (_("Sync/MIDI"),
- new SpinOption<uint8_t> (
- "mmc-send-device-id",
- _("Outbound MMC device ID"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mmc_send_device_id),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_send_device_id),
- 0, 128, 1, 10
- ));
-
-
/* EDITOR */
- add_option (_("Editing"), new OptionEditorHeading (_("Editor Settings")));
+ add_option (_("Editor"), new OptionEditorHeading (_("Editor Settings")));
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"rubberbanding-snaps-to-grid",
_("Make rubberband selection rectangle snap to the grid"),
@@ -2510,11 +2219,11 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_name_new_markers),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_name_new_markers)
);
- add_option (_("Editing"), bo);
+ add_option (_("Editor"), bo);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(), _("If enabled, popup a dialog when a new marker is created to allow its name to be set as it is created."
"\n\nYou can always rename markers by right-clicking on them"));
- add_option (S_("Editing"),
+ add_option (S_("Editor"),
new BoolOption (
"draggable-playhead",
_("Allow dragging of playhead"),
@@ -2523,7 +2232,7 @@ RCOptionEditor::RCOptionEditor ()
));
if (!Profile->get_mixbus()) {
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"show-zoom-tools",
_("Show zoom toolbar (if torn off)"),
@@ -2531,7 +2240,7 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_zoom_tools)
));
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"use-mouse-position-as-zoom-focus-on-scroll",
_("Always use mouse cursor position as zoom focus when zooming using mouse scroll wheel"),
@@ -2540,7 +2249,7 @@ if (!Profile->get_mixbus()) {
));
} // !mixbus
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"use-time-rulers-to-zoom-with-vertical-drag",
_("Use time rulers area to zoom when clicking and dragging vertically"),
@@ -2548,7 +2257,7 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_time_rulers_to_zoom_with_vertical_drag)
));
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"use-double-click-to-zoom-to-selection",
_("Use double mouse click to zoom to selection"),
@@ -2556,7 +2265,7 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_double_click_to_zoom_to_selection)
));
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"update-editor-during-summary-drag",
_("Update editor window during drags of the summary"),
@@ -2564,7 +2273,7 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_update_editor_during_summary_drag)
));
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"autoscroll-editor",
_("Auto-scroll editor window when dragging near its edges"),
@@ -2572,7 +2281,7 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_autoscroll_editor)
));
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolComboOption (
"show-region-gain-envelopes",
_("Show gain envelopes in audio regions"),
@@ -2582,9 +2291,9 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_region_gain)
));
- add_option (_("Editing"), new OptionEditorHeading (_("Editor Behavior")));
+ add_option (_("Editor"), new OptionEditorHeading (_("Editor Behavior")));
- add_option (_("Editing"),
+ add_option (_("Editor"),
new BoolOption (
"automation-follows-regions",
_("Move relevant automation when audio regions are moved"),
@@ -2608,7 +2317,7 @@ if (!Profile->get_mixbus()) {
fadeshape->add (FadeSlow, _("Slow"));
fadeshape->add (FadeFast, _("Fast"));
- add_option (_("Editing"), fadeshape);
+ add_option (_("Editor"), fadeshape);
bco = new BoolComboOption (
"use-overlap-equivalency",
@@ -2619,7 +2328,7 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_use_overlap_equivalency)
);
- add_option (_("Editing"), bco);
+ add_option (_("Editor"), bco);
ComboOption<LayerModel>* lm = new ComboOption<LayerModel> (
"layer-model",
@@ -2630,7 +2339,7 @@ if (!Profile->get_mixbus()) {
lm->add (LaterHigher, _("later is higher"));
lm->add (Manual, _("manual layering"));
- add_option (_("Editing"), lm);
+ add_option (_("Editor"), lm);
ComboOption<RegionSelectionAfterSplit> *rsas = new ComboOption<RegionSelectionAfterSplit> (
"region-selection-after-split",
@@ -2648,7 +2357,135 @@ if (!Profile->get_mixbus()) {
// rsas->add(ExistingNewlyCreatedRight, _("existing selection and newly-created regions after the split"));
rsas->add(ExistingNewlyCreatedBoth, _("existing selection and newly-created regions"));
- add_option (_("Editing"), rsas);
+ add_option (_("Editor"), rsas);
+
+ /* MIXER -- SOLO AND MUTE */
+
+ add_option (_("Mixer"), new OptionEditorHeading (_("Solo")));
+
+ _solo_control_is_listen_control = new BoolOption (
+ "solo-control-is-listen-control",
+ _("Solo controls are Listen controls"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_control_is_listen_control),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_control_is_listen_control)
+ );
+
+ add_option (_("Mixer"), _solo_control_is_listen_control);
+
+ add_option (_("Mixer"),
+ new BoolOption (
+ "exclusive-solo",
+ _("Exclusive solo"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_exclusive_solo),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_exclusive_solo)
+ ));
+
+ add_option (_("Mixer"),
+ new BoolOption (
+ "show-solo-mutes",
+ _("Show solo muting"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_solo_mutes),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_solo_mutes)
+ ));
+
+ add_option (_("Mixer"),
+ new BoolOption (
+ "solo-mute-override",
+ _("Soloing overrides muting"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_mute_override),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_mute_override)
+ ));
+
+ add_option (_("Mixer"),
+ new FaderOption (
+ "solo-mute-gain",
+ _("Solo-in-place mute cut (dB)"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_mute_gain),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_mute_gain)
+ ));
+
+ _listen_position = new ComboOption<ListenPosition> (
+ "listen-position",
+ _("Listen Position"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_listen_position),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_listen_position)
+ );
+
+ _listen_position->add (AfterFaderListen, _("after-fader (AFL)"));
+ _listen_position->add (PreFaderListen, _("pre-fader (PFL)"));
+
+ add_option (_("Mixer"), _listen_position);
+
+ ComboOption<PFLPosition>* pp = new ComboOption<PFLPosition> (
+ "pfl-position",
+ _("PFL signals come from"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_pfl_position),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_pfl_position)
+ );
+
+ pp->add (PFLFromBeforeProcessors, _("before pre-fader processors"));
+ pp->add (PFLFromAfterProcessors, _("pre-fader but after pre-fader processors"));
+
+ add_option (_("Mixer"), pp);
+
+ ComboOption<AFLPosition>* pa = new ComboOption<AFLPosition> (
+ "afl-position",
+ _("AFL signals come from"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_afl_position),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_afl_position)
+ );
+
+ pa->add (AFLFromBeforeProcessors, _("immediately post-fader"));
+ pa->add (AFLFromAfterProcessors, _("after post-fader processors (before pan)"));
+
+ add_option (_("Mixer"), pa);
+
+ add_option (_("Mixer"), new OptionEditorHeading (_("Default track / bus muting options")));
+
+ add_option (_("Mixer"),
+ new BoolOption (
+ "mute-affects-pre-fader",
+ _("Mute affects pre-fader sends"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_pre_fader),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_pre_fader)
+ ));
+
+ add_option (_("Mixer"),
+ new BoolOption (
+ "mute-affects-post-fader",
+ _("Mute affects post-fader sends"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_post_fader),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_post_fader)
+ ));
+
+ add_option (_("Mixer"),
+ new BoolOption (
+ "mute-affects-control-outs",
+ _("Mute affects control outputs"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_control_outs),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_control_outs)
+ ));
+
+ add_option (_("Mixer"),
+ new BoolOption (
+ "mute-affects-main-outs",
+ _("Mute affects main outputs"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_main_outs),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_main_outs)
+ ));
+
+
+if (!ARDOUR::Profile->get_mixbus()) {
+ add_option (_("Mixer"), new OptionEditorHeading (_("Send Routing")));
+ add_option (_("Mixer"),
+ new BoolOption (
+ "link-send-and-route-panner",
+ _("Link panners of Aux and External Sends with main panner by default"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_link_send_and_route_panner),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_link_send_and_route_panner)
+ ));
+}
+
/* AUDIO */
@@ -2684,7 +2521,7 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_tape_machine_mode)
));
- add_option (_("Audio"), new OptionEditorHeading (_("Connection of tracks and busses")));
+ add_option (_("Audio"), new OptionEditorHeading (_("Track and Bus Connections")));
if (!Profile->get_mixbus()) {
add_option (_("Audio"),
@@ -2800,138 +2637,6 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_replicate_missing_region_channels)
));
- /* SOLO AND MUTE */
-
- add_option (_("Solo & mute"), new OptionEditorHeading (_("Solo")));
-
- _solo_control_is_listen_control = new BoolOption (
- "solo-control-is-listen-control",
- _("Solo controls are Listen controls"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_control_is_listen_control),
- 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"),
- new BoolOption (
- "exclusive-solo",
- _("Exclusive solo"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_exclusive_solo),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_exclusive_solo)
- ));
-
- add_option (_("Solo & mute"),
- new BoolOption (
- "show-solo-mutes",
- _("Show solo muting"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_show_solo_mutes),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_solo_mutes)
- ));
-
- add_option (_("Solo & mute"),
- new BoolOption (
- "solo-mute-override",
- _("Soloing overrides muting"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_mute_override),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_mute_override)
- ));
-
- add_option (_("Solo & mute"),
- new FaderOption (
- "solo-mute-gain",
- _("Solo-in-place mute cut (dB)"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_solo_mute_gain),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_solo_mute_gain)
- ));
-
- _listen_position = new ComboOption<ListenPosition> (
- "listen-position",
- _("Listen Position"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_listen_position),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_listen_position)
- );
-
- _listen_position->add (AfterFaderListen, _("after-fader (AFL)"));
- _listen_position->add (PreFaderListen, _("pre-fader (PFL)"));
-
- add_option (_("Solo & mute"), _listen_position);
-
- ComboOption<PFLPosition>* pp = new ComboOption<PFLPosition> (
- "pfl-position",
- _("PFL signals come from"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_pfl_position),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_pfl_position)
- );
-
- pp->add (PFLFromBeforeProcessors, _("before pre-fader processors"));
- pp->add (PFLFromAfterProcessors, _("pre-fader but after pre-fader processors"));
-
- add_option (_("Solo & mute"), pp);
-
- ComboOption<AFLPosition>* pa = new ComboOption<AFLPosition> (
- "afl-position",
- _("AFL signals come from"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_afl_position),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_afl_position)
- );
-
- pa->add (AFLFromBeforeProcessors, _("immediately post-fader"));
- pa->add (AFLFromAfterProcessors, _("after post-fader processors (before pan)"));
-
- add_option (_("Solo & mute"), pa);
-
- add_option (_("Solo & mute"), new OptionEditorHeading (_("Default track / bus muting options")));
-
- add_option (_("Solo & mute"),
- new BoolOption (
- "mute-affects-pre-fader",
- _("Mute affects pre-fader sends"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_pre_fader),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_pre_fader)
- ));
-
- add_option (_("Solo & mute"),
- new BoolOption (
- "mute-affects-post-fader",
- _("Mute affects post-fader sends"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_post_fader),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_post_fader)
- ));
-
- add_option (_("Solo & mute"),
- new BoolOption (
- "mute-affects-control-outs",
- _("Mute affects control outputs"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_control_outs),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_control_outs)
- ));
-
- add_option (_("Solo & mute"),
- new BoolOption (
- "mute-affects-main-outs",
- _("Mute affects main outputs"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_mute_affects_main_outs),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_main_outs)
- ));
-
-
-if (!ARDOUR::Profile->get_mixbus()) {
- add_option (_("Solo & mute"), new OptionEditorHeading (_("Send Routing")));
- add_option (_("Solo & mute"),
- new BoolOption (
- "link-send-and-route-panner",
- _("Link panners of Aux and External Sends with main panner by default"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_link_send_and_route_panner),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_link_send_and_route_panner)
- ));
-}
-
- /* Click */
-
- add_option (_("Metronom"), new OptionEditorHeading (_("Click")));
- add_option (_("Metronom"), new ClickOptions (_rc_config));
-
/* MIDI */
add_option (_("MIDI"), new OptionEditorHeading (_("MIDI Preferences")));
@@ -3016,6 +2721,307 @@ if (!ARDOUR::Profile->get_mixbus()) {
add_option (_("MIDI"), audition_synth);
+ /* Click */
+
+ add_option (_("Metronome"), new OptionEditorHeading (_("Click")));
+ add_option (_("Metronome"), new ClickOptions (_rc_config));
+
+
+ /* TRANSPORT & Sync */
+
+ add_option (_("Transport"), new OptionEditorHeading (S_("Transport Options")));
+
+ tsf = new BoolOption (
+ "latched-record-enable",
+ _("Keep record-enable engaged on stop"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_latched_record_enable),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_latched_record_enable)
+ );
+ // Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _(""));
+ add_option (_("Transport"), tsf);
+
+ tsf = new BoolOption (
+ "loop-is-mode",
+ _("Play loop is a transport mode"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_loop_is_mode),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_loop_is_mode)
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
+ (_("<b>When enabled</b> the loop button does not start playback but forces playback to always play the loop\n\n"
+ "<b>When disabled</b> the loop button starts playing the loop, but stop then cancels loop playback")));
+ add_option (_("Transport"), tsf);
+
+ tsf = new BoolOption (
+ "stop-recording-on-xrun",
+ _("Stop recording when an xrun occurs"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_recording_on_xrun),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_recording_on_xrun)
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
+ string_compose (_("<b>When enabled</b> %1 will stop recording if an over- or underrun is detected by the audio engine"),
+ PROGRAM_NAME));
+ add_option (_("Transport"), tsf);
+
+ tsf = new BoolOption (
+ "create-xrun-marker",
+ _("Create markers where xruns occur"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_create_xrun_marker),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_create_xrun_marker)
+ );
+ // Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _(""));
+ add_option (_("Transport"), tsf);
+
+ tsf = new BoolOption (
+ "stop-at-session-end",
+ _("Stop at the end of the session"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_stop_at_session_end),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_stop_at_session_end)
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
+ string_compose (_("<b>When enabled</b> if %1 is <b>not recording</b>, it will stop the transport "
+ "when it reaches the current session end marker\n\n"
+ "<b>When disabled</b> %1 will continue to roll past the session end marker at all times"),
+ PROGRAM_NAME));
+ add_option (_("Transport"), tsf);
+
+ tsf = new BoolOption (
+ "seamless-loop",
+ _("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)
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(),
+ string_compose (_("<b>When enabled</b> this will loop by reading ahead and wrapping around at the loop point, "
+ "preventing any need to do a transport locate at the end of the loop\n\n"
+ "<b>When disabled</b> looping is done by locating back to the start of the loop when %1 reaches the end "
+ "which will often cause a small click or delay"), PROGRAM_NAME));
+ add_option (_("Transport"), tsf);
+
+ tsf = new BoolOption (
+ "disable-disarm-during-roll",
+ _("Disable per-track record disarm while rolling"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_disable_disarm_during_roll),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_disable_disarm_during_roll)
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("<b>When enabled</b> this will prevent you from accidentally stopping specific tracks recording during a take"));
+ add_option (_("Transport"), tsf);
+
+ tsf = new BoolOption (
+ "quieten_at_speed",
+ _("12dB gain reduction during fast-forward and fast-rewind"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_quieten_at_speed),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_quieten_at_speed)
+ );
+ Gtkmm2ext::UI::instance()->set_tip (tsf->tip_widget(), _("This will reduce the unpleasant increase in perceived volume "
+ "that occurs when fast-forwarding or rewinding through some kinds of audio"));
+ add_option (_("Transport"), tsf);
+
+ ComboOption<float>* psc = new ComboOption<float> (
+ "preroll-seconds",
+ _("Preroll"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_preroll_seconds),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_preroll_seconds)
+ );
+ Gtkmm2ext::UI::instance()->set_tip (psc->tip_widget(),
+ (_("The amount of preroll (in seconds) to apply when <b>Play with Preroll</b> is initiated.\n\n"
+ "If <b>Follow Edits</b> is enabled, the preroll is applied to the playhead position when a region is selected or trimmed.")));
+ psc->add (0.0, _("0 (no pre-roll)"));
+ psc->add (0.1, _("0.1 second"));
+ psc->add (0.25, _("0.25 second"));
+ psc->add (0.5, _("0.5 second"));
+ psc->add (1.0, _("1.0 second"));
+ psc->add (2.0, _("2.0 seconds"));
+ add_option (_("Transport"), psc);
+
+ add_option (_("Sync"), new OptionEditorHeading (S_("Synchronization and Slave Options")));
+
+ _sync_source = new ComboOption<SyncSource> (
+ "sync-source",
+ _("External timecode source"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_sync_source),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_sync_source)
+ );
+
+ add_option (_("Sync"), _sync_source);
+
+ _sync_framerate = new BoolOption (
+ "timecode-sync-frame-rate",
+ _("Match session video frame rate to external timecode"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_sync_frame_rate),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_sync_frame_rate)
+ );
+ Gtkmm2ext::UI::instance()->set_tip
+ (_sync_framerate->tip_widget(),
+ string_compose (_("This option controls the value of the video frame rate <i>while chasing</i> an external timecode source.\n\n"
+ "<b>When enabled</b> the session video frame rate will be changed to match that of the selected external timecode source.\n\n"
+ "<b>When disabled</b> the session video frame rate will not be changed to match that of the selected external timecode source."
+ "Instead the frame rate indication in the main clock will flash red and %1 will convert between the external "
+ "timecode standard and the session standard."), PROGRAM_NAME));
+
+ add_option (_("Sync"), _sync_framerate);
+
+ _sync_genlock = new BoolOption (
+ "timecode-source-is-synced",
+ _("Sync-lock timecode to clock (disable drift compensation)"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_is_synced),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_is_synced)
+ );
+ Gtkmm2ext::UI::instance()->set_tip
+ (_sync_genlock->tip_widget(),
+ string_compose (_("<b>When enabled</b> %1 will never varispeed when slaved to external timecode. "
+ "Sync Lock indicates that the selected external timecode source shares clock-sync "
+ "(Black &amp; Burst, Wordclock, etc) with the audio interface. "
+ "This option disables drift compensation. The transport speed is fixed at 1.0. "
+ "Vari-speed LTC will be ignored and cause drift."
+ "\n\n"
+ "<b>When disabled</b> %1 will compensate for potential drift, regardless if the "
+ "timecode sources shares clock sync."
+ ), PROGRAM_NAME));
+
+
+ add_option (_("Sync"), _sync_genlock);
+
+ _sync_source_2997 = new BoolOption (
+ "timecode-source-2997",
+ _("Lock to 29.9700 fps instead of 30000/1001"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_timecode_source_2997),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_timecode_source_2997)
+ );
+ Gtkmm2ext::UI::instance()->set_tip
+ (_sync_source_2997->tip_widget(),
+ _("<b>When enabled</b> the external timecode source is assumed to use 29.97 fps instead of 30000/1001.\n"
+ "SMPTE 12M-1999 specifies 29.97df as 30000/1001. The spec further mentions that "
+ "drop-frame timecode has an accumulated error of -86ms over a 24-hour period.\n"
+ "Drop-frame timecode would compensate exactly for a NTSC color frame rate of 30 * 0.9990 (ie 29.970000). "
+ "That is not the actual rate. However, some vendors use that rate - despite it being against the specs - "
+ "because the variant of using exactly 29.97 fps has zero timecode drift.\n"
+ ));
+
+ add_option (_("Sync"), _sync_source_2997);
+
+ add_option (_("Sync/LTC"), new OptionEditorHeading (S_("LTC Reader")));
+
+ _ltc_port = new ComboStringOption (
+ "ltc-source-port",
+ _("LTC incoming port"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_ltc_source_port),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_ltc_source_port)
+ );
+
+ vector<string> physical_inputs;
+ physical_inputs.push_back (_("None"));
+ AudioEngine::instance()->get_physical_inputs (DataType::AUDIO, physical_inputs);
+ _ltc_port->set_popdown_strings (physical_inputs);
+
+ populate_sync_options ();
+ AudioEngine::instance()->Running.connect (engine_started_connection, MISSING_INVALIDATOR, boost::bind (&RCOptionEditor::populate_sync_options, this), gui_context());
+
+ add_option (_("Sync/LTC"), _ltc_port);
+
+ add_option (_("Sync/LTC"), new OptionEditorHeading (S_("LTC Generator")));
+
+ add_option (_("Sync/LTC"),
+ new BoolOption (
+ "send-ltc",
+ _("Enable LTC generator"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_ltc),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_ltc)
+ ));
+
+ _ltc_send_continuously = new BoolOption (
+ "ltc-send-continuously",
+ _("Send LTC while stopped"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_ltc_send_continuously),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_ltc_send_continuously)
+ );
+ Gtkmm2ext::UI::instance()->set_tip
+ (_ltc_send_continuously->tip_widget(),
+ string_compose (_("<b>When enabled</b> %1 will continue to send LTC information even when the transport (playhead) is not moving"), PROGRAM_NAME));
+ add_option (_("Sync/LTC"), _ltc_send_continuously);
+
+ _ltc_volume_slider = new HSliderOption("ltcvol", _("LTC generator level"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_ltc_output_volume),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_ltc_output_volume),
+ -50, 0, .5, 5,
+ .05, true);
+
+ Gtkmm2ext::UI::instance()->set_tip
+ (_ltc_volume_slider->tip_widget(),
+ _("Specify the Peak Volume of the generated LTC signal in dBFS. A good value is 0dBu ^= -18dBFS in an EBU calibrated system"));
+
+ add_option (_("Sync/LTC"), _ltc_volume_slider);
+
+
+ add_option (_("Sync/MIDI"), new OptionEditorHeading (_("MIDI Clock Generator")));
+
+ add_option (_("Sync/MIDI"),
+ new BoolOption (
+ "send-midi-clock",
+ _("Send MIDI Clock"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_midi_clock),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_midi_clock)
+ ));
+
+ add_option (_("Sync/MIDI"), new OptionEditorHeading (_("MIDI Time Code (MTC) Generator")));
+
+ add_option (_("Sync/MIDI"),
+ new BoolOption (
+ "send-mtc",
+ _("Send MIDI Time Code"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_mtc),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mtc)
+ ));
+
+ add_option (_("Sync/MIDI"),
+ new SpinOption<int> (
+ "mtc-qf-speed-tolerance",
+ _("Percentage either side of normal transport speed to transmit MTC"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mtc_qf_speed_tolerance),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mtc_qf_speed_tolerance),
+ 0, 20, 1, 5
+ ));
+
+ add_option (_("Sync/MIDI"), new OptionEditorHeading (_("Midi Machine Control (MMC)")));
+
+ add_option (_("Sync/MIDI"),
+ new BoolOption (
+ "mmc-control",
+ _("Respond to MMC commands"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mmc_control),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_control)
+ ));
+
+ add_option (_("Sync/MIDI"),
+ new BoolOption (
+ "send-mmc",
+ _("Send MMC commands"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_send_mmc),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mmc)
+ ));
+
+ add_option (_("Sync/MIDI"),
+ new SpinOption<uint8_t> (
+ "mmc-receive-device-id",
+ _("Inbound MMC device ID"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mmc_receive_device_id),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_receive_device_id),
+ 0, 128, 1, 10
+ ));
+
+ add_option (_("Sync/MIDI"),
+ new SpinOption<uint8_t> (
+ "mmc-send-device-id",
+ _("Outbound MMC device ID"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_mmc_send_device_id),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_send_device_id),
+ 0, 128, 1, 10
+ ));
+
+
+ /* Control Surfaces */
+
+ add_option (_("Control Surfaces"), new OptionEditorHeading (_("Control Surfaces")));
+ add_option (_("Control Surfaces"), new ControlSurfacesOptions ());
/* MIDI PORTs */
add_option (_("MIDI Ports"), new OptionEditorHeading (_("MIDI Port Options")));
@@ -3031,11 +3037,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
add_option (_("MIDI Ports"), new MidiPortOptions ());
add_option (_("MIDI Ports"), new OptionEditorBlank ());
-
- /* Control Surfaces */
-
- add_option (_("Control Surfaces"), new OptionEditorHeading (_("Control Surfaces")));
- add_option (_("Control Surfaces"), new ControlSurfacesOptions ());
+ /* PLUGINS */
#if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT || defined AUDIOUNIT_SUPPORT)
add_option (_("Plugins"), new OptionEditorHeading (_("Scan/Discover")));