#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"
#include "keyboard.h"
#include "theme_manager.h"
#include "ui_config.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace std;
using namespace Gtk;
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));
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);
else
edit_button->set_sensitive (false);
}
-
+
void view_changed (TreeModel::Path const &, TreeModel::iterator const & i)
{
TreeModel::Row r = *i;
, _rc_config (Config)
, _mixer_strip_visibility ("mixer-element-visibility")
{
+ 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);
+ }
UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &RCOptionEditor::parameter_changed));
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"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_draggable_playhead)
));
- add_option (_("Editor"),
- new BoolOption (
- "show-track-meters",
- _("Show meters on tracks in the editor"),
- sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_track_meters),
- sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_track_meters)
- ));
-
add_option (_("Editor"),
new BoolOption (
"show-editor-meter",
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"),
));
} // !mixbus
- add_option (_("Editor"),
+ add_option (_("Editor/Waveforms"),
new BoolOption (
"show-waveforms-while-recording",
_("Show waveforms for audio while it is being recorded"),
wfs->add (Linear, _("linear"));
wfs->add (Logarithmic, _("logarithmic"));
- add_option (_("Editor"), wfs);
+ add_option (_("Editor/Waveforms"), wfs);
ComboOption<WaveformShape>* wfsh = new ComboOption<WaveformShape> (
"waveform-shape",
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 */
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"),
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",
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"),
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"),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mtc)
));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new SpinOption<int> (
"mtc-qf-speed-tolerance",
_("Percentage either side of normal transport speed to transmit MTC"),
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"),
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"),
sigc::mem_fun (*_rc_config, &RCConfiguration::set_send_mmc)
));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new SpinOption<uint8_t> (
"mmc-receive-device-id",
_("Inbound MMC device ID"),
0, 128, 1, 10
));
- add_option (_("MIDI"),
+ add_option (_("MIDI/Sync"),
new SpinOption<uint8_t> (
"mmc-send-device-id",
_("Outbound MMC device ID"),
add_option (_("Control Surfaces"), new ControlSurfacesOptions);
- ComboOption<RemoteModel>* rm = new ComboOption<RemoteModel> (
- "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"),
add_option (_("Plugins"), bo);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
_("<b>When enabled</b> 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(),
+ _("<b>When enabled</b> 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(),
+ _("<b>When enabled</b> 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",
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(),
_("<b>When enabled</b> 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"));
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(),
_("<b>When enabled</b> 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:")));
#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",
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget(),
_("<b>When enabled</b> 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:")));
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",
);
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(),
+ _("<b>When enabled</b> show a dialog to select instrument channel configuration before adding a multichannel plugin."));
+
#endif
/* INTERFACE */
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",
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_widget_prelight)
));
-#ifdef TOOLTIPS_GOT_FIXED
add_option (S_("Preferences|GUI"),
new BoolOption (
"use-tooltips",
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_use_tooltips),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_tooltips)
));
-#endif
add_option (S_("Preferences|GUI"),
new BoolOption (
_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"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_meter_style_led)
));
+ add_option (S_("Preferences|Metering"), new OptionEditorHeading (_("Editor Meters")));
+
+ add_option (S_("Preferences|Metering"),
+ new BoolOption (
+ "show-track-meters",
+ _("Show meters on tracks in the editor"),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_show_track_meters),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_show_track_meters)
+ ));
+
+ add_option (S_("Preferences|Metering"),
+ new BoolOption (
+ "editor-stereo-only-meters",
+ _("Show at most stereo meters in the track-header"),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_editor_stereo_only_meters),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_editor_stereo_only_meters)
+ ));
+
+ add_option (S_("Preferences|Metering"), new OptionEditorHeading (_("Post Export Analysis")));
+
+ add_option (S_("Preferences|Metering"),
+ new BoolOption (
+ "save-export-analysis-image",
+ _("Save loudness analysis as image file"),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_save_export_analysis_image),
+ sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_save_export_analysis_image)
+ ));
+
/* and now the theme manager */
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");
}
void
return win;
}
+
+XMLNode&
+RCOptionEditor::get_state ()
+{
+ XMLNode* node = new XMLNode (X_("Preferences"));
+ node->add_child_nocopy (Tabbable::get_state());
+ return *node;
+}