Robbert van der Helm
f1aefc0a9d
Finish implementing YaAudioBusBuffers
2020-12-15 22:32:42 +01:00
Robbert van der Helm
f33b749172
Implement all event types
2020-12-15 17:44:26 +01:00
Robbert van der Helm
92c37f71db
Implement IParameterChanges
2020-12-15 14:24:55 +01:00
Robbert van der Helm
026595d99f
Implement IParamValueQueue
2020-12-15 14:23:55 +01:00
Robbert van der Helm
0c64aabeea
Add a partial YaHostApplication implementation
2020-12-13 14:46:17 +01:00
Robbert van der Helm
919987298c
Add the base for YaHostApplication
2020-12-13 13:46:00 +01:00
Robbert van der Helm
39984ad442
Use the new approach for creating plugin factory
...
Directly serializing and deserializing into objects was and more
boilerplate heavy (since we now need two implementations even though we
only use one), and also much less flexible because we can't wrap
payloads in structs or provide optional values that way.
2020-12-12 21:53:38 +01:00
Robbert van der Helm
4f8fe21fa9
Merge branch 'master' into feature/vst3
2020-12-12 13:33:36 +01:00
Robbert van der Helm
42c484bfc0
Bump to version 2.2.1
2020-12-12 12:48:09 +01:00
Robbert van der Helm
91a47a466c
Create a universal wrapper around tvalue
2020-12-11 23:34:23 +01:00
Robbert van der Helm
d1d85711f0
Split up the VST3 class implementations
2020-12-11 22:37:20 +01:00
Robbert van der Helm
9554bbc12d
Merge branch 'master' into feature/vst3
2020-12-11 16:25:53 +01:00
Robbert van der Helm
d0b9f1a602
Bump to version 2.2.0
2020-12-11 14:00:16 +01:00
Robbert van der Helm
e3a52bca14
Revert "Get rid of all traces of pthreads in Wine"
...
This reverts commit e9af76d21e .
Without this the event loop will just not run, not sure why. This needs
some more investigation.
2020-12-10 17:38:09 +01:00
Robbert van der Helm
e9af76d21e
Get rid of all traces of pthreads in Wine
...
Since this can only cause issues.
2020-12-10 15:44:37 +01:00
Robbert van der Helm
5eb1fe2de2
Redesign how interface instantiation works
...
Transferring some argument pack is much easier than trying to
deserialize into an existing object when you also have to transfer more
information than just that object.
2020-12-08 17:33:51 +01:00
Robbert van der Helm
049eb257c5
Make YaPluginFactory abstract
...
And add separate implementations for the native plugin and the Wine
plugin host. This way we can easily allow the native host to do
callbacks without having to manage a load of lambdas.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
85f818ab0b
Patch the SDK for winegcc debug builds
2020-12-07 18:28:16 +01:00
Robbert van der Helm
42f3639e93
Add boilerplate for PluginFactory serialization
2020-12-07 18:28:16 +01:00
Robbert van der Helm
76ad377522
Don't set __MINGW32__
...
This took me a few hours of non-stop headaches to figure out. Apparently
deep inside of Wine's headers having __MINGW32__ defined will cause some
GUIDs to be defined slightly differently. This normally wouldn't cause
issues, but when including `shellobj.h` or `objbase.h` this results in
multiple definition linking errors that are basically impossible to
diagnose.
2020-12-07 18:28:16 +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
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
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
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
a4af1a2535
Fix compiling VST3 module system with winegcc
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
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
eeb6acf8dd
Move event handling to a common HostBridge
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
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
1c5a9423d2
Print the plugin type on initialization
2020-12-07 18:28:16 +01:00
Robbert van der Helm
7fc7a51a46
Move PluginArchitecture to common
...
Along with the accompanying function to parse a PE32 file. We're going
to have to define some common tags for different plugin types.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
5b2221b251
Add a (nonfunctional) VST3 entry point
2020-12-07 18:28:16 +01:00
Robbert van der Helm
6c26168303
Patch the rest of the VST3 SDK for winegcc
2020-12-07 18:28:16 +01:00
Robbert van der Helm
e7e1387c30
Also patch pluginterfaces for winegcc compilation
2020-12-07 18:28:16 +01:00
Robbert van der Helm
7dc0be40a4
Move libyabridge-vst2.so definition to above VST3
2020-12-07 18:28:16 +01:00
Robbert van der Helm
b64c67d2ad
Patch VST3 SDK base to allow winelib compilation
2020-12-07 18:28:16 +01:00
Robbert van der Helm
c8d76d9c92
Add proper dependencies for the entire VST3 SDK
2020-12-07 18:28:16 +01:00
Robbert van der Helm
2fbd14908a
Split communication/vst2.h into common and VST2
...
So we can reuse the generic bits for our VST3 implementation.
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
9c8b543d5d
Split serialization.h into common and VST2 parts
2020-12-07 18:28:16 +01:00
Robbert van der Helm
04dacc0a40
Add a dependency for the VST3 pluginterfaces
2020-12-07 18:28:16 +01:00
Robbert van der Helm
c6b58c1a64
Don't use CMake for the VST3 SDK
...
This can't work yet.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
4be7af2451
Add a TODO for replacing the cmake subproject
...
This is not going to work due to the linked issue with Meson. I didn't
want to reinvent the wheel by writing a meson build file by hand, but
we'll just have to.
2020-12-07 18:28:16 +01:00
Robbert van der Helm
9ece1b916e
Rename plugin.cpp to vst2-plugin.cpp
2020-12-07 18:28:16 +01:00
Robbert van der Helm
af9917b9be
Disable the VST3 examples
2020-12-07 18:28:16 +01:00