summaryrefslogtreecommitdiffstats
path: root/src/serialisation/Parser.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-03-06 10:23:19 +0000
committerDavid Robillard <d@drobilla.net>2010-03-06 10:23:19 +0000
commit059f20c9666234f2be01498ee04f1e7ee795ba8f (patch)
treeef0d53073d53012aeaa7d084fccf477b166c0684 /src/serialisation/Parser.hpp
parent085a451dfec54126be1b9346899c81d82e6eb58e (diff)
downloadingen-059f20c9666234f2be01498ee04f1e7ee795ba8f.tar.gz
ingen-059f20c9666234f2be01498ee04f1e7ee795ba8f.tar.bz2
ingen-059f20c9666234f2be01498ee04f1e7ee795ba8f.zip
Save Ingen patches as working standard LV2 plugin bundles.
This allows you to create an Ingen patch in Ingen running as a Jack client, save it, then load that patch as an LV2 plugin in any LV2 compliant host. Eliminate (hopefully) all static data in the engine (for multiple instantiations in a single process). More API/ABI stable interface for Ingen::Shared::World. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2533 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/serialisation/Parser.hpp')
-rw-r--r--src/serialisation/Parser.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/serialisation/Parser.hpp b/src/serialisation/Parser.hpp
index cd96bd0b..aeda022f 100644
--- a/src/serialisation/Parser.hpp
+++ b/src/serialisation/Parser.hpp
@@ -19,6 +19,7 @@
#define INGEN_SERIALISATION_LOADER_HPP
#include <string>
+#include <list>
#include <glibmm/ustring.h>
#include <boost/optional.hpp>
#include "interface/GraphObject.hpp"
@@ -69,6 +70,18 @@ public:
boost::optional<Raul::Symbol> symbol=boost::optional<Raul::Symbol>(),
boost::optional<Properties> data=boost::optional<Properties>());
+ struct PatchRecord {
+ PatchRecord(const Raul::URI& u, const Glib::ustring& f) : uri(u), filename(f) {}
+ const Raul::URI uri;
+ const Glib::ustring filename;
+ };
+
+ typedef std::list<PatchRecord> PatchRecords;
+
+ virtual PatchRecords find_patches(
+ Ingen::Shared::World* world,
+ const Glib::ustring& manifest_uri);
+
private:
boost::optional<Raul::Path> parse(
Ingen::Shared::World* world,