summaryrefslogtreecommitdiffstats
path: root/src/server/events/Delta.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-12-16 22:27:22 +0100
committerDavid Robillard <d@drobilla.net>2017-12-16 22:27:22 +0100
commitf2d3c77c9a470f20506c90098ab5cf4d3e5c9eff (patch)
tree38b27fed96f39bd1a3b255206f3af93c8f4708af /src/server/events/Delta.cpp
parentd078741456bacf08e2bc3e5d6cda58c2d16ef029 (diff)
downloadingen-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.cpp8
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)) {