summaryrefslogtreecommitdiff
path: root/gtk2_ardour/plugin_ui.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-02-14 03:28:12 +0000
committerDavid Robillard <d@drobilla.net>2009-02-14 03:28:12 +0000
commitef172d7ad6f4498c92c115bc1ffbfd156c677e4e (patch)
tree58f4be15cb27bac903b56335e3294a63728f8d72 /gtk2_ardour/plugin_ui.cc
parentf609d97ccd7f773ddbfaf62dc45cef5e5fbb3aa8 (diff)
Less weak plugin preset system (maybe AU preset stuff can use the 'normal' thing instead of being all weird now?).
LV2 preset support as implemented in svn calf plugins (experimental extension). git-svn-id: svn://localhost/ardour2/branches/3.0@4547 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/plugin_ui.cc')
-rw-r--r--gtk2_ardour/plugin_ui.cc27
1 files changed, 17 insertions, 10 deletions
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index 336b7ea3df..eae0d91388 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -342,8 +342,8 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
bypass_button (_("Bypass")),
latency_gui (*pi, pi->session().frame_rate(), pi->session().get_block_size())
{
- //preset_combo.set_use_arrows_always(true);
- set_popdown_strings (preset_combo, plugin->get_presets());
+ //preset_combo.set_use_arrows_always(true);
+ update_presets();
preset_combo.set_size_request (100, -1);
preset_combo.set_active_text ("");
preset_combo.signal_changed().connect(mem_fun(*this, &PlugUIBase::setting_selected));
@@ -389,8 +389,12 @@ void
PlugUIBase::setting_selected()
{
if (preset_combo.get_active_text().length() > 0) {
- if (!plugin->load_preset(preset_combo.get_active_text())) {
- warning << string_compose(_("Plugin preset %1 not found"), preset_combo.get_active_text()) << endmsg;
+ const Plugin::PresetRecord* pr = plugin->preset_by_label(preset_combo.get_active_text());
+ if (pr) {
+ plugin->load_preset(pr->uri);
+ } else {
+ warning << string_compose(_("Plugin preset %1 not found"),
+ preset_combo.get_active_text()) << endmsg;
}
}
}
@@ -408,14 +412,11 @@ PlugUIBase::save_plugin_setting ()
switch (prompter.run ()) {
case Gtk::RESPONSE_ACCEPT:
-
string name;
-
prompter.get_result(name);
-
if (name.length()) {
- if(plugin->save_preset(name)){
- set_popdown_strings (preset_combo, plugin->get_presets());
+ if (plugin->save_preset(name)) {
+ update_presets();
preset_combo.set_active_text (name);
}
}
@@ -460,5 +461,11 @@ PlugUIBase::focus_toggled (GdkEventButton* ev)
void
PlugUIBase::update_presets ()
{
- set_popdown_strings (preset_combo, plugin->get_presets());
+ vector<string> preset_labels;
+ vector<ARDOUR::Plugin::PresetRecord> presets = plugin->get_presets();
+ for (vector<ARDOUR::Plugin::PresetRecord>::const_iterator i = presets.begin();
+ i != presets.end(); ++i) {
+ preset_labels.push_back(i->label);
+ }
+ set_popdown_strings (preset_combo, preset_labels);
}