Robbert van der Helm
46bc0301af
Move communication.h to communication/vst2.h
2020-12-07 18:28:16 +01:00
Robbert van der Helm
28fe0ecd60
Add [[maybe_unused]] to our constexpr constants
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
9ece1b916e
Rename plugin.cpp to vst2-plugin.cpp
2020-12-07 18:28:16 +01:00
Robbert van der Helm
4291083a46
Rename PluginBridge to Vst2PluginBridge
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
9d40e04a62
Update all references to libyabridge.so
2020-12-07 18:28:16 +01:00
Robbert van der Helm
84d00b568b
Add a more distinct wrapper around chunk data
2020-12-07 02:43:23 +01:00
Robbert van der Helm
7f7da50282
Log processing cycles on verbosity level 2
2020-12-07 02:08:03 +01:00
Robbert van der Helm
23d5567e72
Add a time info caching compatibility option #62
...
This is needed to get good performance out of SWAM Cello until this
issue is fixed by the plugin.
2020-11-30 14:49:02 +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
f0b4232239
Add more debug printing for audioMasterGetTime()
2020-11-23 16:38:46 +01:00
Robbert van der Helm
49900e4753
Fix typo
2020-11-20 17:45:21 +01:00
Robbert van der Helm
28013cb6a7
Note that the effEditIdle issue is fixed in Ardour
...
For the upcoming Ardour 6.4 release:
https://github.com/Ardour/ardour/commit/f7cb1b0b481eeda755bdf8eb9fc5f90a81d2aa01
2020-11-20 15:59:40 +01:00
Robbert van der Helm
21b0f70eda
Rename get_modified_search_path() for clarity
2020-11-20 15:39:29 +01:00
Robbert van der Helm
c69037b649
Always search for host in ~/.local/share/yabridge
2020-11-20 14:24:42 +01:00
Robbert van der Helm
abb2206970
Fix typos in the word 'Boost'
...
Apparently I type very quickly.
2020-11-20 01:15:51 +01:00
Robbert van der Helm
ed5f0c42d9
Fix off-by-one error in speaker arrangement read
...
This is why you don't do pointer arithmetic. Fixes an error message in
Renoise when trying to load a plugin as an effect.
2020-11-14 19:37:04 +01:00
Robbert van der Helm
ff021d0581
Work around editor opening bug in Ardour 6.3
2020-11-13 17:08:41 +01:00
Robbert van der Helm
b93f0ddb8b
Don't depend on the parallel STL
...
We were not linking with TBB, and it's a bit of a waste to require it
just for this one unused function.
2020-11-13 13:42:06 +01:00
Robbert van der Helm
09ba0d887b
Remove old TODO
...
MainContext is now basically just a wrapper with a simple event loop
implementation so it's not really necessary, but having a separate type
for the 'main' IO context still makes everything much clearer.
2020-11-10 15:52:35 +01:00
Robbert van der Helm
b04e1da0d9
Terminate the Wine host after the sockets close
...
The Wine host application would not close properly if the VST host would
suddenly crash or terminate without closing all plugins.
2020-11-08 21:49:52 +01:00
Robbert van der Helm
9300648067
Fix typo in vst2.cpp
2020-11-08 16:07:57 +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
5486d91201
Fix style
2020-11-07 23:17:00 +01:00
Robbert van der Helm
acdbcaca6a
Fix plugin host fallover behaviour
...
GroupHost::running() would sometimes cause plugins to get terminated
prematurely when connecting to another plugin's group host process since
the plugin's own group host process has exited.
2020-11-07 23:11:49 +01:00
Robbert van der Helm
d2500ff31d
Get rid of message loop skipping and EditorOpening
...
This special behaviour is no longer needed now that event handling is
fully concurrent and the Win32 message loop no longer blocks
`dispatch()` calls.
2020-11-07 22:06:58 +01:00
Robbert van der Helm
a0c0a86e2c
Drop the separate effProcessEvents socket
...
Now that event handling is fully concurrent and thus no longer gets
blocked by the Win32 message loop.
2020-11-07 20:54:33 +01:00
Robbert van der Helm
42032c5c2d
Fix the old accumulative process() function
2020-11-07 18:17:21 +01:00
Robbert van der Helm
23cd2dd193
Bump the event loop handling rate up to 60 Hz
...
This will also cause plugins to update their editors at 60 FPS. This was
kept at a lower value for performance reasons, but since the message
loop now no longer blocks event handling we can safely increase this.
This will double the amount of resources spent on drawing, but since
audio processing in a real world scenario almost never utilizes all
cores anyways this should not be an issue.
2020-11-07 00:30:12 +01:00
Robbert van der Helm
36f6e93216
No longer track whether the GUI is active
...
This ended up being unnecessary.
2020-11-06 17:54:42 +01:00
Robbert van der Helm
5087b49cc4
Simplify EventHandler::receive_events
2020-11-06 17:49:16 +01:00
Robbert van der Helm
1c7e866609
No longer return a lambda in passthrough_event()
...
Now that it's no longer used directly this is no longer needed, and it's
much clearer without the lambda.
2020-11-06 17:17:36 +01:00
Robbert van der Helm
c285ba0bd2
Mention passthrough_event() in Event*Payload
2020-11-06 17:02:13 +01:00
Robbert van der Helm
ba6381e3ae
Rename EventHandler::{send,receive} to *_event(s?)
...
Since it does something way more involved than
`SocketHandler::{send,receive_multi}`, and that makes it a bit confusing
if you don't already know about that (and even if you do).
2020-11-01 12:01:50 +01:00
Robbert van der Helm
fa01ac843b
Replace all non-group sockets with SocketHandler
...
This greatly reduces the amount of boilerplate and potential for error.
2020-10-30 13:30:08 +01:00
Robbert van der Helm
42792a883d
Add EventHandler-like wrapper for simple sockets
...
This will greatly reduce boilerplate.
2020-10-30 12:58:31 +01:00
Robbert van der Helm
3788c1226b
Take buffers by reference in {read,write}_object()
...
This was how it originally worked (and how it should work, since
otherwise there's no reason to reuse buffers), but for some reason this
got removed at some point.
2020-10-30 12:52:02 +01:00
Robbert van der Helm
9633a70745
Use 'concurrent' instead of 'asynchronous'
...
While asynchronous is technically also correct, this makes it a bit
clearer what's going on.
2020-10-29 20:49:46 +01:00
Robbert van der Helm
08cd7cf8ab
Join Win32Threads on destruct, like std::jthread
2020-10-28 21:11:34 +01:00
Robbert van der Helm
dd9957159a
Move the sockets after the threads in Vst2Bridge
...
This way the sockets can be destroyed before the threads, and we can
safely wait for the threads to shut down. I initially had Win32Thread
imitate std::jthread's join-on-destruct, but that was causing group
processes to hang. Now we can safely add that back again, and this will
fix some spurious segfaults during plugin scans when using plugin groups
containing a massive amount of plugins.
2020-10-28 21:05:14 +01:00
Robbert van der Helm
d81759c929
Add an explicit wait to our thread wrapper
2020-10-28 20:40:19 +01:00
Robbert van der Helm
93e01dacef
Explicitly close all sockets on shutdown
...
This way we're sure to break out of any blocking loops.
2020-10-28 20:38:01 +01:00
Robbert van der Helm
bece654c2d
Rename PluginContext to MainContext for clarity
2020-10-28 01:02:56 +01:00
Robbert van der Helm
fac820c25a
Execute all non-unsafe opcodes on calling thread
...
This will require more testing of course, but I think it should be safe.
This would increase the potential maximal throughput in group hosts
significantly.
2020-10-27 23:18:59 +01:00
Robbert van der Helm
eb8d4ae1d8
Fix Win32Thread not capturing by move
...
std::function does not allow non-movable lambdas, so capturing by move
doesn't work there. And the old solution of course has issues with
dangling pointers (but because this is C++ the compiler still thinks
it's A-Ok).
2020-10-27 22:53:59 +01:00
Robbert van der Helm
28886e7073
Replace all threads with Win32Thread in Wine host
2020-10-27 18:29:38 +01:00
Robbert van der Helm
bafc36614b
Properly forward arguments in Win32Thread
2020-10-27 18:28:23 +01:00
Robbert van der Helm
a6b5951d81
Replace std::jthread with Win32Thread everywhere
2020-10-27 17:38:13 +01:00