diff options
author | David Robillard <d@drobilla.net> | 2016-10-02 12:24:28 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2016-10-02 12:27:23 -0400 |
commit | 339937c6bf23d591664f4d7c9fffae6e5a0bf287 (patch) | |
tree | 35e4074905ed1cb7434bea3eef123b9ccab33486 | |
parent | a374d438274e350ebc02175cec7d0c4faf8c6d73 (diff) | |
download | ingen-339937c6bf23d591664f4d7c9fffae6e5a0bf287.tar.gz ingen-339937c6bf23d591664f4d7c9fffae6e5a0bf287.tar.bz2 ingen-339937c6bf23d591664f4d7c9fffae6e5a0bf287.zip |
Fix sending UI events to sequence ports
-rw-r--r-- | src/server/InputPort.cpp | 6 | ||||
-rw-r--r-- | src/server/events/SetPortValue.cpp | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/server/InputPort.cpp b/src/server/InputPort.cpp index 8ee0f56a..7e7412cc 100644 --- a/src/server/InputPort.cpp +++ b/src/server/InputPort.cpp @@ -149,9 +149,13 @@ InputPort::pre_process(RunContext& context) buffer(v)->update_value_buffer(context.offset()); } } else if (_arcs.empty()) { - // No incoming arcs, just update set state + // No incoming arcs, just handle user-set value for (uint32_t v = 0; v < _poly; ++v) { + // Update set state update_set_state(context, v); + + // Prepare for write in case a set event executes this cycle + buffer(v)->prepare_write(context); } } else if (direct_connect()) { // Directly connected, use source's buffer directly diff --git a/src/server/events/SetPortValue.cpp b/src/server/events/SetPortValue.cpp index 5bcb6dbf..9530e2d3 100644 --- a/src/server/events/SetPortValue.cpp +++ b/src/server/events/SetPortValue.cpp @@ -93,7 +93,6 @@ SetPortValue::apply(RunContext& context) _status = Status::TYPE_MISMATCH; } } else if (buf->type() == uris.atom_Sequence) { - buf->prepare_write(context); // FIXME: incorrect if (buf->append_event(_time - context.start(), _value.size(), _value.type(), |