Commit Graph

93 Commits

Author SHA1 Message Date
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
Robbert van der Helm 56c939012d Bump to version 1.4.1 2020-07-27 16:33:41 +02:00
Robbert van der Helm f5b1d48d96 Bump version to 1.4.0 2020-07-26 15:20:48 +02:00
Robbert van der Helm 6f5dae90a6 Set realtime priorities if available
This significantly reduces the latency with no real drawbacks from what
I've noticed. Wineserver is still run using the normal scheduling
policies because from my testing running that with realtime priority
that can actually increase latencies, although doing so will greatly
reduce the variance in processing time.
2020-07-23 19:57:50 +02:00
Robbert van der Helm 2e77c03464 Move the configuration object to src/common/ 2020-07-22 13:55:29 +02:00
Robbert van der Helm c5ec9b9dd3 Bump to version 1.3.0 2020-07-17 15:19:51 +02:00
Robbert van der Helm 62d84ca49e Add a todo to remove the deprecated Meson options 2020-07-16 13:35:45 +02:00
Robbert van der Helm 410d92aa8b Deprecate 'use-bitbridge' and 'use-winedbg'
Following the addition of 'with-bitbridge' and 'with-winedbg' in
yabridge 1.2.1 to stay consistent with the other options.
2020-07-16 13:31:12 +02:00
Robbert van der Helm 6a01856f37 Bump the version 2020-06-20 18:05:09 +02:00
Robbert van der Helm c4842ccda6 Make use-* aliases for new with-* build options
The 'use-*' variants will be marked as deprecated in a future version.
2020-06-08 16:02:53 +02:00
Robbert van der Helm 9385360331 Don't statically link Boost by default #20
Since this would only be needed for distribution, and we're already
doing something similar for libstdc++ on the Ubuntu 18.04 build. This
moves the static linking behind a new build option.
2020-06-08 15:46:09 +02:00
Robbert van der Helm 89c186f2c4 Target C++2a
Now that Ubuntu 20.04 is out every currently supported distro that's not
based on Ubuntu 18.04 is shipping GCC 10, so we can start using some
C++20 features. Ubuntu 18.04 already needed a newer version of GCC
installed through a PPA and a newer version of Boost to compile
yabridge, so requiring GCC 10 shouldn't be an issue.
2020-06-05 23:13:41 +02:00
Robbert van der Helm 150106e0e0 Bump version to 1.2.0 2020-05-29 18:47:51 +02:00
Robbert van der Helm b379708b21 Encapsulate individual/group handling differences
This cleans up the PluginBridge significantly by getting rid of all
fields and handling that was only needed for connecting to plugin
groups. This was also the last thing I wanted to refactor before
releasing the plugin groups feature with yabridge 1.2.
2020-05-29 18:08:44 +02:00
Robbert van der Helm 3985e10319 Add search paths for 32-bit Boost on Fedora
This will also cause the 64-bit version of the library to be picked up
on any distro that's not based on Fedora, which may cause some confusing
problems.

Is there a right way to do this? Meson doesn't allow you to override the
library search path for part of the build, and it also can't
differentiate between 32-bit and 64-bit libraries by default.
2020-05-19 10:47:30 +02:00
Robbert van der Helm 8bd1dc8c50 Encapsulate the STDOUT/STDERR capturing 2020-05-18 16:15:07 +02:00
Robbert van der Helm 53acb1f78a Move wine-bridge.h -> bridges/vst2.h
This way we can structure the group handling and a potential future VST3
bridge in the same way.
2020-05-18 16:15:07 +02:00
Robbert van der Helm df2c4c29a9 Fix search path for 32-bit Boost 2020-05-18 16:15:07 +02:00
Robbert van der Helm 4e80e23cc0 Revert "Don't link the winelibs with libboost_filesystem"
This reverts commit e728dbe5a2.

`std::filesystem` is broken on wineg++, at least with Wine 5.8. Any path
operations will throw a `std::filesystem::__cxx11::filesystem_error`:

  what():  filesystem error: Cannot convert character sequence: Invalid or incomplete multibyte or wide character
2020-05-18 16:15:07 +02:00
Robbert van der Helm 994f3c9e38 Add a plugin group host application 2020-05-18 16:15:07 +02:00
Robbert van der Helm 95e716d229 Rename vst-host.cpp -> individual-host.cpp 2020-05-17 14:43:21 +02:00
Robbert van der Helm d9ff98de84 Move everything configuration related to plugin
If it's tied to the .so file rather than the .dll file it wouldn't make
any sense to use it directly from the Wine host.
2020-05-15 16:35:18 +02:00
Robbert van der Helm 6f148b97a4 Add a TOML parser dependency 2020-05-15 16:35:18 +02:00
Robbert van der Helm e728dbe5a2 Don't link the winelibs with libboost_filesystem
It's not actually used anywhere.
2020-05-15 16:30:39 +02:00