summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/Engine.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-08-09 05:16:00 +0000
committerDavid Robillard <d@drobilla.net>2007-08-09 05:16:00 +0000
commit9b7a2af07fd1f5df3e517021d676805eb20bc74f (patch)
tree3a75d0096fea9f013f7da24cd9c41dcea89fb4de /src/libs/engine/Engine.hpp
parentfccb1edce5dda41bdfef12340a5d5b95b86a1389 (diff)
downloadingen-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.hpp13
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;