Robbert van der Helm
70405e8917
Encapsulate our VST3 message handling pattern
...
Similarly to how how we do it in `EventHandler`.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
db1a51af5c
Add serialization primitives for VST3
2020-12-07 18:28:16 +01:00
Robbert van der Helm
2e9b100090
Add handlers for control messages and callbacks
2020-12-07 18:28:16 +01:00
Robbert van der Helm
e889ad22e2
Only pass Logger reference to AdHocSocketHandler
...
The boolean flag wasn't used, and it doesn't make any sense in the
context of VST3.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
19eb33a7e2
Add a AdHocSocketHandler::receive_multi overload
...
With only a single callback.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
ab7449a0e0
Add control sockets to Vst3Sockets
2020-12-07 18:28:16 +01:00
Robbert van der Helm
170cd53c27
Add todo about readme changes after merging
2020-12-07 18:28:16 +01:00
Robbert van der Helm
b9e63ea335
Move the host guard handler to PluginBridge
2020-12-07 18:28:16 +01:00
Robbert van der Helm
c2d2ac8fbf
Inherit Vst3PluginBridge init from PluginBridge
2020-12-07 18:28:16 +01:00
Robbert van der Helm
21a8c232a1
Note that debug builds on winegcc fail now
2020-12-07 18:28:16 +01:00
Robbert van der Helm
6b9ae78b27
Factor out all plumbing in Vst2PluginBridge
...
So we can reuse it in Vst3PluginBridge later.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
f845763af0
Print the plugin type during initialisation
2020-12-07 18:28:16 +01:00
Robbert van der Helm
c57fd67aa8
Don't store the Wine version as a field
...
It's only needed for the initialisation message, and it doesn't throw so
doing this later shouldn't make a difference.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
3c72ab31f8
Shut up clang/ccls
2020-12-07 18:28:16 +01:00
Robbert van der Helm
ff2807c939
Add all the boilerplate for the Vst3PluginBridge
...
And now that I also have an idea of what the communication model will
look like, this can server as a base for instantiating plugins.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
6e5aa1c1c6
Add the Vst3Bridge boilerplate
2020-12-07 18:28:16 +01:00
Robbert van der Helm
6179fddbc8
Do some more testing and print some plugin info
2020-12-07 18:28:16 +01:00
Robbert van der Helm
ebc7802c08
Patch Win32 module loading to use Boost.Filesystem
...
C++17's `<filesystem>` header still doesn't seem to work with winegcc.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
0b462c034e
Allow loading VST3 modules
...
Doesn't actually work yet or do anything, but it compiles and it runs.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
211f6156a7
Get rid of the string conversion patch
...
This solved some compiler errors early on but it ended up not being
needed, and as it turns out this change actually breaks things because
the SDK uses a ton of reinterpret casts to convert between string types
internally.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
8381b4a836
Link to shell32.dll
...
For some reason this is required on the Ubuntu 18.04 build, but not on
my computer nor on the Ubuntu 20.04 build all using the same version of
Wine and GCC.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
a25aea1a76
Use consistent architecture naming for Wine deps
2020-12-07 18:28:16 +01:00
Robbert van der Helm
9291ae7e42
Include the Win32 module loading implementation
2020-12-07 18:28:16 +01:00
Robbert van der Helm
a4af1a2535
Fix compiling VST3 module system with winegcc
2020-12-07 18:28:16 +01:00
Robbert van der Helm
f3d17b5e99
Also patch string conversion for winelib
2020-12-07 18:28:16 +01:00
Robbert van der Helm
9a57ce0c5e
Use non-experimental <filesystem> in VST3 loading
2020-12-07 18:28:16 +01:00
Robbert van der Helm
715a95075b
Add required compiler args to the Wine VST3 dep
2020-12-07 18:28:16 +01:00
Robbert van der Helm
06884ebf67
Also fix shlobj.h import casing
2020-12-07 18:28:16 +01:00
Robbert van der Helm
f51f920426
Move VST3 dependency defs to the rest of the deps
2020-12-07 18:28:16 +01:00
Robbert van der Helm
d848498d9b
Define all sources at the top of meson.build
...
To make things a bit more organized since it's growing a bit out of
hand.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
e273051a6c
Add a Vst3Bridge implementation file
2020-12-07 18:28:16 +01:00
Robbert van der Helm
84e13e556c
Add #ifdef WITH_VST3 guards around VST3 hosting
2020-12-07 18:28:16 +01:00
Robbert van der Helm
3db099e0fc
Also make the GroupHost plugin type agnostic
2020-12-07 18:28:16 +01:00
Robbert van der Helm
0eb80fe866
Add a general entry point to HostBridge
...
Since for all plugin types we would need to start listening for incoming
events this way.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
3dd5090023
Support multiple plugin types in individual host
2020-12-07 18:28:16 +01:00
Robbert van der Helm
41da621e29
Add a todo for decoupling Editor from VST2
2020-12-07 18:28:16 +01:00
Robbert van der Helm
eeb6acf8dd
Move event handling to a common HostBridge
2020-12-07 18:28:16 +01:00
Robbert van der Helm
a9b7a6a835
List VST3 support in the initialization message
2020-12-07 18:28:16 +01:00
Robbert van der Helm
cf72c13579
Add a define for VST3 support
2020-12-07 18:28:16 +01:00
Robbert van der Helm
969ad75da5
Add some more VST3 implementation considerations
2020-12-07 18:28:16 +01:00
Robbert van der Helm
2060606864
Add a list of things to watch out for with VST3
2020-12-07 18:28:16 +01:00
Robbert van der Helm
f9a1bcd7bd
Split VST2 specific functionality into Vst2Logger
2020-12-07 18:28:16 +01:00
Robbert van der Helm
2230b5099f
Move logger to common/logging/common.h
2020-12-07 18:28:16 +01:00
Robbert van der Helm
a55fbb0daf
Mention the version and patches of the VST3 SDK
2020-12-07 18:28:16 +01:00
Robbert van der Helm
278cd2e710
Spawn all hosts directly using HostRequest
...
This way we can set the plugin type inside of the `Vst*PluginBridge`
instance.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
e21d3e020f
Rename GroupRequest to HostRequest
...
We'll also use this to encode information in when launching
`yabridge-host.exe` for individually hosted plugins.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
1c5a9423d2
Print the plugin type on initialization
2020-12-07 18:28:16 +01:00
Robbert van der Helm
f9bb3822de
Pass plugin type when calling the host application
2020-12-07 18:28:16 +01:00
Robbert van der Helm
1142c908df
Add serialization support for PluginType
2020-12-07 18:28:16 +01:00
Robbert van der Helm
67388dc2a6
Add a plugin type tag and conversion functions
2020-12-07 18:28:16 +01:00