Robbert van der Helm
a1f73692cc
Start CLAP audio thread socket
...
This doesn't do anything yet, but otherwise creating the plugin instance
stalls. And it's safer to add a dummy listener here for the time being
than to remove the latch and risk forgetting to add it back later.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
7575fb7af3
Ensure CLAP_ABI is set
...
This will avoid some potential issues when people try to build this
against old CLAP headers.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
423534f373
Implement Wine side for creating plugin instances
2022-09-11 19:18:03 +02:00
Robbert van der Helm
8c5fb448de
Add stubs for a CLAP host proxy implementation
2022-09-11 19:18:03 +02:00
Robbert van der Helm
64bc31d819
Work around spurious GCC warning w/ string concat
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
1339c20fc1
Implement the Wine side of listing plugins
2022-09-11 19:18:03 +02:00
Robbert van der Helm
9cea175f2a
Globally ignore attribute warnings on Wine side
...
These started happening after Wine 5.12, and it doesn't look like it's
going to change.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
e1efe52cfd
Silence new ignored attributes warning
2022-09-11 19:18:03 +02:00
Robbert van der Helm
d7266a1bc3
Bail when initializing CLAP entry point fails
2022-09-11 19:18:03 +02:00
Robbert van der Helm
1274edf649
Bail when loading incompatible CLAP plugins
...
Based on the version.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
e531334bde
Initialize the CLAP entry point
2022-09-11 19:18:03 +02:00
Robbert van der Helm
d289f6f8cf
Free converted file paths in Xdnd proxy
2022-09-11 19:18:03 +02:00
Robbert van der Helm
ec8028f78c
Allow serializing CLAP plugin factory list message
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
f595a48fbd
Enable CLAP support for plugin groups
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bfe3cab8d2
Add boilerplate for a CLAP bridge
2022-09-11 19:18:03 +02:00
Robbert van der Helm
7a60cf37ea
Fix typos
2022-09-11 19:18:03 +02:00
Robbert van der Helm
6df0741195
Prefix top level VST3 message types
...
CLAP will use a similar structure. Alternatively we could use
namespaces, but while that would solve clashes for the linker with the
way namespaces in C++ work it would still be ambiguous which one is
being referred to just looking at the code.
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
98bb4a019b
Add CLAP whenever mentioning yabridge libs
2022-09-11 19:18:03 +02:00
Robbert van der Helm
687bee34d5
Silence spurious maybe uninitialized warning
2022-06-14 14:47:07 +02:00
Robbert van der Helm
49526b1e7d
Handle effGetProgramNameIndexed as mutually recursive
...
This fixes changing presets in Full Bucket's Ragnarök.
2022-06-14 14:40:17 +02:00
Robbert van der Helm
61b141a0fe
Inhibit event loop after IPluginBase::terminate()
...
This 'fixes' recent Arturia VST3 plugins crashing at the end of a plugin
scan in REAPER.
2022-06-11 22:53:13 +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
3e73d60b78
Only resize VST3 shared memory buffers when needed
...
This is an optimization for the last commit (split into two for
readability's sake).
2022-05-18 18:16:14 +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
5d9029d839
Store process setup data instead of offline flag
...
This is needed later when potentially reallocating the shared memory
during setActive().
2022-05-18 17:40:19 +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
6b22ac6e66
Remove very insightful comment
...
Not quite sure how this got here.
2022-05-03 17:44:18 +02:00
Robbert van der Helm
ffddb06b28
Actually add the new merged host.cpp file
...
Kinda useful.
2022-04-16 23:29:57 +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
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
1fec4c8860
Change the description in the GPL header
2022-04-16 20:37:10 +02:00
Robbert van der Helm
88ac466501
Remove all references to Boost
...
Since we no longer depend on any of it.
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
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
fd25010aca
Replace Boost.Interprocess for audio-shm
2022-04-16 20:37:10 +02:00
Robbert van der Helm
25f298636a
Add now missing include
2022-04-16 20:37:10 +02:00
Robbert van der Helm
03dfc66e30
Remove obselete boost-fix header
2022-04-16 20:37:10 +02:00
Robbert van der Helm
c8bbdc4f54
Get rid of the last uses of Boost.Process
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
75b3cf266d
Add Process functions for detached spawning
2022-04-16 20:37:10 +02:00
Robbert van der Helm
60e4619ef1
Move pid_running() to process.h
2022-04-14 23:42:12 +02:00
Robbert van der Helm
0d6738093c
Add a Boost.Process-like environment builder
...
We can use this with the `exec*e()` family of functions.
2022-04-14 23:42:12 +02:00
Robbert van der Helm
556b0e38f9
Replace Boost.Asio with standalone Asio library
...
We had to add an even hackier hack now to get Boost.Process to
interoperate with Asio's IO contexts. This will be replaced later when
we replace Boost.Process.
2022-04-14 23:42:12 +02:00
Robbert van der Helm
d2d4cf4ea9
Replace most uses of Boost.{Filesystem,Process}
...
With the `ghc::filesystem` dependency from the previous commit. If we
can replace the rest of the Boost.Filesystem dependency then we can get
rid the one nasty runtime dependency we have, and it will make
implementing the chainloading simpler since can reuse more code without
bringing in Boost.
2022-04-14 23:42:12 +02:00
Robbert van der Helm
c528a9ef49
Explicitly handle no and pointer root input focus
...
This will never happen under normal X11. Apparently Crostini isn't
normal X11.
See #167 .
2022-03-05 00:39:01 +01:00