From ec4fd6dd3809a055b66c28f841df277e4cd9f62e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 18 May 2012 18:03:24 +0000 Subject: Beginnings of a test framework. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4427 a436a847-0d15-0410-975c-d299462d15a1 --- src/server/Engine.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'src/server/Engine.cpp') diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp index 69ad435b..9359bacf 100644 --- a/src/server/Engine.cpp +++ b/src/server/Engine.cpp @@ -14,7 +14,6 @@ along with Ingen. If not, see . */ -#include #include #include @@ -31,6 +30,7 @@ #include "Broadcaster.hpp" #include "BufferFactory.hpp" +#include "DirectDriver.hpp" #include "ControlBindings.hpp" #include "Driver.hpp" #include "Engine.hpp" @@ -142,14 +142,24 @@ execute_and_delete_event(ProcessContext& context, Event* ev) delete ev; } +void +Engine::init(double sample_rate, uint32_t block_length) +{ + set_driver(SharedPtr(new DirectDriver(sample_rate, block_length))); +} + bool Engine::activate() { - assert(_driver); + if (!_driver) { + return false; + } + ThreadManager::single_threaded = true; _buffer_factory->set_block_length(_driver->block_length()); + _pre_processor->start(); _message_context.Thread::start(); const Ingen::Shared::URIs& uris = world()->uris(); @@ -226,8 +236,15 @@ Engine::activate() void Engine::deactivate() { - _driver->deactivate(); - _root_patch->deactivate(); + _pre_processor->stop(); + + if (_driver) { + _driver->deactivate(); + } + + if (_root_patch) { + _root_patch->deactivate(); + } ThreadManager::single_threaded = true; } -- cgit v1.2.1