diff options
author | David Robillard <d@drobilla.net> | 2017-02-12 14:59:56 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2017-02-12 15:07:11 +0100 |
commit | 81d45973412c675e3c0b4a10b64d811a219feeae (patch) | |
tree | d1bcab9fb49798d51611730351c611f79f290d79 /src/server/events | |
parent | ac0042bfe278e86696bea2d52f88730489e97f87 (diff) | |
download | ingen-81d45973412c675e3c0b4a10b64d811a219feeae.tar.gz ingen-81d45973412c675e3c0b4a10b64d811a219feeae.tar.bz2 ingen-81d45973412c675e3c0b4a10b64d811a219feeae.zip |
Fix atomic event execution
Diffstat (limited to 'src/server/events')
-rw-r--r-- | src/server/events/Delta.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp index 3ee17ee2..2ad258fd 100644 --- a/src/server/events/Delta.cpp +++ b/src/server/events/Delta.cpp @@ -72,6 +72,13 @@ Delta::Delta(Engine& engine, p.second.set_context(context); } } + + // Set atomic execution if polyphony is to be changed + const Ingen::URIs& uris = _engine.world()->uris(); + if (properties.count(uris.ingen_polyphonic) || + properties.count(uris.ingen_polyphony)) { + _block = true; + } } Delta::~Delta() @@ -360,7 +367,6 @@ Delta::pre_process(PreProcessContext& ctx) if (value.get<int32_t>() < 1 || value.get<int32_t>() > 128) { _status = Status::INVALID_POLY; } else { - _block = true; op = SpecialType::POLYPHONY; _graph->prepare_internal_poly( *_engine.buffer_factory(), value.get<int32_t>()); @@ -378,7 +384,6 @@ Delta::pre_process(PreProcessContext& ctx) } else if (value.type() != uris.forge.Bool) { _status = Status::BAD_VALUE_TYPE; } else { - _block = true; op = SpecialType::POLYPHONIC; obj->set_property(key, value, value.context()); BlockImpl* block = dynamic_cast<BlockImpl*>(obj); |