X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Frc_option_editor.cc;h=8e562f4279805bfd06ba6f31bd4b96b718951f6d;hb=9480dc1c6ace4a1ed138c9e738e28c21064e9541;hp=fc340534f43a4928bfc1fc7c9ef073d6734b8332;hpb=106851b33a52b122cdded8fa2dd03c47bac955a9;p=ardour.git
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index fc340534f4..8e562f4279 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -55,6 +55,7 @@
#include "ardour_window.h"
#include "ardour_dialog.h"
#include "ardour_ui.h"
+#include "color_theme_manager.h"
#include "gui_thread.h"
#include "meter_patterns.h"
#include "midi_tracer.h"
@@ -65,7 +66,7 @@
#include "keyboard.h"
#include "theme_manager.h"
#include "ui_config.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace std;
using namespace Gtk;
@@ -111,7 +112,7 @@ public:
sigc::mem_fun (*this, &ClickOptions::click_emphasis_browse_clicked));
t->attach (_click_emphasis_browse_button, 2, 3, 3, 4, FILL);
- _box->pack_start (*t, false, false);
+ _box->pack_start (*t, true, false);
_click_path_entry.signal_activate().connect (sigc::mem_fun (*this, &ClickOptions::click_changed));
_click_emphasis_path_entry.signal_activate().connect (sigc::mem_fun (*this, &ClickOptions::click_emphasis_changed));
@@ -338,6 +339,7 @@ static const struct {
{ "Option", GDK_MOD1_MASK },
{ "Command-Shift", GDK_MOD2_MASK|GDK_SHIFT_MASK },
{ "Command-Option", GDK_MOD2_MASK|GDK_MOD1_MASK },
+ { "Command-Control", GDK_MOD2_MASK|GDK_CONTROL_MASK },
{ "Command-Option-Control", GDK_MOD2_MASK|GDK_MOD1_MASK|GDK_CONTROL_MASK },
{ "Option-Control", GDK_MOD1_MASK|GDK_CONTROL_MASK },
{ "Option-Shift", GDK_MOD1_MASK|GDK_SHIFT_MASK },
@@ -350,6 +352,7 @@ static const struct {
{ "Alt", GDK_MOD1_MASK },
{ "Control-Shift", GDK_CONTROL_MASK|GDK_SHIFT_MASK },
{ "Control-Alt", GDK_CONTROL_MASK|GDK_MOD1_MASK },
+ { "Control-Windows", GDK_CONTROL_MASK|GDK_MOD4_MASK },
{ "Control-Shift-Alt", GDK_CONTROL_MASK|GDK_SHIFT_MASK|GDK_MOD1_MASK },
{ "Alt-Windows", GDK_MOD1_MASK|GDK_MOD4_MASK },
{ "Alt-Shift", GDK_MOD1_MASK|GDK_SHIFT_MASK },
@@ -540,12 +543,13 @@ public:
/* constraint modifier */
set_popdown_strings (_constraint_modifier_combo, dumb);
_constraint_modifier_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::constraint_modifier_chosen));
+ std::string mod_str = string_compose (X_("%1-%2"), Keyboard::primary_modifier_name (), Keyboard::level4_modifier_name ());
Gtkmm2ext::UI::instance()->set_tip (_constraint_modifier_combo,
(string_compose (_("Recommended Setting: %1%2"),
#ifdef __APPLE__
Keyboard::primary_modifier_name (),
#else
- Keyboard::secondary_modifier_name (),
+ Keyboard::tertiary_modifier_name (),
#endif
restart_msg)));
for (int x = 0; modifiers[x].name; ++x) {
@@ -561,6 +565,29 @@ public:
t->attach (*l, col, col + 1, row, row + 1, FILL | EXPAND, FILL);
t->attach (_constraint_modifier_combo, col + 1, col + 2, row, row + 1, FILL | EXPAND, FILL);
+ ++row;
+ col = 1;
+
+ /* push points */
+ set_popdown_strings (_push_points_combo, dumb);
+ _push_points_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::push_points_modifier_chosen));
+
+ mod_str = string_compose (X_("%1-%2"), Keyboard::primary_modifier_name (), Keyboard::level4_modifier_name ());
+ Gtkmm2ext::UI::instance()->set_tip (_push_points_combo,
+ (string_compose (_("Recommended Setting: %1%2"), mod_str, restart_msg)));
+ for (int x = 0; modifiers[x].name; ++x) {
+ if (modifiers[x].modifier == (guint) ArdourKeyboard::push_points_modifier ()) {
+ _push_points_combo.set_active_text (S_(modifiers[x].name));
+ break;
+ }
+ }
+
+ l = manage (left_aligned_label (_("Push points using:")));
+ l->set_name ("OptionsLabel");
+
+ t->attach (*l, col, col + 1, row, row + 1, FILL | EXPAND, FILL);
+ t->attach (_push_points_combo, col + 1, col + 2, row, row + 1, FILL | EXPAND, FILL);
+
++row;
l = manage (left_aligned_label (_("When Beginning a Trim:")));
@@ -594,8 +621,10 @@ public:
/* anchored trim */
set_popdown_strings (_trim_anchored_combo, dumb);
_trim_anchored_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::trim_anchored_modifier_chosen));
+
+ mod_str = string_compose (X_("%1-%2"), Keyboard::primary_modifier_name (), Keyboard::tertiary_modifier_name ());
Gtkmm2ext::UI::instance()->set_tip (_trim_anchored_combo,
- (string_compose (_("Recommended Setting: %1%2"), Keyboard::tertiary_modifier_name (), restart_msg)));
+ (string_compose (_("Recommended Setting: %1%2"), mod_str, restart_msg)));
for (int x = 0; modifiers[x].name; ++x) {
if (modifiers[x].modifier == (guint) ArdourKeyboard::trim_anchored_modifier ()) {
_trim_anchored_combo.set_active_text (S_(modifiers[x].name));
@@ -639,7 +668,7 @@ public:
set_popdown_strings (_note_size_relative_combo, dumb);
_note_size_relative_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::note_size_relative_modifier_chosen));
Gtkmm2ext::UI::instance()->set_tip (_note_size_relative_combo,
- (string_compose (_("Recommended Setting: %1%2"), Keyboard::primary_modifier_name (), restart_msg)));
+ (string_compose (_("Recommended Setting: %1%2"), Keyboard::tertiary_modifier_name (), restart_msg)));
for (int x = 0; modifiers[x].name; ++x) {
if (modifiers[x].modifier == (guint) ArdourKeyboard::note_size_relative_modifier ()) {
_note_size_relative_combo.set_active_text (S_(modifiers[x].name));
@@ -667,9 +696,9 @@ public:
set_popdown_strings (_snap_modifier_combo, dumb);
_snap_modifier_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::snap_modifier_chosen));
#ifdef __APPLE__
- std::string mod_str = string_compose (X_("%1-%2"), Keyboard::level4_modifier_name (), Keyboard::tertiary_modifier_name ());
+ mod_str = string_compose (X_("%1-%2"), Keyboard::level4_modifier_name (), Keyboard::tertiary_modifier_name ());
#else
- std::string mod_str = Keyboard::secondary_modifier_name();
+ mod_str = Keyboard::secondary_modifier_name();
#endif
Gtkmm2ext::UI::instance()->set_tip (_snap_modifier_combo,
(string_compose (_("Recommended Setting: %1%2"), mod_str, restart_msg)));
@@ -753,7 +782,7 @@ public:
set_popdown_strings (_fine_adjust_combo, dumb);
_fine_adjust_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::fine_adjust_modifier_chosen));
- mod_str = string_compose (X_("%1-%2"), Keyboard::secondary_modifier_name (), Keyboard::tertiary_modifier_name ());
+ mod_str = string_compose (X_("%1-%2"), Keyboard::primary_modifier_name (), Keyboard::secondary_modifier_name ());
Gtkmm2ext::UI::instance()->set_tip (_fine_adjust_combo,
(string_compose (_("Recommended Setting: %1%2"), mod_str, restart_msg)));
for (int x = 0; modifiers[x].name; ++x) {
@@ -769,28 +798,6 @@ public:
t->attach (*l, col, col + 1, row, row + 1, FILL | EXPAND, FILL);
t->attach (_fine_adjust_combo, col + 1, col + 2, row, row + 1, FILL | EXPAND, FILL);
- ++row;
- col = 1;
-
- /* push points */
- set_popdown_strings (_push_points_combo, dumb);
- _push_points_combo.signal_changed().connect (sigc::mem_fun(*this, &KeyboardOptions::push_points_modifier_chosen));
-
- Gtkmm2ext::UI::instance()->set_tip (_push_points_combo,
- (string_compose (_("Recommended Setting: %1%2"), Keyboard::primary_modifier_name (), restart_msg)));
- for (int x = 0; modifiers[x].name; ++x) {
- if (modifiers[x].modifier == (guint) ArdourKeyboard::push_points_modifier ()) {
- _push_points_combo.set_active_text (S_(modifiers[x].name));
- break;
- }
- }
-
- l = manage (left_aligned_label (_("Push points using:")));
- l->set_name ("OptionsLabel");
-
- t->attach (*l, col, col + 1, row, row + 1, FILL | EXPAND, FILL);
- t->attach (_push_points_combo, col + 1, col + 2, row, row + 1, FILL | EXPAND, FILL);
-
_box->pack_start (*t, false, false);
}
@@ -826,7 +833,7 @@ private:
string const txt = _edit_modifier_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
Keyboard::set_edit_modifier (modifiers[i].modifier);
break;
}
@@ -838,7 +845,7 @@ private:
string const txt = _delete_modifier_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
Keyboard::set_delete_modifier (modifiers[i].modifier);
break;
}
@@ -850,7 +857,7 @@ private:
string const txt = _copy_modifier_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
Keyboard::set_copy_modifier (modifiers[i].modifier);
break;
}
@@ -862,7 +869,7 @@ private:
string const txt = _insert_note_modifier_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
Keyboard::set_insert_note_modifier (modifiers[i].modifier);
break;
}
@@ -874,7 +881,7 @@ private:
string const txt = _snap_modifier_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
Keyboard::set_snap_modifier (modifiers[i].modifier);
break;
}
@@ -886,7 +893,7 @@ private:
string const txt = _snap_delta_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
Keyboard::set_snap_delta_modifier (modifiers[i].modifier);
break;
}
@@ -898,7 +905,7 @@ private:
string const txt = _constraint_modifier_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
ArdourKeyboard::set_constraint_modifier (modifiers[i].modifier);
break;
}
@@ -910,7 +917,7 @@ private:
string const txt = _trim_contents_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
ArdourKeyboard::set_trim_contents_modifier (modifiers[i].modifier);
break;
}
@@ -922,7 +929,7 @@ private:
string const txt = _trim_overlap_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
ArdourKeyboard::set_trim_overlap_modifier (modifiers[i].modifier);
break;
}
@@ -934,7 +941,7 @@ private:
string const txt = _trim_anchored_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
ArdourKeyboard::set_trim_anchored_modifier (modifiers[i].modifier);
break;
}
@@ -946,7 +953,7 @@ private:
string const txt = _fine_adjust_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
ArdourKeyboard::set_fine_adjust_modifier (modifiers[i].modifier);
break;
}
@@ -958,7 +965,7 @@ private:
string const txt = _push_points_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
ArdourKeyboard::set_push_points_modifier (modifiers[i].modifier);
break;
}
@@ -970,7 +977,7 @@ private:
string const txt = _note_size_relative_combo.get_active_text();
for (int i = 0; modifiers[i].name; ++i) {
- if (txt == _(modifiers[i].name)) {
+ if (txt == S_(modifiers[i].name)) {
ArdourKeyboard::set_note_size_relative_modifier (modifiers[i].modifier);
break;
}
@@ -1361,7 +1368,7 @@ public:
edit_box->set_spacing(3);
_box->pack_start (*edit_box, false, false);
edit_box->show ();
-
+
Label* label = manage (new Label);
label->set_text (_("Click to edit the settings for selected protocol ( it must be ENABLED first ):"));
edit_box->pack_start (*label, false, false);
@@ -1431,7 +1438,7 @@ private:
else
edit_button->set_sensitive (false);
}
-
+
void view_changed (TreeModel::Path const &, TreeModel::iterator const & i)
{
TreeModel::Row r = *i;
@@ -1853,7 +1860,6 @@ RCOptionEditor::RCOptionEditor ()
, _rc_config (Config)
, _mixer_strip_visibility ("mixer-element-visibility")
{
-
UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &RCOptionEditor::parameter_changed));
/* MISC */
@@ -1876,7 +1882,7 @@ RCOptionEditor::RCOptionEditor ()
procs->add (0, _("all available processors"));
for (uint32_t i = 1; i <= hwcpus; ++i) {
- procs->add (i, string_compose (_("%1 processors"), i));
+ procs->add (i, string_compose (P_("%1 processor", "%1 processors", i), i));
}
procs->set_note (string_compose (_("This setting will only take effect when %1 is restarted."), PROGRAM_NAME));
@@ -1930,11 +1936,11 @@ RCOptionEditor::RCOptionEditor ()
0, 1000, 1, 20
));
- add_option (_("Misc"), new OptionEditorHeading (_("Click")));
+ add_option (_("Misc/Click"), new OptionEditorHeading (_("Click")));
- add_option (_("Misc"), new ClickOptions (_rc_config));
+ add_option (_("Misc/Click"), new ClickOptions (_rc_config));
- add_option (_("Misc"),
+ add_option (_("Misc/Click"),
new FaderOption (
"click-gain",
_("Click gain level"),
@@ -2184,7 +2190,7 @@ RCOptionEditor::RCOptionEditor ()
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"));
+ _("Specify the Peak Volume of the generated LTC signal in dBFS. A good value is 0dBu ^= -18dBFS in an EBU calibrated system"));
add_option (_("Transport/Sync"), _ltc_volume_slider);
@@ -2336,11 +2342,11 @@ if (!Profile->get_mixbus()) {
rsas->add(ExistingNewlyCreatedBoth, _("existing selection and newly-created regions"));
add_option (_("Editor"), rsas);
-
- add_option (_("Editor"), new OptionEditorHeading (_("Waveforms")));
+
+ add_option (_("Editor/Waveforms"), new OptionEditorHeading (_("Waveforms")));
if (!Profile->get_mixbus()) {
- add_option (_("Editor"),
+ add_option (_("Editor/Waveforms"),
new BoolOption (
"show-waveforms",
_("Show waveforms in regions"),
@@ -2349,7 +2355,7 @@ if (!Profile->get_mixbus()) {
));
} // !mixbus
- add_option (_("Editor"),
+ add_option (_("Editor/Waveforms"),
new BoolOption (
"show-waveforms-while-recording",
_("Show waveforms for audio while it is being recorded"),
@@ -2367,7 +2373,7 @@ if (!Profile->get_mixbus()) {
wfs->add (Linear, _("linear"));
wfs->add (Logarithmic, _("logarithmic"));
- add_option (_("Editor"), wfs);
+ add_option (_("Editor/Waveforms"), wfs);
ComboOption* wfsh = new ComboOption (
"waveform-shape",
@@ -2379,9 +2385,9 @@ if (!Profile->get_mixbus()) {
wfsh->add (Traditional, _("traditional"));
wfsh->add (Rectified, _("rectified"));
- add_option (_("Editor"), wfsh);
+ add_option (_("Editor/Waveforms"), wfsh);
- add_option (_("Editor"), new ClipLevelOptions ());
+ add_option (_("Editor/Waveforms"), new ClipLevelOptions ());
/* AUDIO */
@@ -2516,24 +2522,6 @@ if (!Profile->get_mixbus()) {
add_option (_("Audio"), dm);
- add_option (_("Audio"), new OptionEditorHeading (_("Plugins")));
-
- add_option (_("Audio"),
- new BoolOption (
- "plugins-stop-with-transport",
- _("Silence plugins when the transport is stopped"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_plugins_stop_with_transport),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_plugins_stop_with_transport)
- ));
-
- add_option (_("Audio"),
- new BoolOption (
- "new-plugins-active",
- _("Make new plugins active"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_new_plugins_active),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_new_plugins_active)
- ));
-
add_option (_("Audio"), new OptionEditorHeading (_("Regions")));
add_option (_("Audio"),
@@ -2667,10 +2655,9 @@ if (!Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_mute_affects_main_outs)
));
- add_option (_("Solo & mute"), new OptionEditorHeading (_("Send Routing")));
-
if (!ARDOUR::Profile->get_mixbus()) {
+ add_option (_("Solo & mute"), new OptionEditorHeading (_("Send Routing")));
add_option (_("Solo & mute"),
new BoolOption (
"link-send-and-route-panner",
@@ -2733,9 +2720,9 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_midi_feedback)
));
- add_option (_("MIDI"), new OptionEditorHeading (_("MIDI Clock")));
+ add_option (_("MIDI/Sync"), new OptionEditorHeading (_("MIDI Clock")));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new BoolOption (
"send-midi-clock",
_("Send MIDI Clock"),
@@ -2743,9 +2730,9 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_midi_clock)
));
- add_option (_("MIDI"), new OptionEditorHeading (_("MIDI Time Code (MTC)")));
+ add_option (_("MIDI/Sync"), new OptionEditorHeading (_("MIDI Time Code (MTC)")));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new BoolOption (
"send-mtc",
_("Send MIDI Time Code"),
@@ -2753,7 +2740,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mtc)
));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new SpinOption (
"mtc-qf-speed-tolerance",
_("Percentage either side of normal transport speed to transmit MTC"),
@@ -2762,9 +2749,9 @@ if (!ARDOUR::Profile->get_mixbus()) {
0, 20, 1, 5
));
- add_option (_("MIDI"), new OptionEditorHeading (_("Midi Machine Control (MMC)")));
+ add_option (_("MIDI/Sync"), new OptionEditorHeading (_("Midi Machine Control (MMC)")));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new BoolOption (
"mmc-control",
_("Obey MIDI Machine Control commands"),
@@ -2772,7 +2759,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_mmc_control)
));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new BoolOption (
"send-mmc",
_("Send MIDI Machine Control commands"),
@@ -2780,7 +2767,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mmc)
));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new SpinOption (
"mmc-receive-device-id",
_("Inbound MMC device ID"),
@@ -2789,7 +2776,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
0, 128, 1, 10
));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new SpinOption (
"mmc-send-device-id",
_("Outbound MMC device ID"),
@@ -2851,28 +2838,19 @@ if (!ARDOUR::Profile->get_mixbus()) {
add_option (_("Control Surfaces"), new ControlSurfacesOptions);
- ComboOption* rm = new ComboOption (
- "remote-model",
- _("Control surface remote ID"),
- sigc::mem_fun (*_rc_config, &RCConfiguration::get_remote_model),
- sigc::mem_fun (*_rc_config, &RCConfiguration::set_remote_model)
- );
-
- rm->add (UserOrdered, _("assigned by user"));
- rm->add (MixerOrdered, _("follows order of mixer"));
-
- add_option (_("Control Surfaces"), rm);
-
/* VIDEO Timeline */
add_option (_("Video"), new VideoTimelineOptions (_rc_config));
#if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined AUDIOUNIT_SUPPORT)
- add_option (_("Plugins"), new OptionEditorHeading (_("General")));
-
add_option (_("Plugins"),
new RcActionButton (_("Scan for Plugins"),
sigc::mem_fun (*this, &RCOptionEditor::plugin_scan_refresh)));
+#endif
+
+ add_option (_("Plugins"), new OptionEditorHeading (_("General")));
+
+#if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined AUDIOUNIT_SUPPORT)
bo = new BoolOption (
"show-plugin-scan-window",
_("Always Display Plugin Scan Progress"),
@@ -2882,11 +2860,33 @@ if (!ARDOUR::Profile->get_mixbus()) {
add_option (_("Plugins"), bo);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
_("When enabled a popup window showing plugin scan progress is displayed for indexing (cache load) and discovery (detect new plugins)"));
-
#endif
+ bo = new BoolOption (
+ "plugins-stop-with-transport",
+ _("Silence plugins when the transport is stopped"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_plugins_stop_with_transport),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_plugins_stop_with_transport)
+ );
+ add_option (_("Plugins"), bo);
+ Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
+ _("When enabled plugins will be reset at transport stop. When disabled plugins will be left unchanged at transport stop.\n\nThis mostly affects plugins with a \"tail\" like Reverbs."));
+
+ bo = new BoolOption (
+ "new-plugins-active",
+ _("Make new plugins active"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_new_plugins_active),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_new_plugins_active)
+ );
+ add_option (_("Plugins"), bo);
+ Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
+ _("When enabled plugins will be activated when they are added to tracks/busses. When disabled plugins will be left inactive when they are added to tracks/busses"));
+
#if (defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT)
- add_option (_("Plugins"), new OptionEditorHeading (_("VST")));
+ add_option (_("Plugins/VST"), new OptionEditorHeading (_("VST")));
+ add_option (_("Plugins/VST"),
+ new RcActionButton (_("Scan for Plugins"),
+ sigc::mem_fun (*this, &RCOptionEditor::plugin_scan_refresh)));
bo = new BoolOption (
"discover-vst-on-start",
@@ -2894,7 +2894,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::get_discover_vst_on_start),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_discover_vst_on_start)
);
- add_option (_("Plugins"), bo);
+ add_option (_("Plugins/VST"), bo);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
_("When enabled new VST plugins are searched, tested and added to the cache index on application start. When disabled new plugins will only be available after triggering a 'Scan' manually"));
@@ -2906,40 +2906,40 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (*_rc_config, &RCConfiguration::get_verbose_plugin_scan),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_verbose_plugin_scan)
);
- add_option (_("Plugins"), bo);
+ add_option (_("Plugins/VST"), bo);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
_("When enabled additional information for every plugin is added to the Log Window."));
#endif
- add_option (_("Plugins"), new VstTimeOutSliderOption (_rc_config));
+ add_option (_("Plugins/VST"), new VstTimeOutSliderOption (_rc_config));
- add_option (_("Plugins"),
+ add_option (_("Plugins/VST"),
new RcActionButton (_("Clear"),
sigc::mem_fun (*this, &RCOptionEditor::clear_vst_cache),
_("VST Cache:")));
- add_option (_("Plugins"),
+ add_option (_("Plugins/VST"),
new RcActionButton (_("Clear"),
sigc::mem_fun (*this, &RCOptionEditor::clear_vst_blacklist),
_("VST Blacklist:")));
#endif
#ifdef LXVST_SUPPORT
- add_option (_("Plugins"),
+ add_option (_("Plugins/VST"),
new RcActionButton (_("Edit"),
sigc::mem_fun (*this, &RCOptionEditor::edit_lxvst_path),
_("Linux VST Path:")));
- add_option (_("Plugins"),
+ add_option (_("Plugins/VST"),
new RcConfigDisplay (
"plugin-path-lxvst",
_("Path:"),
sigc::mem_fun (*_rc_config, &RCConfiguration::get_plugin_path_lxvst),
- ':'));
+ 0));
#endif
#ifdef WINDOWS_VST_SUPPORT
- add_option (_("Plugins"),
+ add_option (_("Plugins/VST"),
new RcActionButton (_("Edit"),
sigc::mem_fun (*this, &RCOptionEditor::edit_vst_path),
_("Windows VST Path:")));
@@ -2952,7 +2952,11 @@ if (!ARDOUR::Profile->get_mixbus()) {
#endif
#ifdef AUDIOUNIT_SUPPORT
- add_option (_("Plugins"), new OptionEditorHeading (_("Audio Unit")));
+
+ add_option (_("Plugins/Audio Unit"), new OptionEditorHeading (_("Audio Unit")));
+ add_option (_("Plugins/Audio Unit"),
+ new RcActionButton (_("Scan for Plugins"),
+ sigc::mem_fun (*this, &RCOptionEditor::plugin_scan_refresh)));
bo = new BoolOption (
"discover-audio-units",
@@ -2964,12 +2968,12 @@ if (!ARDOUR::Profile->get_mixbus()) {
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
_("When enabled Audio Unit Plugins are discovered on application start. When disabled AU plugins will only be available after triggering a 'Scan' manually. The first successful scan will enable AU auto-scan, Any crash during plugin discovery will disable it."));
- add_option (_("Plugins"),
+ add_option (_("Plugins/Audio Unit"),
new RcActionButton (_("Clear"),
sigc::mem_fun (*this, &RCOptionEditor::clear_au_cache),
_("AU Cache:")));
- add_option (_("Plugins"),
+ add_option (_("Plugins/Audio Unit"),
new RcActionButton (_("Clear"),
sigc::mem_fun (*this, &RCOptionEditor::clear_au_blacklist),
_("AU Blacklist:")));
@@ -2985,7 +2989,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_open_gui_after_adding_plugin)
));
-#ifdef LV2_SUPPORT
+#if (defined LV2_SUPPORT && defined LV2_EXTENDED)
add_option (_("Plugins"),
new BoolOption (
"show-inline-display-by-default",
@@ -3002,6 +3006,27 @@ if (!ARDOUR::Profile->get_mixbus()) {
);
add_option (_("Plugins"), _plugin_prefer_inline);
#endif
+
+ add_option (_("Plugins"), new OptionEditorHeading (_("Instrument")));
+
+ bo = new BoolOption (
+ "ask-replace-instrument",
+ _("Ask to replace existing instrument plugin"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_ask_replace_instrument),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_ask_replace_instrument)
+ );
+ add_option (_("Plugins"), bo);
+
+ bo = new BoolOption (
+ "ask-setup_instrument",
+ _("Interactively configure instrument plugins on insert"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_ask_setup_instrument),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_ask_setup_instrument)
+ );
+ add_option (_("Plugins"), bo);
+ Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
+ _("When enabled show a dialog to select instrument channel configuration before adding a multichannel plugin."));
+
#endif
/* INTERFACE */
@@ -3031,6 +3056,14 @@ if (!ARDOUR::Profile->get_mixbus()) {
add_option (S_("Preferences|GUI"), bgo);
#endif
+ add_option (S_("Preferences|GUI"),
+ new BoolOption (
+ "use-wm-visibility",
+ _("Use Window Manager/Desktop visibility information"),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_use_wm_visibility),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_wm_visibility)
+ ));
+
add_option (S_("Preferences|GUI"),
new BoolOption (
"widget-prelight",
@@ -3110,6 +3143,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
_mixer_strip_visibility.add (0, X_("SoloIsoLock"), _("Solo Iso / Lock"));
_mixer_strip_visibility.add (0, X_("Output"), _("Output"));
_mixer_strip_visibility.add (0, X_("Comments"), _("Comments"));
+ _mixer_strip_visibility.add (0, X_("VCA"), _("VCA Assigns"));
add_option (
S_("Preferences|GUI"),
@@ -3274,7 +3308,7 @@ if (!ARDOUR::Profile->get_mixbus()) {
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."));
+ _("Specify the audio signal level in dBFS at and above which the meter-peak indicator will flash red."));
add_option (S_("Preferences|Metering"), mpks);
@@ -3319,10 +3353,21 @@ if (!ARDOUR::Profile->get_mixbus()) {
ThemeManager* tm = manage (new ThemeManager);
add_page (_("Theme"), *tm);
+ add_option (_("Theme/Colors"), new ColorThemeManager);
+
//trigger some parameter-changed messages which affect widget-visibility or -sensitivity
parameter_changed ("send-ltc");
parameter_changed ("sync-source");
parameter_changed ("use-monitor-bus");
+ parameter_changed ("open-gui-after-adding-plugin");
+
+ XMLNode* node = ARDOUR_UI::instance()->preferences_settings();
+ if (node) {
+ /* gcc4 complains about ambiguity with Gtk::Widget::set_state
+ (Gtk::StateType) here !!!
+ */
+ Tabbable::set_state (*node, Stateful::loading_state_version);
+ }
}
void
@@ -3361,7 +3406,7 @@ RCOptionEditor::parameter_changed (string const & p)
_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
+#if (defined LV2_SUPPORT && defined LV2_EXTENDED)
_plugin_prefer_inline->set_sensitive (UIConfiguration::instance().get_open_gui_after_adding_plugin() && UIConfiguration::instance().get_show_inline_display_by_default());
#endif
}
@@ -3446,7 +3491,7 @@ RCOptionEditor::populate_sync_options ()
Gtk::Window*
RCOptionEditor::use_own_window (bool and_fill_it)
{
- bool new_window = !own_window();
+ bool new_window = !own_window ();
Gtk::Window* win = Tabbable::use_own_window (and_fill_it);
@@ -3457,3 +3502,11 @@ RCOptionEditor::use_own_window (bool and_fill_it)
return win;
}
+
+XMLNode&
+RCOptionEditor::get_state ()
+{
+ XMLNode* node = new XMLNode (X_("Preferences"));
+ node->add_child_nocopy (Tabbable::get_state());
+ return *node;
+}