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
Robbert van der Helm
18571bca5d
Add a dependency for the VST3 SDK
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
Robbert van der Helm
c6eb55dc6d
Rename libyabridge to libyabridge-vst2
2020-12-07 18:28:16 +01:00
Robbert van der Helm
e08162fabf
Silence warnings on decltype() with Wine 5.22
...
There were already similar warnings on 32-bit winegcc, but now it also
happens on the 64-bit version. Instead of adding
`-Wno-ignored-attributes` we'll just sprinkle some warning ignores here
and there to prevent any other surprises.
2020-11-30 14:05:48 +01:00
Robbert van der Helm
cbf276b7dc
Hide all symbols by default
...
As mentioned by @abique. Could prevent issues caused by symbol clashes,
and it also greatly reduces the size of all binaries.
2020-11-27 20:40:59 +01:00
Robbert van der Helm
f79e2465e8
Bump to version 2.1.0
2020-11-20 14:24:42 +01:00
Robbert van der Helm
f1f5d34b52
Add version bounds to meson wrap dependencies
...
Just to prevent the off chance where an older cached version would cause
issues.
2020-11-15 01:08:43 +01:00
Robbert van der Helm
ad71016c9a
Bump to version 2.0.2
2020-11-14 18:13:18 +01:00
Robbert van der Helm
5f1fbcb905
Bump to version 2.0.1
2020-11-08 21:53:55 +01:00
Robbert van der Helm
97d1055063
Bump to version 2.0.0
2020-11-08 13:47:33 +01:00
Robbert van der Helm
7931f38066
Remove the deprecated use-* compilation options
2020-11-08 12:36:47 +01:00
Robbert van der Helm
1a18ea8614
Add a dependency for function2
...
std::function requires the function to be CopyConstructable and thus
does not allow you to capture by move, which is exactly what we need.
2020-10-27 22:53:08 +01:00
Robbert van der Helm
4b53342514
💥 Encapsulate and rework all socket logic
...
This is a pretty huge change that will be important for being able to
handle nested or mutually recursive `dispatch()` and `audioMaster()`
calls. This sadly all had to be done in a single commit, so here's a
summary:
- `src/common/sockets.h:Sockets` contains all sockets on both the plugin
and the Wine host side, and is used to both listen on and connect to
the sockets.
- Sockets and other temporary files respect `$XDG_RUNTIME_DIR` instead
of being dumped in `/tmp`.
- All sockets now have a unique endpoint in
`/run/user/<uid>/yabridge-<plugin_name>-<random_id>/`. This is
important for when we want to have multiple socket connections for
handling `dispatch()` and `audioMaster()`.
- Because of the above, we no longer clean up the socket endpoint files
after the connection gets established during initialization. Instead
we'll remove the socket base directory when shutting down.
2020-10-25 21:24:56 +01:00
Robbert van der Helm
cbc55aa16f
Bump to version 1.7.1
2020-10-23 14:10:11 +02:00
Robbert van der Helm
2b077c1a4e
Bump to version 1.7.0
2020-10-13 15:38:22 +02:00
Robbert van der Helm
59c9a2308a
Bump to version 1.6.1
2020-09-28 22:41:01 +02:00
Robbert van der Helm
f1b1f20fdb
Update tomlplusplus
2020-09-27 17:48:43 +02:00
Robbert van der Helm
844ef7a8c5
Bump to version 1.6.0
...
This has been a bit overdue, but since this only fixes a few niche
issues with Renoise and REAPER I wanted to make sure that it actually
worked.
2020-09-17 14:47:16 +02:00
Robbert van der Helm
8ce4ebfc28
Bump to version 1.5.0
2020-08-21 15:11:36 +02:00