diff options
author | David Robillard <d@drobilla.net> | 2017-12-16 22:27:22 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2017-12-16 22:27:22 +0100 |
commit | f2d3c77c9a470f20506c90098ab5cf4d3e5c9eff (patch) | |
tree | 38b27fed96f39bd1a3b255206f3af93c8f4708af /src/server/events/Delta.cpp | |
parent | d078741456bacf08e2bc3e5d6cda58c2d16ef029 (diff) | |
download | ingen-f2d3c77c9a470f20506c90098ab5cf4d3e5c9eff.tar.gz ingen-f2d3c77c9a470f20506c90098ab5cf4d3e5c9eff.tar.bz2 ingen-f2d3c77c9a470f20506c90098ab5cf4d3e5c9eff.zip |
Adjust indices when ports are deleted
Diffstat (limited to 'src/server/events/Delta.cpp')
-rw-r--r-- | src/server/events/Delta.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp index 0c50aabc..fccb887c 100644 --- a/src/server/events/Delta.cpp +++ b/src/server/events/Delta.cpp @@ -312,6 +312,9 @@ Delta::pre_process(PreProcessContext& ctx) } else { _status = Status::BAD_OBJECT_TYPE; } + } else if (key == uris.lv2_index) { + op = SpecialType::PORT_INDEX; + port->set_property(key, value); } } else if ((block = dynamic_cast<BlockImpl*>(_object))) { if (key == uris.midi_binding && value == uris.patch_wildcard) { @@ -498,6 +501,11 @@ Delta::execute(RunContext& context) _status = Status::INTERNAL_ERROR; } break; + case SpecialType::PORT_INDEX: + if (port) { + port->set_index(context, value.get<int32_t>()); + } + break; case SpecialType::CONTROL_BINDING: if (port) { if (!_engine.control_bindings()->set_port_binding(context, port, _binding, value)) { |