From f240b08a1799b3aa6a29701c90388d51c0c1b2ce Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 18 Feb 2017 18:32:02 +0100 Subject: Add experimental PortAudio driver --- src/server/events/CreateGraph.cpp | 9 +++++++-- src/server/events/CreatePort.cpp | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src/server/events') diff --git a/src/server/events/CreateGraph.cpp b/src/server/events/CreateGraph.cpp index 304656af..99b29b66 100644 --- a/src/server/events/CreateGraph.cpp +++ b/src/server/events/CreateGraph.cpp @@ -194,8 +194,13 @@ void CreateGraph::execute(RunContext& context) { if (_graph) { - if (_parent && _compiled_graph) { - _parent->set_compiled_graph(std::move(_compiled_graph)); + if (_parent) { + if (_compiled_graph) { + _parent->set_compiled_graph(std::move(_compiled_graph)); + } + } else { + _engine.set_root_graph(_graph); + _graph->enable(); } for (Event* ev : _child_events) { diff --git a/src/server/events/CreatePort.cpp b/src/server/events/CreatePort.cpp index 4e34762a..3adf2f8b 100644 --- a/src/server/events/CreatePort.cpp +++ b/src/server/events/CreatePort.cpp @@ -102,6 +102,9 @@ CreatePort::pre_process(PreProcessContext& ctx) return Event::pre_process_done(Status::PARENT_NOT_FOUND, parent_path); } else if (!(_graph = dynamic_cast(parent))) { return Event::pre_process_done(Status::INVALID_PARENT, parent_path); + } else if (!_graph->parent() && _engine.activated() && + !_engine.driver()->dynamic_ports()) { + return Event::pre_process_done(Status::CREATION_FAILED, _path); } const URIs& uris = _engine.world()->uris(); -- cgit v1.2.1