summaryrefslogtreecommitdiff
path: root/gtk2_ardour/plugin_presets_ui.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-10-13 04:09:35 +0200
committerRobin Gareus <robin@gareus.org>2019-10-13 04:10:16 +0200
commitc0866f54f312041d2dc08e5c7599d26a8cd23f13 (patch)
treefb652c26696b50523f304dd5342d8fc346b71d28 /gtk2_ardour/plugin_presets_ui.h
parentee511886171a65df37a6645cba6a9e15800a9f3c (diff)
Prototype categorized preset browser
Diffstat (limited to 'gtk2_ardour/plugin_presets_ui.h')
-rw-r--r--gtk2_ardour/plugin_presets_ui.h41
1 files changed, 39 insertions, 2 deletions
diff --git a/gtk2_ardour/plugin_presets_ui.h b/gtk2_ardour/plugin_presets_ui.h
index e87c92d80c..b40f825901 100644
--- a/gtk2_ardour/plugin_presets_ui.h
+++ b/gtk2_ardour/plugin_presets_ui.h
@@ -39,13 +39,40 @@ public:
private:
void update_preset_list ();
+ void filter_presets ();
void preset_selected ();
- void row_activated (Gtk::TreeModel::Path, Gtk::TreeViewColumn*);
+ void preset_row_activated (Gtk::TreeModel::Path, Gtk::TreeViewColumn*);
void load_preset ();
boost::shared_ptr<ARDOUR::PluginInsert> _insert;
PBD::ScopedConnectionList _preset_connections;
+ struct PluginPreset {
+ PluginPreset (ARDOUR::Plugin::PresetRecord const& p, std::string const& b = "", std::string const& t = "")
+ : _preset_record (p)
+ , _bank (b)
+ , _type (t)
+ { }
+ ARDOUR::Plugin::PresetRecord _preset_record;
+ std::string _bank;
+ std::string _type;
+
+ bool operator< (PluginPreset const& o) const {
+ return _preset_record.label < o._preset_record.label;
+ }
+ };
+
+ std::vector<PluginPreset> _pps;
+
+ struct TagFilterModelColumns : public Gtk::TreeModel::ColumnRecord {
+ TagFilterModelColumns () {
+ add (name);
+ add (count);
+ }
+ Gtk::TreeModelColumn<std::string> name;
+ Gtk::TreeModelColumn<size_t> count;
+ };
+
struct PluginPresetModelColumns : public Gtk::TreeModel::ColumnRecord {
PluginPresetModelColumns () {
add (name);
@@ -58,12 +85,22 @@ private:
Gtk::TreeModelColumn<ARDOUR::Plugin::PresetRecord> plugin_preset;
};
- ArdourWidgets::ArdourButton _load_button;
+ TagFilterModelColumns _filter_banks_columns;
+ Gtk::TreeView _filter_banks_display;
+ Glib::RefPtr<Gtk::TreeStore> _filter_banks_model;
+ Gtk::ScrolledWindow _banks_scroller;
+
+ TagFilterModelColumns _filter_types_columns;
+ Gtk::TreeView _filter_types_display;
+ Glib::RefPtr<Gtk::TreeStore> _filter_types_model;
+ Gtk::ScrolledWindow _types_scroller;
PluginPresetModelColumns _plugin_preset_columns;
Gtk::TreeView _plugin_preset_display;
Glib::RefPtr<Gtk::TreeStore> _plugin_preset_model;
Gtk::ScrolledWindow _preset_scroller;
+
+ ArdourWidgets::ArdourButton _load_button;
Gtk::TextView _preset_desc;
};