summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-12-27 19:47:45 +0000
committerDavid Robillard <d@drobilla.net>2013-12-27 19:47:45 +0000
commit24a2add27496e43e99dbc259ca7c26fbd5e43cff (patch)
tree2d7ea5d964023dc942e16bda9f59999e21f861de
parent1a46b62a6b4c23ab9465d0938c5015b1ab2b493b (diff)
downloadingen-24a2add27496e43e99dbc259ca7c26fbd5e43cff.tar.gz
ingen-24a2add27496e43e99dbc259ca7c26fbd5e43cff.tar.bz2
ingen-24a2add27496e43e99dbc259ca7c26fbd5e43cff.zip
Implement lv2:prototype.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5219 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r--bundles/ingen.lv2/manifest.ttl21
-rw-r--r--ingen/URIs.hpp2
-rw-r--r--src/URIs.cpp2
-rw-r--r--src/serialisation/Serialiser.cpp11
-rw-r--r--wscript2
5 files changed, 24 insertions, 14 deletions
diff --git a/bundles/ingen.lv2/manifest.ttl b/bundles/ingen.lv2/manifest.ttl
index b7f6163c..12d3621a 100644
--- a/bundles/ingen.lv2/manifest.ttl
+++ b/bundles/ingen.lv2/manifest.ttl
@@ -1,5 +1,6 @@
@prefix ingen: <http://drobilla.net/ns/ingen#> .
@prefix internals: <http://drobilla.net/ns/ingen-internals#> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .
@@ -8,6 +9,18 @@ ingen:
a owl:Ontology ;
rdfs:seeAlso <ingen.ttl> .
+ingen:GraphPrototype
+ a lv2:PluginBase ;
+ lv2:binary <libingen_lv2.so> ;
+ rdfs:comment """Template for all Ingen graphs.
+
+Saved Ingen graphs always set this as their lv2:prototype. When Ingen is
+installed, a bundle is installed which included the Ingen LV2 binary and a
+description of ingen:GraphPrototype which links to it. This way, Ingen graphs
+can be loaded by LV2 hosts without including binaries or symbolic links in
+saved Ingen bundles.
+""" .
+
ingen:GraphUIGtk2
a ui:GtkUI ;
ui:binary <libingen_gui_lv2.so> ;
@@ -15,16 +28,16 @@ ingen:GraphUIGtk2
internals:Controller
a ingen:Plugin ;
- rdfs:seeAlso <internals.ttl> .
+ rdfs:seeAlso <internals.ttl> .
internals:Trigger
a ingen:Plugin ;
- rdfs:seeAlso <internals.ttl> .
+ rdfs:seeAlso <internals.ttl> .
internals:Note
a ingen:Plugin ;
- rdfs:seeAlso <internals.ttl> .
+ rdfs:seeAlso <internals.ttl> .
internals:Transport
a ingen:Plugin ;
- rdfs:seeAlso <internals.ttl> .
+ rdfs:seeAlso <internals.ttl> .
diff --git a/ingen/URIs.hpp b/ingen/URIs.hpp
index ca41bafe..05bfc3e1 100644
--- a/ingen/URIs.hpp
+++ b/ingen/URIs.hpp
@@ -76,6 +76,7 @@ public:
const Quark ingen_Arc;
const Quark ingen_Block;
const Quark ingen_Graph;
+ const Quark ingen_GraphPrototype;
const Quark ingen_Internal;
const Quark ingen_activity;
const Quark ingen_arc;
@@ -119,6 +120,7 @@ public:
const Quark lv2_name;
const Quark lv2_port;
const Quark lv2_portProperty;
+ const Quark lv2_prototype;
const Quark lv2_sampleRate;
const Quark lv2_scalePoint;
const Quark lv2_symbol;
diff --git a/src/URIs.cpp b/src/URIs.cpp
index fcb3f8d4..02e03a70 100644
--- a/src/URIs.cpp
+++ b/src/URIs.cpp
@@ -65,6 +65,7 @@ URIs::URIs(Forge& f, URIMap* map)
, ingen_Arc (forge, map, NS_INGEN "Arc")
, ingen_Block (forge, map, NS_INGEN "Block")
, ingen_Graph (forge, map, NS_INGEN "Graph")
+ , ingen_GraphPrototype (forge, map, NS_INGEN "GraphPrototype")
, ingen_Internal (forge, map, NS_INGEN "Internal")
, ingen_activity (forge, map, NS_INGEN "activity")
, ingen_arc (forge, map, NS_INGEN "arc")
@@ -108,6 +109,7 @@ URIs::URIs(Forge& f, URIMap* map)
, lv2_name (forge, map, LV2_CORE__name)
, lv2_port (forge, map, LV2_CORE__port)
, lv2_portProperty (forge, map, LV2_CORE__portProperty)
+ , lv2_prototype (forge, map, LV2_CORE__prototype)
, lv2_sampleRate (forge, map, LV2_CORE__sampleRate)
, lv2_scalePoint (forge, map, LV2_CORE__scalePoint)
, lv2_symbol (forge, map, LV2_CORE__symbol)
diff --git a/src/serialisation/Serialiser.cpp b/src/serialisation/Serialiser.cpp
index 18e02df7..bbc23081 100644
--- a/src/serialisation/Serialiser.cpp
+++ b/src/serialisation/Serialiser.cpp
@@ -151,15 +151,8 @@ Serialiser::Impl::write_manifest(const std::string& bundle_path,
Sord::URI(world, uris.rdfs_seeAlso),
Sord::URI(world, filename, _base_uri));
_model->add_statement(subject,
- Sord::URI(world, uris.lv2_binary),
- Sord::URI(world, binary_path, _base_uri));
-
- std::string lib(Glib::Module::build_path(INGEN_BUNDLE_DIR, "ingen_lv2"));
- std::string link(Glib::Module::build_path(bundle_path, "ingen_lv2"));
- if (symlink(lib.c_str(), link.c_str())) {
- _world.log().error(fmt("Error creating link %1% => %2% (%3%\n")
- % lib % link % strerror(errno));
- }
+ Sord::URI(world, uris.lv2_prototype),
+ Sord::URI(world, uris.ingen_GraphPrototype));
finish();
}
diff --git a/wscript b/wscript
index 43af254f..3a42809d 100644
--- a/wscript
+++ b/wscript
@@ -48,7 +48,7 @@ def configure(conf):
conf.check_python_version((2,4,0), mandatory=False)
autowaf.check_pkg(conf, 'lv2', uselib_store='LV2',
- atleast_version='1.6.1', mandatory=True)
+ atleast_version='1.6.2', mandatory=True)
autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM',
atleast_version='2.14.0', mandatory=True)
autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD',