From 10d12599dd3de19c4f56b8d0b6b8d6444d97072a Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 19 Dec 2022 16:38:10 +0100 Subject: [PATCH] Sort plugin presets by default --- libs/ardour/ardour/plugin.h | 8 ++++++++ libs/ardour/audio_unit.cc | 2 ++ libs/ardour/ladspa_plugin.cc | 2 ++ libs/ardour/lv2_plugin.cc | 2 ++ libs/ardour/plugin.cc | 2 ++ libs/ardour/vst3_plugin.cc | 2 ++ 6 files changed, 18 insertions(+) diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index b3d0b179d1..7f2ff6d9f2 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -228,6 +228,14 @@ public: return uri != a.uri || label != a.label; } + bool operator< (PresetRecord const& a) const + { + if (label == a.label) { + return uri < a.uri; + } + return label < a.label; + } + std::string uri; std::string label; std::string description; diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc index a55d4a4a7e..710afb8f18 100644 --- a/libs/ardour/audio_unit.cc +++ b/libs/ardour/audio_unit.cc @@ -2424,6 +2424,7 @@ AUPluginInfo::get_presets (bool user_only) const } if (user_only) { + std::sort (p.begin (), p.end(); return p; } @@ -2460,6 +2461,7 @@ AUPluginInfo::get_presets (bool user_only) const CFRelease (presets); unit->Uninitialize (); + std::sort (p.begin (), p.end ()); return p; } diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc index a34acff3ac..a4f33a7141 100644 --- a/libs/ardour/ladspa_plugin.cc +++ b/libs/ardour/ladspa_plugin.cc @@ -727,6 +727,8 @@ LadspaPluginInfo::get_presets (bool /*user_only*/) const } lrdf_free_uris(set_uris); } + + std::sort (p.begin (), p.end ()); #endif return p; } diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index 7d6c931324..b4fbae4838 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -3720,6 +3720,8 @@ LV2PluginInfo::get_presets (bool user_only) const lilv_node_free(pset_Preset); lilv_node_free(lv2_appliesTo); + std::sort (p.begin (), p.end ()); + return p; } diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc index 8ec67936f6..1d0d131fcd 100644 --- a/libs/ardour/plugin.cc +++ b/libs/ardour/plugin.cc @@ -477,6 +477,8 @@ Plugin::get_presets () p.push_back (i->second); } + std::sort (p.begin(), p.end()); + return p; } diff --git a/libs/ardour/vst3_plugin.cc b/libs/ardour/vst3_plugin.cc index 0bc0cfb2c8..362c189964 100644 --- a/libs/ardour/vst3_plugin.cc +++ b/libs/ardour/vst3_plugin.cc @@ -1002,6 +1002,8 @@ VST3PluginInfo::get_presets (bool user_only) const p.push_back (Plugin::PresetRecord (uri, preset_name, is_user)); } + std::sort (p.begin (), p.end ()); + return p; }