From 4326f8ba71f4af1f3e3c48c9f3a02d8e3e0590f7 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 15 Jan 2015 19:49:29 +0000 Subject: Node bypass. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5515 a436a847-0d15-0410-975c-d299462d15a1 --- src/server/events/Delta.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src/server/events') diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp index c3d4e458..f1acbdc2 100644 --- a/src/server/events/Delta.cpp +++ b/src/server/events/Delta.cpp @@ -209,6 +209,12 @@ Delta::pre_process() } else if ((block = dynamic_cast(_object))) { if (key == uris.midi_binding && value == uris.patch_wildcard) { op = SpecialType::CONTROL_BINDING; // Internal block learn + } else if (key == uris.ingen_enabled) { + if (value.type() == uris.forge.Bool) { + op = SpecialType::ENABLE; + } else { + _status = Status::BAD_VALUE_TYPE; + } } } @@ -316,13 +322,17 @@ Delta::execute(ProcessContext& context) } break; case SpecialType::ENABLE: - if (value.get()) { - if (_compiled_graph) { - _graph->set_compiled_graph(_compiled_graph); + if (_graph) { + if (value.get()) { + if (_compiled_graph) { + _graph->set_compiled_graph(_compiled_graph); + } + _graph->enable(); + } else { + _graph->disable(context); } - _graph->enable(); - } else { - _graph->disable(context); + } else if (block) { + block->set_enabled(value.get()); } break; case SpecialType::POLYPHONIC: { -- cgit v1.2.1