Implement effSetChunk

This commit is contained in:
Robbert van der Helm
2020-03-10 12:57:53 +01:00
parent e89ddfe7b1
commit 54966a36f2
3 changed files with 13 additions and 12 deletions
+8 -2
View File
@@ -142,18 +142,24 @@ class DispatchDataConverter : DefaultDataConverter {
DispatchDataConverter(std::vector<uint8_t>& chunk_data)
: chunk(chunk_data) {}
EventPayload read(const int opcode, const void* data) {
EventPayload read(const int opcode, const intptr_t value, const void* data) {
// There are some events that need specific structs that we can't simply
// serialize as a string because they might contain null bytes
// TODO: More of these structs
switch (opcode) {
case effGetChunk:
return WantsChunkBuffer();
break;
case effSetChunk:
// When the host passes a chunk it will use the value parameter
// to tell us its length
return std::string(static_cast<const char*>(data), value);
break;
case effProcessEvents:
return DynamicVstEvents(*static_cast<const VstEvents*>(data));
break;
default:
return DefaultDataConverter::read(opcode, data);
return DefaultDataConverter::read(opcode, value, data);
break;
}
}