Robbert van der Helm
54dd4c583f
Fix use after move causing null pointer deref
...
C++ is a joy to work with.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
82e552098a
Store host pointer in the plugin proxy
2022-09-11 19:18:03 +02:00
Robbert van der Helm
c98ca66838
Allow creating plugins instances
2022-09-11 19:18:03 +02:00
Robbert van der Helm
a9bb60772d
Add functions for registering CLAP plugin proxies
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bacda47671
Add stubs for a CLAP plugin proxy
2022-09-11 19:18:03 +02:00
Robbert van der Helm
49e3f7ff1e
Capitalize CLAP plugin descriptor class name
...
To stay consistent with the rest of the naming.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bdf0c10605
Add explicit move when creating factory
2022-09-11 19:18:03 +02:00
Robbert van der Helm
6137fe32ce
Load the CLAP plugin factory
...
Creating the plugin still fails.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
c36590abf5
Add a basic CLAP plugin factory implementation
...
Which can only list plugins without creating them.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
15efbd462f
Fix alignment in version out of sync warning
2022-09-11 19:18:03 +02:00
Robbert van der Helm
653a3a88cb
Add serialization for CLAP plugin descriptors
2022-09-11 19:18:03 +02:00
Robbert van der Helm
8ec2996187
Send configuration to the CLAP plugin host
2022-09-11 19:18:03 +02:00
Robbert van der Helm
dd0ef70d3e
Add CLAP module detection
2022-09-11 19:18:03 +02:00
Robbert van der Helm
707092086e
Interact with CLAP bridge in libyabridge-clap.so
2022-09-11 19:18:03 +02:00
Robbert van der Helm
fcb2c85935
Add boilerplate for a CLAP plugin bridge
2022-09-11 19:18:03 +02:00
Robbert van der Helm
54c506c703
Rename VST3 log_init_exception for consistency
2022-09-11 19:18:03 +02:00
Robbert van der Helm
6be5fbbcf4
Mention the CLAP feature in the init message
2022-09-11 19:18:03 +02:00
Robbert van der Helm
4ca7ea17b2
Change terminology from 'VST' to 'plugin'
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bf7280fc7e
Move Vst3MessageHandler to common and make generic
...
CLAP will use the same strategy.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
98bb4a019b
Add CLAP whenever mentioning yabridge libs
2022-09-11 19:18:03 +02:00
Robbert van der Helm
a172b0ad06
Add minimal boilerplate for a CLAP plugin
2022-09-11 19:18:03 +02:00
Robbert van der Helm
5e95c3b4e0
Make the VST3 bundle detection more specific
...
In yabridge itself.
2022-06-13 00:06:56 +02:00
Robbert van der Helm
818eeb2137
Remove unused include
2022-06-08 14:45:38 +02:00
Robbert van der Helm
c598ca08e1
Update notifications for yabridge 4.0
2022-06-08 14:45:31 +02:00
Robbert van der Helm
d9de22ddbd
Add support for VST2 effBeginLoad{Bank,Program}
...
A user reported that REAPER was using these on the REAPER forum, but I
have not been able to reproduce that. And they went MIA after posting
about it. But hopefully this helps.
2022-06-08 14:27:04 +02:00
Robbert van der Helm
162aeed661
Only set up VST3 SHM audio buffers in setActive()
...
This avoids doing the duplicate check (since both `setProcessing()` and
`setActive()` would be called), and this also gets rid of the assumption
added a couple commits ago that `setupProcessing()` is only ever called
once, which is not true.
2022-05-19 14:43:59 +02:00
Robbert van der Helm
8c10edf861
Add explicit virtual default destructors
...
We need to silence the warning about this because Steinberg doesn't
declare their base class destructors as virtual (because of Windows ABI
compatibility issues). But we can still do it inside of yabridge to have
at least a bit more safety.
2022-05-18 18:44:15 +02:00
Robbert van der Helm
dedcdefebf
Allow resizing shared memory buffers in setActive
...
REAPER apparently changes bus arrangements between
`IAudioProcessor::setupProcessing()` and `IAudioProcessor::setActive()`.
2022-05-18 18:16:14 +02:00
Robbert van der Helm
6efc69071e
Fix building with -Dvst3=false #180
2022-05-14 13:19:20 +02:00
Robbert van der Helm
3970bc7f52
[yabridgectl] Set up in ~/.vst/yabridge by default
...
Instead of creating `.so` files next to the VST2 plugin's `.dll` files.
This behavior is still available as an option. #123
2022-04-17 20:27:47 +02:00
Robbert van der Helm
b3efcf4e06
Merge yabridge-group.exe and yabridge-host.exe
...
They were 95% the same, so this makes a lot more sense this way. When
group host processes were introduced yabridge only did VST2 bridging,
but we already have a plugin type argument anyways so might as well
reuse that for group hosts.
2022-04-16 23:26:24 +02:00
Robbert van der Helm
4d9e865dd3
Define plugin and chainloader deps in own dir
...
Just like we already did for the plugin host.
2022-04-16 23:00:25 +02:00
Robbert van der Helm
470f4dfaaa
Remove the with- prefix from the build options
2022-04-16 21:13:46 +02:00
Robbert van der Helm
773b101cd4
Update error messages for chainloading changes
2022-04-16 20:37:11 +02:00
Robbert van der Helm
6f16eb5c76
Print library path in the initialization message
...
This is useful when chainloading, since it now tells you where eactly
it's loading the library from.
2022-04-16 20:37:11 +02:00
Robbert van der Helm
d73a0041eb
Find the correct library file from the chainloader
...
Instead of using this hardcdoed path.
2022-04-16 20:37:11 +02:00
Robbert van der Helm
3cad93cb65
Move get_augmented_search_path to process library
...
We'll need this for the chainloader.
2022-04-16 20:37:11 +02:00
Robbert van der Helm
0487947d91
Export chainloader functions in the plugin libs
...
These can be called from the new chainlaoder libraries to use yabridge
without needing copies of the full fat `libyabridge-{vst2,vst3}.so`
libraries.
2022-04-16 20:37:11 +02:00
Robbert van der Helm
0ba0dab675
Add missing extern "C" to GetPluginFactory
2022-04-16 20:37:11 +02:00
Robbert van der Helm
46af07748b
Move desktop notifications to its own header
...
We'll need to use this from the chainloader.
2022-04-16 20:37:10 +02:00
Robbert van der Helm
fde90d7bc3
Pass plugin path around instead of redetecting
...
This is now set only once at the top level. This is needed for the
chainloading to work because we'll need to set the path when we create
the bridge.
2022-04-16 20:37:10 +02:00
Robbert van der Helm
1fec4c8860
Change the description in the GPL header
2022-04-16 20:37:10 +02:00
Robbert van der Helm
7b3afa4043
Replace Boost.Dll with our own function
...
Now we no longer rely on anything from Boost. Later we'll move the path
detection to the very beginning of the plugin bridge initialization so
it can be set from the coming chainloader libraries.
2022-04-16 20:37:10 +02:00
Robbert van der Helm
b2ffbb8b4d
Also consider empty dirs for find_dominating_file
...
Just in case.
2022-04-16 20:37:10 +02:00
Robbert van der Helm
c2de0cce2e
Use our own export macro
2022-04-16 20:37:10 +02:00
Robbert van der Helm
4e99afd53d
Add a note on case sensitive extension matching
2022-04-16 20:37:10 +02:00
Robbert van der Helm
b2a15620f3
Swap Boost.Container's small_vector out for LLVM's
...
This implementation misses a shrink to fit function, but reassigning the
vector with a fresh one should be equivalent.
2022-04-16 20:37:10 +02:00
Robbert van der Helm
037d6ad5aa
Replace Boost.Process for the Wine plugin host
...
Now we use our own library for this, so we can drop the Boost.Filesystem
dependency after a couple more changes.
2022-04-16 20:37:10 +02:00
Robbert van der Helm
1641fb2996
Fix find_dominating_file() for ghc::filesystem
...
"/".parent() now is "/" instead of "" (which does make more sense)
2022-04-14 23:42:12 +02:00
Robbert van der Helm
a324042695
Use custom process library for notifications
...
Instead of using Boost.Process here. Last usage of Boost.Process is for
launching the child process.
2022-04-14 23:42:12 +02:00