summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/plugin.cc')
-rw-r--r--libs/ardour/plugin.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc
index d6c9a48805..047e151710 100644
--- a/libs/ardour/plugin.cc
+++ b/libs/ardour/plugin.cc
@@ -120,6 +120,12 @@ Plugin::~Plugin ()
void
Plugin::remove_preset (string name)
{
+ Plugin::PresetRecord const * p = preset_by_label (name);
+ if (!p->user) {
+ PBD::error << _("Cannot remove plugin factory preset.") << PBD::endmsg;
+ return;
+ }
+
do_remove_preset (name);
_presets.erase (preset_by_label (name)->uri);
@@ -133,6 +139,11 @@ Plugin::remove_preset (string name)
Plugin::PresetRecord
Plugin::save_preset (string name)
{
+ if (preset_by_label (name)) {
+ PBD::error << _("Preset with given name already exists.") << PBD::endmsg;
+ return Plugin::PresetRecord ();
+ }
+
string const uri = do_save_preset (name);
if (!uri.empty()) {