Support saving LV2 presets multiple times (fix #0005949).
authorDavid Robillard <d@drobilla.net>
Tue, 15 Jul 2014 19:49:47 +0000 (15:49 -0400)
committerDavid Robillard <d@drobilla.net>
Tue, 15 Jul 2014 19:49:47 +0000 (15:49 -0400)
libs/ardour/lv2_plugin.cc
libs/ardour/wscript

index 1bdb2f20d6e76921a51833b6fa539813c328f223..36f9032865f2357f70f0555945cc24f7591ab523 100644 (file)
@@ -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);
index 3ce94d892b5ca6e55ecc108ea02ac40d3b0beafc..f6ed6e649a2b5f1ae63b1c60224be6da77516d12 100644 (file)
@@ -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)