Robbert van der Helm
42664be378
Use std::copy_n instead of pointer arithmetic
2020-12-13 23:19:37 +01:00
Robbert van der Helm
426231a22b
Avoid potential UB in loggers using composition
...
This cast would work fine, but any other fields added to those loggers
would be left uninitialized.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
c1e7f53cd0
💥 Major refactor of initialization plumbing
...
To account for the differences in VST2 plugins and VST3 modules we had
to wrap most of our old functions from `src/plugin/utils.h` in a new
`PluginInfo` struct that gathers all of this information while taking
into account the differences between VST2 and VST3 plugins.
With this change things are also a lot more organized. We can just query
the plugin information we need rather than having to store things
separately or having to recalculate things. This also moved the
responsibility of all the weird `WINEPREFIX` behaviour to a single place
instead of having it spread around `utils.pp`, the initialisation
message, and `host-procoess.cpp`.
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
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
a9b7a6a835
List VST3 support in the initialization message
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
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
1c5a9423d2
Print the plugin type on initialization
2020-12-07 18:28:16 +01:00
Robbert van der Helm
47baef3107
Rename architecture related functions and structs
2020-12-07 18:28:16 +01:00
Robbert van der Helm
46bc0301af
Move communication.h to communication/vst2.h
2020-12-07 18:28:16 +01:00
Robbert van der Helm
4291083a46
Rename PluginBridge to Vst2PluginBridge
2020-12-07 18:28:16 +01:00
Robbert van der Helm
6195caf53e
Move src/plugin-bridge to src/bridges/vst2
2020-12-07 18:28:16 +01:00