Ingen
0.5.1
|
The "world" all Ingen modules share. More...
#include <World.hpp>
Public Types | |
typedef SPtr< Interface >(* | InterfaceFactory) (World *world, const Raul::URI &engine_uri, SPtr< Interface > respondee) |
A function to create a new remote Interface. More... | |
Public Member Functions | |
World (int &argc, char **&argv, LV2_URID_Map *map, LV2_URID_Unmap *unmap, LV2_Log_Log *log) | |
Construct a new Ingen world. More... | |
virtual bool | load_module (const char *name) |
Load an Ingen module by name (e.g. More... | |
virtual bool | run_module (const char *name) |
Run a loaded module (modules that "run" only, e.g. More... | |
virtual void | add_interface_factory (const std::string &scheme, InterfaceFactory factory) |
Register an InterfaceFactory (for module implementations). More... | |
virtual SPtr< Interface > | new_interface (const Raul::URI &engine_uri, SPtr< Interface > respondee) |
Return a new Interface to control a server. More... | |
virtual bool | run (const std::string &mime_type, const std::string &filename) |
Run a script. More... | |
virtual void | set_engine (SPtr< EngineBase > e) |
virtual void | set_interface (SPtr< Interface > e) |
virtual void | set_store (SPtr< Store > s) |
virtual SPtr< EngineBase > | engine () |
virtual SPtr< Interface > | interface () |
virtual SPtr< Parser > | parser () |
virtual SPtr< Serialiser > | serialiser () |
virtual SPtr< Store > | store () |
virtual int & | argc () |
virtual char **& | argv () |
virtual Configuration & | conf () |
virtual std::mutex & | rdf_mutex () |
Lock for rdf_world() or lilv_world(). More... | |
virtual Sord::World * | rdf_world () |
virtual LilvWorld * | lilv_world () |
virtual LV2Features & | lv2_features () |
virtual Ingen::Forge & | forge () |
virtual URIMap & | uri_map () |
virtual URIs & | uris () |
virtual void | set_jack_uuid (const std::string &uuid) |
virtual std::string | jack_uuid () |
virtual Log & | log () |
The "world" all Ingen modules share.
This is the root to which all components of Ingen are connected. It contains all necessary shared data (including the world for libraries like Sord and Lilv) and holds references to components.
Some functionality in Ingen is implemented in dynamically loaded modules, which are loaded using this interface. When loaded, those modules add facilities to the World which can then be used throughout the code.
The world is used in any process which uses the Ingen as a library, both client and server (e.g. the world may not actually contain an Engine, since it maybe running in another process or even on a different machine).
typedef SPtr<Interface>(* Ingen::World::InterfaceFactory) (World *world, const Raul::URI &engine_uri, SPtr< Interface > respondee) |
A function to create a new remote Interface.
Ingen::World::World | ( | int & | argc, |
char **& | argv, | ||
LV2_URID_Map * | map, | ||
LV2_URID_Unmap * | unmap, | ||
LV2_Log_Log * | log | ||
) |
Construct a new Ingen world.
argc | Argument count (as in C main()) |
argv | Argument vector (as in C main()) |
map | LV2 URID map implementation, or NULL to use internal. |
unmap | LV2 URID unmap implementation, or NULL to use internal. |
log | LV2 log implementation, or NULL to use internal. |
|
virtual |
Load an Ingen module by name (e.g.
"server", "gui", etc.)
References Ingen::Module::library.
|
virtual |
Run a loaded module (modules that "run" only, e.g.
gui).
|
virtual |
Register an InterfaceFactory (for module implementations).
|
virtual |
Run a script.
Run a script of type mime_type
at filename filename
|
virtual |
Lock for rdf_world() or lilv_world().