summaryrefslogtreecommitdiff
path: root/gtk2_ardour/generic_pluginui.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-12-20 16:56:34 +0100
committerRobin Gareus <robin@gareus.org>2018-12-20 16:56:49 +0100
commit9594e12c5254a053982cfea6e9cfa2fbdbbd16de (patch)
treedc33e7e64a681e75ebbb42b2107073dfef8b63f1 /gtk2_ardour/generic_pluginui.cc
parenta48d6a37b3ea11e411d79632856af68cfe555ef6 (diff)
Add a plugin-preset list/selector GUI
This is currently only used for "Preset only" plugins, generic UI. And also depends on plugin-presets having a description.
Diffstat (limited to 'gtk2_ardour/generic_pluginui.cc')
-rw-r--r--gtk2_ardour/generic_pluginui.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc
index e2a4daefdb..6926a29b78 100644
--- a/gtk2_ardour/generic_pluginui.cc
+++ b/gtk2_ardour/generic_pluginui.cc
@@ -56,6 +56,7 @@
#include "widgets/tooltips.h"
#include "plugin_ui.h"
+#include "plugin_presets_ui.h"
#include "plugin_display.h"
#include "gui_thread.h"
#include "automation_controller.h"
@@ -412,7 +413,20 @@ GenericPluginUI::build ()
plugin->announce_property_values();
}
- if (grid) {
+ if (control_uis.empty ()) {
+ std::vector<Plugin::PresetRecord> presets = insert->plugin()->get_presets();
+ bool show_preset_browser = false;
+ for (std::vector<Plugin::PresetRecord>::const_iterator i = presets.begin(); i != presets.end(); ++i) {
+ if (i->valid && !i->description.empty()) {
+ show_preset_browser = true;
+ break;
+ }
+ }
+ if (show_preset_browser) {
+ preset_gui = new PluginPresetsUI (insert);
+ hpacker.pack_start (*preset_gui, true, true);
+ }
+ } else if (grid) {
custom_layout (control_uis);
} else {
automatic_layout (control_uis);