diff options
-rw-r--r-- | src/serialisation/Parser.cpp | 12 | ||||
-rw-r--r-- | src/serialisation/Parser.hpp | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/serialisation/Parser.cpp b/src/serialisation/Parser.cpp index cee4d656..2a65d0c3 100644 --- a/src/serialisation/Parser.cpp +++ b/src/serialisation/Parser.cpp @@ -448,6 +448,8 @@ Parser::parse_patch( Objects::iterator plug_i = plugin_nodes.find(node.to_string()); Types::iterator type_i = types.find(node.to_string()); if (node.type() == Redland::Node::RESOURCE && type_i != types.end()) { + if (skip_property(predicate)) + continue; const string key = world->rdf_world->qualify(predicate.to_string()); if (patch_i != patch_nodes.end()) { patch_i->second.insert(make_pair(key, AtomRDF::node_to_atom(object))); @@ -714,6 +716,8 @@ Parser::parse_properties( Glib::Mutex::Lock lock(world->rdf_world->mutex()); const string key = world->rdf_world->qualify(string((*i)["key"])); const Redland::Node& val = (*i)["val"]; + if (skip_property((*i)["key"])) + continue; if (key != "" && val.type() != Redland::Node::BLANK) properties.insert(make_pair(key, AtomRDF::node_to_atom(val))); } @@ -728,6 +732,14 @@ Parser::parse_properties( } +bool +Parser::skip_property(const Redland::Node& predicate) +{ + return (predicate.to_string() == "http://drobilla.net/ns/ingen#node" + || predicate.to_string() == "http://lv2plug.in/ns/lv2core#port"); +} + + } // namespace Serialisation } // namespace Ingen diff --git a/src/serialisation/Parser.hpp b/src/serialisation/Parser.hpp index a5ab9400..99c6dc81 100644 --- a/src/serialisation/Parser.hpp +++ b/src/serialisation/Parser.hpp @@ -109,6 +109,8 @@ private: Redland::Model& model, const Redland::Node& subject, const Raul::Path& patch); + + bool skip_property(const Redland::Node& predicate); }; |