Add a more distinct wrapper around chunk data

This commit is contained in:
Robbert van der Helm
2020-12-07 02:41:37 +01:00
parent 7f7da50282
commit 84d00b568b
4 changed files with 47 additions and 37 deletions
+13 -6
View File
@@ -172,6 +172,13 @@ void serialize(S& s, VstTimeInfo& time_info) {
s.value4b(time_info.flags);
}
/**
* Wrapper for chunk data.
*/
struct ChunkData {
std::vector<uint8_t> buffer;
};
/**
* A wrapper around `VstEvents` that stores the data in a vector instead of a
* C-style array. Needed until bitsery supports C-style arrays
@@ -361,9 +368,9 @@ struct WantsString {};
*/
using EventPayload = std::variant<std::nullptr_t,
std::string,
std::vector<uint8_t>,
native_size_t,
AEffect,
ChunkData,
DynamicVstEvents,
DynamicSpeakerArrangement,
WantsAEffectUpdate,
@@ -383,8 +390,8 @@ void serialize(S& s, EventPayload& payload) {
[](S& s, std::string& string) {
s.text1b(string, max_string_length);
},
[](S& s, std::vector<uint8_t>& buffer) {
s.container1b(buffer, binary_buffer_size);
[](S& s, ChunkData& chunk) {
s.container1b(chunk.buffer, binary_buffer_size);
},
[](S& s, native_size_t& window_handle) {
s.value8b(window_handle);
@@ -460,8 +467,8 @@ struct Event {
*/
using EventResultPayload = std::variant<std::nullptr_t,
std::string,
std::vector<uint8_t>,
AEffect,
ChunkData,
DynamicSpeakerArrangement,
VstIOProperties,
VstMidiKeyName,
@@ -477,8 +484,8 @@ void serialize(S& s, EventResultPayload& payload) {
[](S& s, std::string& string) {
s.text1b(string, max_string_length);
},
[](S& s, std::vector<uint8_t>& buffer) {
s.container1b(buffer, binary_buffer_size);
[](S& s, ChunkData& chunk) {
s.container1b(chunk.buffer, binary_buffer_size);
},
[](S& s, AEffect& effect) { s.object(effect); },
[&](DynamicSpeakerArrangement& speaker_arrangement) -> void* {