From: David Robillard Date: Tue, 15 Jul 2014 19:49:47 +0000 (-0400) Subject: Support saving LV2 presets multiple times (fix #0005949). X-Git-Tag: 4.0-rc1~1601^2~507 X-Git-Url: https://main.carlh.net/gitweb/?p=ardour.git;a=commitdiff_plain;h=9869e2704a71cccf80e99c330d1b5ecb9e8e99f7 Support saving LV2 presets multiple times (fix #0005949). --- diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index 1bdb2f20d6..36f9032865 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -407,7 +407,7 @@ LV2Plugin::init(const void* c_plugin, framecnt_t rate) throw failed_constructor(); } -#ifdef HAVE_NEW_LILV +#ifdef HAVE_LILV_0_16_0 // Load default state LilvState* state = lilv_state_new_from_world( _world.world, _uri_map.urid_map(), lilv_plugin_get_uri(_impl->plugin)); @@ -1077,6 +1077,10 @@ LV2Plugin::do_save_preset(string name) std::string uri = Glib::filename_to_uri(Glib::build_filename(bundle, file_name)); LilvNode *node_bundle = lilv_new_uri(_world.world, Glib::filename_to_uri(Glib::build_filename(bundle, "/")).c_str()); LilvNode *node_preset = lilv_new_uri(_world.world, uri.c_str()); +#ifdef HAVE_LILV_0_19_2 + lilv_world_unload_resource(_world.world, node_preset); + lilv_world_unload_bundle(_world.world, node_bundle); +#endif lilv_world_load_bundle(_world.world, node_bundle); lilv_world_load_resource(_world.world, node_preset); lilv_node_free(node_bundle); diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 3ce94d892b..f6ed6e649a 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -275,8 +275,10 @@ def configure(conf): atleast_version='0.2.0', mandatory=True) autowaf.check_pkg(conf, 'lilv-0', uselib_store='LILV', atleast_version='0.14.0', mandatory=True) - autowaf.check_pkg(conf, 'lilv-0', uselib_store='NEW_LILV', - atleast_version='0.15.0', mandatory=False) + autowaf.check_pkg(conf, 'lilv-0', uselib_store='LILV_0_16_0', + atleast_version='0.16.0', mandatory=False) + autowaf.check_pkg(conf, 'lilv-0', uselib_store='LILV_0_19_2', + atleast_version='0.19.2', mandatory=False) autowaf.check_pkg(conf, 'suil-0', uselib_store='SUIL', atleast_version='0.6.0', mandatory=False) conf.define ('LV2_SUPPORT', 1)