Commit Graph

2069 Commits

Author SHA1 Message Date
Robbert van der Helm ef8e1cc1d5 Update tested DAWs table
We should probably get rid of the Ardour/Mixbus warning, since this is
also how native plugins would function in the Windows version of Ardour.
The warnings were here from when yabridge didn't properly serialize the
bus type, since Ardour specifically only supports a single main input
and output and optionally an auxiliary input.
2021-07-04 00:41:09 +02:00
Robbert van der Helm f47d882072 Reword recommendation to stick with Wine 6.4 2021-07-04 00:30:43 +02:00
Robbert van der Helm c13d8f2ee3 [yabridgectl] Recursively prune empty directories
If pruning results in a directory becoming empty, then we should remove
that directory. This approach won't touch any directories that we aren't
pruning from.
2021-07-03 18:35:51 +02:00
Robbert van der Helm 70c40970aa [yabridgectl] Make syncing much more resiliant
This commit does a couple of things since the refactoring made it
difficult to split these things up:

- The counts for managed and new plugins are now always correct, even
  when plugin directory A contains a symlink to plugin directory B.
- Orphan files will now be pruned from managed VST3 directories, making
  switching between different architectures easier. (the previous
  approach involved nuking the entire bundle, which of course has a
  bunch of downsides)
2021-07-03 18:20:05 +02:00
Robbert van der Helm 0f3730fd97 Reduce the notification expiration time 2021-07-03 17:07:44 +02:00
Robbert van der Helm 85c84aba0f [yabridgectl] Partially revert 5ea04c4
We should be a bit more clever about this. This approach would mean that
the plugin would be rescanned every time, since the whole 'don't
reinstall plugins if that wouldn't change anything' thing no longer
works with this approach.
2021-07-03 16:38:56 +02:00
Robbert van der Helm e0b06c84ce Avoid manual memory management in the editor
Letting `std::unique_ptr<T>` do the thinking for us makes a lot more
sense. We only need manual memory management for the error because we
need to pass a pointer to that pointer to xcb, but at least we have the
macro there so it still stays nice and readable.
2021-07-01 19:51:45 +02:00
Robbert van der Helm 661fc4fee2 Move notice about 32-bit Boost.Filesystem dep
This got lost somewhere during the refactor.
2021-07-01 15:21:46 +02:00
Robbert van der Helm 9edae35304 Don't build 64-bit plugin hosts on 32-bit systems
This should in theory work.
2021-07-01 15:16:56 +02:00
Robbert van der Helm e1e5c8beae Move the VST3 SDK patching 2021-07-01 15:15:20 +02:00
Robbert van der Helm d459649f49 Move most of the Meson build to subdirectories
We sadly cannot call `shared_library()` and `executable()` in these
subdirectories while still maintaining the same `build/` directory
structure, but this is still much cleaner. All of the other build
artifacts are now also gone from the root of `build/` so it's cleaner
overall.
2021-07-01 14:57:23 +02:00
Robbert van der Helm 8dd3e091fb Move VST3 SDK deps to a separate meson.build file
We should only have the global options in the main meson.build file. It
made sense to keep everything in one place at one point, but an 800 line
build script becomes a bit difficult to skim through.
2021-07-01 14:57:23 +02:00
Robbert van der Helm 9ed3c357aa Rearrange the Meson build file
This order should make more sense. We should probably also try to split
it up a bit into separate `meson.build` files now that it's become 800
lines long.
2021-07-01 14:57:21 +02:00
Robbert van der Helm 9b1f3a5f4c Remove non-existent VST2 entry point
Since there isn't any public documentation on VST2, I saw JUCE and a
couple of other plugins and bridges use this, but they all redefined the
symbol to`main`.
2021-06-29 12:11:05 +02:00
Robbert van der Helm c067cd1b40 Prevent cursors from being unintentionally hidden
Some interaction between JUCE and Wine would cause these cursors to be
hidden and then never shown again. This is of course more of a temporary
workaround until the issue gets solved within Wine.
2021-06-28 18:13:43 +02:00
Robbert van der Helm c51f92276a Reorganize dependencies 2021-06-28 17:55:29 +02:00
Robbert van der Helm 8cffd0761b Move the THROW_X11_ERROR macro up 2021-06-28 17:16:43 +02:00
Robbert van der Helm 7ac4ee713c Only query XEmbed properties when using Xembed
This is mostly just to make this long constructor more readable.
2021-06-28 16:15:07 +02:00
Robbert van der Helm c5afb7f215 Append a link to the plugin to the notifications 2021-06-28 13:05:32 +02:00
Robbert van der Helm 388d9739a9 Move XML escaping to a separate function 2021-06-28 12:53:51 +02:00
Robbert van der Helm fed7fb84c0 Mention fix for freezing tooltips 2021-06-28 11:03:32 +02:00
Robbert van der Helm 86895c3658 Mention the disappearing mouse cursor issue
I thought this was already there, apparently not.
2021-06-28 11:00:17 +02:00
Robbert van der Helm 78cd6b1e41 Change spelling in changelog 2021-06-26 22:30:31 +02:00
Robbert van der Helm e0713c5fe7 Define the deprecated VST<2.4 main entry point
This should allow @AVLinux to use yabridge under EnergyXT.
2021-06-26 15:02:49 +02:00
Robbert van der Helm e7366006df Append to the STDERR stream
This got lost when changing from using `std::cerr` to opening
`/dev/stderr` directly.
2021-06-26 12:42:53 +02:00
Hector Martin 51ba93e4ed Add missing <bitset> include 2021-06-26 12:29:45 +02:00
Robbert van der Helm 94ba58a7a5 Remove automatically added using std::endl;
This is the first thing you disable on clangd, but apparently I was too
late here.
2021-06-26 12:27:05 +02:00
Robbert van der Helm 20638b7349 Fix missing autoformatting
At some point Doom Emacs broke on-save formatting with lsp-mode in
certain circumstances, and I made these changes with wgrep so apparently
they were never formatted.
2021-06-26 12:27:01 +02:00
Robbert van der Helm f6682d9134 Add missing -mwindows to Ubuntu 18.04 CI build
Apparently this completely overrides the build flags.
2021-06-25 11:51:56 +02:00
Robbert van der Helm 5133f07c2c [yabridgectl] Fix setup checks with 32-bit prefix
This will now run `yabridge-host-32.exe` if `~/.wine` was created with
`WINEARCH=win32`.
2021-06-25 02:13:16 +02:00
Robbert van der Helm 6573b01c2d Fix non-VST3 builds
We now always initialize the COM library since yabridge 3.3.1.
2021-06-24 19:08:02 +02:00
Robbert van der Helm 02feb8fab3 Fix static linking Boost in 32-bit yabridge build 2021-06-24 19:06:02 +02:00
Robbert van der Helm 81e4a4d0fc Improve style in meson.build 2021-06-24 18:39:14 +02:00
Robbert van der Helm 741b2b7fb5 Add proper macro defs for 32-bit Boost Filesystem 2021-06-24 18:38:03 +02:00
Robbert van der Helm b737ba01ad Add missing build.cpp_args for 32-bit build 2021-06-24 18:26:27 +02:00
Robbert van der Helm 3e75ff557b [yabridgectl] Bump reflink for 32-bit support
The version on crates.io always assumes the toolchain is 64-bit.
2021-06-24 17:43:37 +02:00
Robbert van der Helm c770e561d3 [yabridgectl] Use the correct VST3 arch name 2021-06-24 16:09:56 +02:00
Robbert van der Helm 5ea04c402e [yabridgectl] Clean up VST3 bundles
We would completely remove VST3 bundles that yabridgectl does not know
about anymore, but we would not remove leftover files within bundles.
This could otherwise cause issues when messing with 32-bit and 64-bit
versions of plugins or yabridge itself.
2021-06-24 16:04:04 +02:00
Robbert van der Helm 0b8221b136 [yabridgectl] Add support for 32-bit yabridge VST3
Bundles containing a 32-bit version of `libyabridge-vst3.so` should use
the `x86-linux` directory instead of the `x86_64-linux` directory.
2021-06-24 15:48:43 +02:00
Robbert van der Helm b521debbb7 [yabridgectl] Determine libyabridge-vst3.so arch
We're going to need this for supporting merged VST3 bundles with a
32-bit libyabridge-vst3.so.
2021-06-24 15:23:41 +02:00
Robbert van der Helm 3e0a2dc913 [yabridgectl] Change the library architecture enum
We're going to need this for native libraries as well.
2021-06-24 14:19:06 +02:00
Robbert van der Helm cf6200fa1b Mention static linking for 32-bit library builds 2021-06-24 13:55:51 +02:00
Robbert van der Helm e5187db9ef Mark 32-bit yabridge libraries
So we're able to immediately spot that someone is using them from the
logs.
2021-06-24 13:48:23 +02:00
Robbert van der Helm b64b18f75e Change argument order in meson setup command 2021-06-24 13:42:58 +02:00
Robbert van der Helm f0c26cbe06 Allow building 32-bit yabridge libraries 2021-06-24 13:41:43 +02:00
Robbert van der Helm 94b3c92432 Get rid of pointer size checks
To allow cross-compiling 32-bit libraries.
2021-06-24 13:17:15 +02:00
Robbert van der Helm 3b06634e33 Escape HTML in desktop notification messages 2021-06-23 17:23:45 +02:00
Robbert van der Helm 553b4474a7 Respect $XDG_DATA_HOME when looking for binaries
Since we're using the XDG base dir package in yabridgectl we were
already doing this there, so it makes sense to also do this in yabridge
itself even though it's very unlikely the user will have this set.
2021-06-23 01:53:18 +02:00
Robbert van der Helm 3ad70678da [yabridgectl] Fix typo in error message 2021-06-23 01:42:02 +02:00
Robbert van der Helm 15e271f70a Fix unity builds after reintroduction of vfork
Boost.Process was being included before this flag was set. Seems safer
to set it in the build anyways.
2021-06-22 19:00:21 +02:00