diff options
author | Robin Gareus <robin@gareus.org> | 2018-12-20 16:56:34 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-12-20 16:56:49 +0100 |
commit | 9594e12c5254a053982cfea6e9cfa2fbdbbd16de (patch) | |
tree | dc33e7e64a681e75ebbb42b2107073dfef8b63f1 /gtk2_ardour/generic_pluginui.cc | |
parent | a48d6a37b3ea11e411d79632856af68cfe555ef6 (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.cc | 16 |
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); |