From acaab5ca7ce6869b8192de4f98c9f075fd17690e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 24 May 2011 23:29:42 +0000 Subject: Remove dependence on protocol-specific client headers in GUI code. In other words, remove need for protocol-specific (and library dependent) headers to be in public headers... git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3318 a436a847-0d15-0410-975c-d299462d15a1 --- src/shared/World.cpp | 13 +++++++++---- src/shared/World.hpp | 11 ++++++++--- 2 files changed, 17 insertions(+), 7 deletions(-) (limited to 'src/shared') diff --git a/src/shared/World.cpp b/src/shared/World.cpp index f2af34a7..c583f2fa 100644 --- a/src/shared/World.cpp +++ b/src/shared/World.cpp @@ -169,6 +169,7 @@ public: SharedPtr serialiser; SharedPtr parser; SharedPtr store; + SharedPtr client; LilvWorld* lilv_world; std::string jack_uuid; }; @@ -189,6 +190,7 @@ void World::set_engine(SharedPtr e) { _impl->engi void World::set_serialiser(SharedPtr s) { _impl->serialiser = s; } void World::set_parser(SharedPtr p) { _impl->parser = p; } void World::set_store(SharedPtr s) { _impl->store = s; } +void World::set_client(SharedPtr c) { _impl->client = c; } void World::set_conf(Raul::Configuration* c) { _impl->conf = c; } int& World::argc() { return _impl->argc; } @@ -198,6 +200,7 @@ SharedPtr World::engine() { return _impl->engin SharedPtr World::serialiser() { return _impl->serialiser; } SharedPtr World::parser() { return _impl->parser; } SharedPtr World::store() { return _impl->store; } +SharedPtr World::client() { return _impl->client; } Raul::Configuration* World::conf() { return _impl->conf; } LV2Features* World::lv2_features() { return _impl->lv2_features; } @@ -207,7 +210,7 @@ SharedPtr World::uris() { return _impl->uris; } /** Load an Ingen module. * @return true on success, false on failure - */ +m */ bool World::load_module(const char* name) { @@ -236,16 +239,18 @@ World::unload_modules() /** Get an interface for a remote engine at @a url */ SharedPtr -World::interface(const std::string& url) +World::interface( + const std::string& engine_url, + SharedPtr respond_to) { - const string scheme = url.substr(0, url.find(":")); + const string scheme = engine_url.substr(0, engine_url.find(":")); const Pimpl::InterfaceFactories::const_iterator i = _impl->interface_factories.find(scheme); if (i == _impl->interface_factories.end()) { warn << "Unknown URI scheme `" << scheme << "'" << endl; return SharedPtr(); } - return i->second(this, url); + return i->second(this, engine_url, respond_to); } /** Run a script of type @a mime_type at filename @a filename */ diff --git a/src/shared/World.hpp b/src/shared/World.hpp index 3ce4d03e..6aacea36 100644 --- a/src/shared/World.hpp +++ b/src/shared/World.hpp @@ -34,6 +34,7 @@ namespace Sord { class World; } namespace Ingen { class EngineBase; +class ClientInterface; class ServerInterface; namespace Serialisation { class Serialiser; class Parser; } @@ -62,14 +63,16 @@ public: virtual void unload_modules(); typedef SharedPtr (*InterfaceFactory)( - World* world, - const std::string& engine_url); + World* world, + const std::string& engine_url, + SharedPtr respond_to); virtual void add_interface_factory(const std::string& scheme, InterfaceFactory factory); virtual SharedPtr interface( - const std::string& engine_url); + const std::string& engine_url, + SharedPtr respond_to); virtual bool run(const std::string& mime_type, const std::string& filename); @@ -79,12 +82,14 @@ public: virtual void set_serialiser(SharedPtr s); virtual void set_parser(SharedPtr p); virtual void set_store(SharedPtr s); + virtual void set_client(SharedPtr c); virtual SharedPtr local_engine(); virtual SharedPtr engine(); virtual SharedPtr serialiser(); virtual SharedPtr parser(); virtual SharedPtr store(); + virtual SharedPtr client(); virtual Sord::World* rdf_world(); virtual SharedPtr uris(); -- cgit v1.2.1