diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/ingen_client.cpp (renamed from src/client/client.cpp) | 6 | ||||
-rw-r--r-- | src/client/wscript | 2 | ||||
-rw-r--r-- | src/gui/App.cpp | 1 | ||||
-rw-r--r-- | src/gui/ingen_gui.cpp (renamed from src/gui/gui.cpp) | 0 | ||||
-rw-r--r-- | src/gui/wscript | 2 | ||||
-rw-r--r-- | src/module/World.cpp | 7 | ||||
-rw-r--r-- | src/module/World.hpp | 17 |
7 files changed, 21 insertions, 14 deletions
diff --git a/src/client/client.cpp b/src/client/ingen_client.cpp index 9512ba44..9f644e4d 100644 --- a/src/client/client.cpp +++ b/src/client/ingen_client.cpp @@ -50,9 +50,9 @@ new_http_interface(Ingen::Shared::World* world, const std::string& url) struct IngenClientModule : public Ingen::Shared::Module { void load(Ingen::Shared::World* world) { - world->interface_factories.insert(make_pair("osc.udp", &new_osc_interface)); - world->interface_factories.insert(make_pair("osc.tcp", &new_osc_interface)); - world->interface_factories.insert(make_pair("http", &new_http_interface)); + world->add_interface_factory("osc.udp", &new_osc_interface); + world->add_interface_factory("osc.tcp", &new_osc_interface); + world->add_interface_factory("http", &new_http_interface); } }; diff --git a/src/client/wscript b/src/client/wscript index ea0eef85..749d9ec7 100644 --- a/src/client/wscript +++ b/src/client/wscript @@ -15,7 +15,7 @@ def build(bld): PluginUI.cpp PortModel.cpp ThreadedSigClientInterface.cpp - client.cpp + ingen_client.cpp ''' if bld.env['HAVE_SOUP'] == 1: diff --git a/src/gui/App.cpp b/src/gui/App.cpp index f42ddcb4..0f34de2f 100644 --- a/src/gui/App.cpp +++ b/src/gui/App.cpp @@ -26,7 +26,6 @@ #include <sys/time.h> #include "raul/Path.hpp" #include "flowcanvas/Connection.hpp" -#include "module/Module.hpp" #include "module/World.hpp" #include "engine/Engine.hpp" #include "interface/EngineInterface.hpp" diff --git a/src/gui/gui.cpp b/src/gui/ingen_gui.cpp index d1ad6c99..d1ad6c99 100644 --- a/src/gui/gui.cpp +++ b/src/gui/ingen_gui.cpp diff --git a/src/gui/wscript b/src/gui/wscript index 93084654..7d7e61fc 100644 --- a/src/gui/wscript +++ b/src/gui/wscript @@ -40,7 +40,7 @@ def build(bld): ThreadedLoader.cpp Window.cpp WindowFactory.cpp - gui.cpp + ingen_gui.cpp ''' if bld.env['HAVE_CURL'] != 0: diff --git a/src/module/World.cpp b/src/module/World.cpp index 0bc87459..c4b1a88e 100644 --- a/src/module/World.cpp +++ b/src/module/World.cpp @@ -141,6 +141,13 @@ World::run(const std::string& mime_type, const std::string& filename) return i->second(this, filename.c_str()); } +void +World::add_interface_factory(const std::string& scheme, InterfaceFactory factory) +{ + interface_factories.insert(make_pair(scheme, factory)); +} + + } // namespace Shared } // namespace Ingen diff --git a/src/module/World.hpp b/src/module/World.hpp index e12ce5b2..59500c3e 100644 --- a/src/module/World.hpp +++ b/src/module/World.hpp @@ -44,13 +44,12 @@ class LV2Features; /** The "world" all Ingen modules may share. * - * This is required for shared access to things like Redland, so locking can - * take place centrally and the engine/gui using the same library won't - * explode horribly. + * All loaded components of Ingen, as well as things requiring shared access + * and/or locking (e.g. Redland, SLV2). * - * Hopefully at some point in the future it can allow some fun things like - * scripting bindings that play with all loaded components of - * The Ingen System(TM) and whatnot. + * Ingen modules are shared libraries which modify the World when loaded + * using World::load, e.g. loading the "ingen_serialisation" module will + * set World::serialiser and World::parser to valid objects. */ struct World { World() : conf(0) {} @@ -58,6 +57,10 @@ struct World { bool load(const char* name); void unload_all(); + typedef SharedPtr<Ingen::Shared::EngineInterface> (*InterfaceFactory)( + World* world, const std::string& engine_url); + + void add_interface_factory(const std::string& scheme, InterfaceFactory factory); SharedPtr<Ingen::Shared::EngineInterface> interface(const std::string& engine_url); bool run(const std::string& mime_type, const std::string& filename); @@ -80,8 +83,6 @@ private: typedef std::map< const std::string, boost::shared_ptr<Module> > Modules; Modules modules; - typedef SharedPtr<Ingen::Shared::EngineInterface> (*InterfaceFactory)( - World* world, const std::string& url); typedef std::map<const std::string, InterfaceFactory> InterfaceFactories; InterfaceFactories interface_factories; |