From e44e0b2c9a00035608c10b02696e53cc8d0e535e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 22 May 2015 18:25:07 +0200 Subject: [PATCH] LV2: delete existing preset before replacing it --- libs/ardour/lv2_plugin.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index 729e891138..243312f95b 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -1082,6 +1082,18 @@ LV2Plugin::do_save_preset(string name) Glib::get_home_dir(), Glib::build_filename(".lv2", prefix + "_" + base_name + ".lv2")); +#ifdef HAVE_LILV_0_21_3 + /* delete reference to old preset (if any) */ + const PresetRecord* r = preset_by_label(name); + if (r) { + LilvNode* pset = lilv_new_uri (_world.world, r->uri.c_str()); + if (pset) { + lilv_world_unload_resource (_world.world, pset); + lilv_node_free(pset); + } + } +#endif + LilvState* state = lilv_state_new_from_instance( _impl->plugin, _impl->instance, -- 2.30.2