From ec9540a559c40046123a2ac4be83faf90b79fbb0 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 8 Oct 2007 17:13:34 +0000 Subject: Dynamically load Serialiser from serialisation module, make it actually work, etc. git-svn-id: http://svn.drobilla.net/lad/ingen@850 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/serialisation/Loader.hpp | 3 +-- src/libs/serialisation/Makefile.am | 7 ++++++- src/libs/serialisation/Serialiser.hpp | 2 +- src/libs/serialisation/serialisation.cpp | 12 ++++++++++++ src/libs/serialisation/serialisation.hpp | 7 ++++++- 5 files changed, 26 insertions(+), 5 deletions(-) (limited to 'src/libs/serialisation') diff --git a/src/libs/serialisation/Loader.hpp b/src/libs/serialisation/Loader.hpp index 158831cb..d363bf28 100644 --- a/src/libs/serialisation/Loader.hpp +++ b/src/libs/serialisation/Loader.hpp @@ -23,11 +23,10 @@ #include #include #include -#include #include #include "interface/GraphObject.hpp" -namespace Raul { class Atom; namespace RDF { class World; } } +namespace Raul { namespace RDF { class World; } } namespace Ingen { namespace Shared { class EngineInterface; } } using namespace Ingen::Shared; diff --git a/src/libs/serialisation/Makefile.am b/src/libs/serialisation/Makefile.am index 0a914222..579da448 100644 --- a/src/libs/serialisation/Makefile.am +++ b/src/libs/serialisation/Makefile.am @@ -4,7 +4,12 @@ moduledir = $(libdir)/ingen module_LTLIBRARIES = libingen_serialisation.la -libingen_serialisation_la_CXXFLAGS = -I$(top_srcdir)/ingen/src/common @RAUL_CFLAGS@ @GLIBMM_CFLAGS@ +libingen_serialisation_la_CXXFLAGS = \ + -I$(top_srcdir)/ingen/src/common \ + -I$(top_srcdir)/ingen/src/libs \ + @RAUL_CFLAGS@ \ + @GLIBMM_CFLAGS@ + libingen_serialisation_la_LDFLAGS = -no-undefined -module -avoid-version libingen_serialisation_la_LIBADD = @RAUL_LIBS@ @GLIBMM_LIBS@ diff --git a/src/libs/serialisation/Serialiser.hpp b/src/libs/serialisation/Serialiser.hpp index 23d10c82..fb1df5d0 100644 --- a/src/libs/serialisation/Serialiser.hpp +++ b/src/libs/serialisation/Serialiser.hpp @@ -46,7 +46,7 @@ namespace Shared { namespace Serialisation { -/** Serializes Ingen objects (patches, nodes, etc) to RDF. +/** Serialises Ingen objects (patches, nodes, etc) to RDF. * * \ingroup IngenClient */ diff --git a/src/libs/serialisation/serialisation.cpp b/src/libs/serialisation/serialisation.cpp index 969cf9f2..5da28529 100644 --- a/src/libs/serialisation/serialisation.cpp +++ b/src/libs/serialisation/serialisation.cpp @@ -15,8 +15,11 @@ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include CONFIG_H_PATH +#include "module/World.hpp" #include "serialisation.hpp" #include "Loader.hpp" +#include "Serialiser.hpp" namespace Ingen { namespace Serialisation { @@ -28,6 +31,15 @@ new_loader() return new Loader(); } + +Ingen::Serialisation::Serialiser* +new_serialiser(Ingen::Shared::World* world) +{ + assert(world->rdf_world); + return new Serialiser(*world->rdf_world); +} + + } // namespace Serialisation } // namespace Ingen diff --git a/src/libs/serialisation/serialisation.hpp b/src/libs/serialisation/serialisation.hpp index f65b9c2e..8f6e8291 100644 --- a/src/libs/serialisation/serialisation.hpp +++ b/src/libs/serialisation/serialisation.hpp @@ -19,14 +19,19 @@ #define INGEN_SERIALISATION_H namespace Ingen { + +namespace Shared { class World; } + namespace Serialisation { class Loader; +class Serialiser; extern "C" { - extern Loader* new_loader(); + extern Loader* new_loader(); + extern Serialiser* new_serialiser(Ingen::Shared::World* world); } -- cgit v1.2.1