diff --git a/src/common/bitsery.h b/src/common/bitsery.h
new file mode 100644
index 00000000..54bd3351
--- /dev/null
+++ b/src/common/bitsery.h
@@ -0,0 +1,56 @@
+// yabridge: a Wine VST bridge
+// Copyright (C) 2020 Robbert van der Helm
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+#pragma once
+
+// This is a modified version of `bitsery::ext::PointerOwner` in an attempt to
+// support C-style arrays with no compile time known length. This should be
+// upstreamed if it works.
+
+#include
+
+// TODO: Implement
+
+template class TPtrManager,
+ template
+ class TPolymorphicContext,
+ typename RTTI>
+class PointerObjectExtensionMultipleBase
+ : public bitsery::ext::pointer_utils::
+ PointerObjectExtensionBase {};
+
+template
+using PointerOwnerMultipleBase = PointerObjectExtensionMultipleBase<
+ bitsery::ext::pointer_details::PtrOwnerManager,
+ bitsery::ext::PolymorphicContext,
+ RTTI>;
+
+using PointerOwnerMultiple =
+ PointerOwnerMultipleBase;
+
+namespace bitsery {
+namespace traits {
+template
+struct ExtensionTraits<::PointerOwnerMultipleBase, T*> {
+ using TValue = T;
+ static constexpr bool SupportValueOverload = true;
+ static constexpr bool SupportObjectOverload = true;
+ // if underlying type is not polymorphic, then we can enable lambda syntax
+ static constexpr bool SupportLambdaOverload =
+ !RTTI::template isPolymorphic();
+};
+} // namespace traits
+} // namespace bitsery
diff --git a/src/common/serialization.h b/src/common/serialization.h
index cdeedd60..89a6c6bf 100644
--- a/src/common/serialization.h
+++ b/src/common/serialization.h
@@ -25,7 +25,7 @@
#include
-#pragma once
+#include "bitsery.h"
/**
* The maximum number of audio channels supported.