summaryrefslogtreecommitdiffstats
path: root/src/shared
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-05-02 06:24:22 +0000
committerDavid Robillard <d@drobilla.net>2012-05-02 06:24:22 +0000
commitfe353cce9665b33a7372ed2d1683b3c2748625f7 (patch)
tree81287558b014309820e9df64033edc0b29d23b4f /src/shared
parent1c736a348c59d98e4022fb02b49a8b4c93baa3d2 (diff)
downloadingen-fe353cce9665b33a7372ed2d1683b3c2748625f7.tar.gz
ingen-fe353cce9665b33a7372ed2d1683b3c2748625f7.tar.bz2
ingen-fe353cce9665b33a7372ed2d1683b3c2748625f7.zip
Preliminary socket control interface, and ingen_cmd command line interface which uses it.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4311 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/AtomReader.cpp19
-rw-r--r--src/shared/Builder.cpp2
-rw-r--r--src/shared/Configuration.cpp1
-rw-r--r--src/shared/Forge.cpp1
-rw-r--r--src/shared/URIs.cpp2
-rw-r--r--src/shared/World.cpp1
6 files changed, 17 insertions, 9 deletions
diff --git a/src/shared/AtomReader.cpp b/src/shared/AtomReader.cpp
index 6925d478..7cafd919 100644
--- a/src/shared/AtomReader.cpp
+++ b/src/shared/AtomReader.cpp
@@ -33,7 +33,7 @@ AtomReader::AtomReader(LV2URIMap& map, URIs& uris, Forge& forge, Interface& ifac
}
void
-AtomReader::get_uri(const LV2_Atom* in, Raul::Atom& out)
+AtomReader::get_atom(const LV2_Atom* in, Raul::Atom& out)
{
if (in) {
if (in->type == _uris.atom_URID) {
@@ -49,9 +49,14 @@ void
AtomReader::get_props(const LV2_Atom_Object* obj,
Ingen::Resource::Properties& props)
{
+ if (obj->body.otype) {
+ props.insert(
+ std::make_pair(_uris.rdf_type,
+ _forge.alloc_uri(_map.unmap_uri(obj->body.otype))));
+ }
LV2_ATOM_OBJECT_FOREACH(obj, p) {
Raul::Atom val;
- get_uri(&p->value, val);
+ get_atom(&p->value, val);
props.insert(std::make_pair(_map.unmap_uri(p->key), val));
}
}
@@ -96,8 +101,8 @@ AtomReader::write(const LV2_Atom* msg)
Raul::Atom tail_atom;
Raul::Atom head_atom;
- get_uri(tail, tail_atom);
- get_uri(head, head_atom);
+ get_atom(tail, tail_atom);
+ get_atom(head, head_atom);
if (tail_atom.is_valid() && head_atom.is_valid()) {
_iface.disconnect(Raul::Path(tail_atom.get_uri()),
Raul::Path(head_atom.get_uri()));
@@ -130,8 +135,8 @@ AtomReader::write(const LV2_Atom* msg)
Raul::Atom tail_atom;
Raul::Atom head_atom;
- get_uri(tail, tail_atom);
- get_uri(head, head_atom);
+ get_atom(tail, tail_atom);
+ get_atom(head, head_atom);
_iface.connect(Raul::Path(tail_atom.get_uri()),
Raul::Path(head_atom.get_uri()));
} else {
@@ -153,7 +158,7 @@ AtomReader::write(const LV2_Atom* msg)
LV2_ATOM_OBJECT_FOREACH(body, p) {
Raul::Atom val;
- get_uri(&p->value, val);
+ get_atom(&p->value, val);
_iface.set_property(subject_uri, _map.unmap_uri(p->key), val);
}
} else if (obj->body.otype == _uris.patch_Patch) {
diff --git a/src/shared/Builder.cpp b/src/shared/Builder.cpp
index e726d647..272a3394 100644
--- a/src/shared/Builder.cpp
+++ b/src/shared/Builder.cpp
@@ -66,7 +66,7 @@ Builder::build(SharedPtr<const GraphObject> object)
if (node) {
Resource::Properties props;
props.insert(make_pair(uris.rdf_type, uris.ingen_Node));
- props.insert(make_pair(uris.rdf_instanceOf,
+ props.insert(make_pair(uris.ingen_prototype,
_uris->forge.alloc_uri(node->plugin()->uri().str())));
_interface.put(node->path(), props);
build_object(object);
diff --git a/src/shared/Configuration.cpp b/src/shared/Configuration.cpp
index d5aa6f9b..fafe7a49 100644
--- a/src/shared/Configuration.cpp
+++ b/src/shared/Configuration.cpp
@@ -40,6 +40,7 @@ Configuration::Configuration()
add("connect", 'c', "Connect to engine URI", STRING, Value("osc.udp://localhost:16180"));
add("engine", 'e', "Run (JACK) engine", BOOL, Value(false));
add("engine-port", 'E', "Engine listen port", INT, Value(16180));
+ add("socket", 'S', "Engine socket path", STRING, Value("/tmp/ingen.sock"));
add("gui", 'g', "Launch the GTK graphical interface", BOOL, Value(false));
add("help", 'h', "Print this help message", BOOL, Value(false));
add("jack-client", 'n', "JACK client name", STRING, Value("ingen"));
diff --git a/src/shared/Forge.cpp b/src/shared/Forge.cpp
index 9d33ada9..fc8116c6 100644
--- a/src/shared/Forge.cpp
+++ b/src/shared/Forge.cpp
@@ -27,6 +27,7 @@ Forge::Forge(Shared::LV2URIMap& map)
Float = map.map_uri(LV2_ATOM__Float);
Bool = map.map_uri(LV2_ATOM__Bool);
URI = map.map_uri(LV2_ATOM__URI);
+ URID = map.map_uri(LV2_ATOM__URID);
String = map.map_uri(LV2_ATOM__String);
Dict = map.map_uri(LV2_ATOM__Object);
}
diff --git a/src/shared/URIs.cpp b/src/shared/URIs.cpp
index db5c5bfd..058e4216 100644
--- a/src/shared/URIs.cpp
+++ b/src/shared/URIs.cpp
@@ -82,6 +82,7 @@ URIs::URIs(Ingen::Forge& f, LV2URIMap* map)
, ingen_node (forge, map, NS_INGEN "node")
, ingen_polyphonic (forge, map, NS_INGEN "polyphonic")
, ingen_polyphony (forge, map, NS_INGEN "polyphony")
+ , ingen_prototype (forge, map, NS_INGEN "prototype")
, ingen_sampleRate (forge, map, NS_INGEN "sampleRate")
, ingen_selected (forge, map, NS_INGEN "selected")
, ingen_tail (forge, map, NS_INGEN "tail")
@@ -125,7 +126,6 @@ URIs::URIs(Ingen::Forge& f, LV2URIMap* map)
, patch_remove (forge, map, LV2_PATCH__remove)
, patch_request (forge, map, LV2_PATCH__request)
, patch_subject (forge, map, LV2_PATCH__subject)
- , rdf_instanceOf (forge, map, NS_RDF "instanceOf")
, rdf_type (forge, map, NS_RDF "type")
, rdfs_seeAlso (forge, map, NS_RDFS "seeAlso")
, wildcard (forge, map, NS_INGEN "wildcard")
diff --git a/src/shared/World.cpp b/src/shared/World.cpp
index a5f86319..b99dfd1a 100644
--- a/src/shared/World.cpp
+++ b/src/shared/World.cpp
@@ -121,6 +121,7 @@ public:
// Set up RDF namespaces
rdf_world->add_prefix("atom", "http://lv2plug.in/ns/ext/atom#");
+ rdf_world->add_prefix("patch", "http://lv2plug.in/ns/ext/patch#");
rdf_world->add_prefix("doap", "http://usefulinc.com/ns/doap#");
rdf_world->add_prefix("ingen", "http://drobilla.net/ns/ingen#");
rdf_world->add_prefix("lv2", "http://lv2plug.in/ns/lv2core#");