diff options
author | David Robillard <d@drobilla.net> | 2007-08-09 05:16:00 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-08-09 05:16:00 +0000 |
commit | 9b7a2af07fd1f5df3e517021d676805eb20bc74f (patch) | |
tree | 3a75d0096fea9f013f7da24cd9c41dcea89fb4de /src/libs/engine/Engine.hpp | |
parent | fccb1edce5dda41bdfef12340a5d5b95b86a1389 (diff) | |
download | ingen-9b7a2af07fd1f5df3e517021d676805eb20bc74f.tar.gz ingen-9b7a2af07fd1f5df3e517021d676805eb20bc74f.tar.bz2 ingen-9b7a2af07fd1f5df3e517021d676805eb20bc74f.zip |
Realtime safe parallel graph execution, e.g. run with ingen -e -p 3 for 3 concurrent audio threads.
git-svn-id: http://svn.drobilla.net/lad/ingen@689 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/Engine.hpp')
-rw-r--r-- | src/libs/engine/Engine.hpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libs/engine/Engine.hpp b/src/libs/engine/Engine.hpp index 562a2fa3..d4f3c972 100644 --- a/src/libs/engine/Engine.hpp +++ b/src/libs/engine/Engine.hpp @@ -19,11 +19,11 @@ #define ENGINE_H #include CONFIG_H_PATH -#include "module/module.h" - #include <cassert> +#include <vector> #include <boost/utility.hpp> #include <raul/SharedPtr.hpp> +#include "module/module.h" #include "DataType.hpp" template<typename T> class Queue; @@ -46,6 +46,7 @@ class QueuedEvent; class QueuedEngineInterface; class LashDriver; class Driver; +class ProcessSlave; /** The main class for the Engine. @@ -74,9 +75,7 @@ public: virtual SharedPtr<QueuedEngineInterface> new_queued_interface(); - //virtual void set_event_source(SharedPtr<EventSource>); - - virtual bool activate(); + virtual bool activate(size_t parallelism); virtual void deactivate(); virtual bool activated() { return _activated; } @@ -96,8 +95,12 @@ public: Driver* driver(DataType type); Ingen::Shared::World* world() { return _world; } + + typedef std::vector<ProcessSlave*> ProcessSlaves; + inline const ProcessSlaves& process_slaves() const { return _process_slaves; } private: + ProcessSlaves _process_slaves; Ingen::Shared::World* _world; |