Commit Graph

2084 Commits

Author SHA1 Message Date
Robbert van der Helm fc61658ada Add the start for a Wine->X11 DnD wrapper 2021-07-09 18:48:11 +02:00
Robbert van der Helm f1a8ed1668 Update the tested REAPER version 2021-07-08 19:35:27 +02:00
Robbert van der Helm b72b6f8273 Change const static to static const
To match the order used everywhere else.
2021-07-08 18:18:29 +02:00
Robbert van der Helm a58a1ab111 Update parameter name in header
Apparently this wasn't saved yet when I commited
a06d0bc515.
2021-07-05 18:29:04 +02:00
Robbert van der Helm bf84057044 [yabridgectl] Normalize symlinks for plugin counts
Now this should actually be correct with partially overlapping plugin
directories when symlinks were used.
2021-07-05 17:56:22 +02:00
Robbert van der Helm a06d0bc515 Actually update the supported interface status
With this Waves VST3 plugins now work. But was it worth it?
2021-07-05 16:48:24 +02:00
Robbert van der Helm 4e4bbe1ba4 Replace const-rvalue with rvalue
Since const-rvalue doesn't make any sense.
2021-07-05 16:39:11 +02:00
Robbert van der Helm 1397400155 Reload supported interfaces after IPluginBase::initialize()
This is needed as a workaround to support Waves VST3 plugins.

Right now does does not actually fix the issue because the arguments are
not updated in the subclasses. The next commit will fix this.
2021-07-05 16:08:01 +02:00
Robbert van der Helm 3fbb01f225 Move all casted VST3 plugin interfaces to struct
To make Waves plugins happy we're going to have to replace this after
calling `IPluginBase::initialize()`.
2021-07-05 15:22:47 +02:00
Robbert van der Helm aaed5f0128 Reword changelog 2021-07-05 15:03:55 +02:00
Robbert van der Helm 97ff407ef6 Allow plug view creation to fail 2021-07-05 15:02:36 +02:00
Robbert van der Helm 4c24baa3d2 Remove default constructor for Vst3PluginInstance
Seems weird to need this specifically so we can use the map overload
that creates a new instance when the key doesn't exist in the map. This
seems safer.
2021-07-05 14:35:44 +02:00
Robbert van der Helm e25231c2d2 Rename VST3 instance holder classes
We're going to have to split up the interfaces into another object so we
can reinitialize it later.
2021-07-05 14:16:23 +02:00
Robbert van der Helm cd060fba24 Remove comment about host context interfaces
As it turns out, later SDK versions did add more interface. (this class
used to directly implement `IHostApplication`)
2021-07-05 01:17:34 +02:00
Robbert van der Helm 56a2ec854c Remove recommendation to use Wine Staging 6.4
Wine Staging (or rather, wine-tkg) 6.12 seems stable so far. As long as
you don't enable fshack, apparently.
2021-07-04 18:54:28 +02:00
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