diff options
author | David Robillard <d@drobilla.net> | 2007-03-30 20:53:10 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-03-30 20:53:10 +0000 |
commit | c27f759594a713c8c65ee6637aafa2d02b52bd8d (patch) | |
tree | 46e4d2a8266030f97802bc947686463eaaeac48d /src/libs/client/Loader.cpp | |
parent | 05ec343c42e99611ac1ff8c45b73a3e1dc4e0941 (diff) | |
download | ingen-c27f759594a713c8c65ee6637aafa2d02b52bd8d.tar.gz ingen-c27f759594a713c8c65ee6637aafa2d02b52bd8d.tar.bz2 ingen-c27f759594a713c8c65ee6637aafa2d02b52bd8d.zip |
Serialization fixes.
git-svn-id: http://svn.drobilla.net/lad/ingen@379 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/client/Loader.cpp')
-rw-r--r-- | src/libs/client/Loader.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libs/client/Loader.cpp b/src/libs/client/Loader.cpp index 95c29933..70ef0820 100644 --- a/src/libs/client/Loader.cpp +++ b/src/libs/client/Loader.cpp @@ -37,7 +37,7 @@ Loader::Loader(SharedPtr<ModelEngineInterface> engine, SharedPtr<Namespaces> nam (*_namespaces)["xsd"] = "http://www.w3.org/2001/XMLSchema#"; (*_namespaces)["ingen"] = "http://drobilla.net/ns/ingen#"; (*_namespaces)["ingenuity"] = "http://drobilla.net/ns/ingenuity#"; - (*_namespaces)["lv2"] = "http://lv2plug.in/ontology#>"; + (*_namespaces)["lv2"] = "http://lv2plug.in/ontology#"; } @@ -48,11 +48,11 @@ Loader::Loader(SharedPtr<ModelEngineInterface> engine, SharedPtr<Namespaces> nam * @return whether or not load was successful. */ bool -Loader::load(const Glib::ustring& filename, - const Path& parent, - string patch_name, - Glib::ustring patch_uri, - MetadataMap data) +Loader::load(const Glib::ustring& filename, + boost::optional<Path> parent, + string patch_name, + Glib::ustring patch_uri, + MetadataMap data) { // FIXME: this whole thing is a mess @@ -73,7 +73,7 @@ Loader::load(const Glib::ustring& filename, // FIXME: polyphony datatype RDFQuery query(*_namespaces, Glib::ustring( - "SELECT DISTINCT ?poly \nFROM <") + document_uri + ">\nWHERE {\n\t" + + "SELECT DISTINCT ?poly FROM <") + document_uri + "> WHERE {\n" + patch_uri + " ingen:polyphony ?poly .\n" "}"); @@ -91,6 +91,8 @@ Loader::load(const Glib::ustring& filename, if (patch_name == "") { patch_name = string(filename.substr(filename.find_last_of("/")+1)); + if (patch_name.substr(patch_name.length()-6) == ".ingen") + patch_name = patch_name.substr(0, patch_name.length()-6); query = RDFQuery(*_namespaces, Glib::ustring( "SELECT DISTINCT ?name FROM <") + document_uri + "> WHERE {\n" + @@ -103,7 +105,7 @@ Loader::load(const Glib::ustring& filename, patch_name = string((*results.begin())["name"]); } - Path patch_path = parent.base() + patch_name; + Path patch_path = ( parent ? (parent.get().base() + patch_name) : Path("/") ); cerr << "************ PATCH: " << patch_path << ", poly = " << patch_poly << endl; _engine->create_patch(patch_path, patch_poly); |