Robbert van der Helm
f2597ca0b9
Prevent race conditions from simultaneous dispatch calls
2020-03-14 18:11:35 +01:00
Robbert van der Helm
5f584323c2
Monkey patch async pipes foor Boost 1.72
...
This is an simple workaround and it's much more practical than having to
downgrade Boost since that breaks any application that links to it.
2020-03-14 16:49:38 +01:00
Robbert van der Helm
bb6ffe4891
Fix crashes on startup in Bitwig's bridge
2020-03-12 23:17:14 +01:00
Robbert van der Helm
a14d915ee7
Better describe Wine process shutdown
2020-03-12 21:22:37 +01:00
Robbert van der Helm
28b3800fb4
Force-stop the io_context manually
...
Apparently this will cause the io_context to just abandon all of its
work and not throw any exceptions.
2020-03-11 21:48:53 +01:00
Robbert van der Helm
05de100d3e
Disable GUI related events
2020-03-11 17:27:34 +01:00
Robbert van der Helm
1ee0ffef8b
Wrap event result data in an std::variant
...
Gets a bit more complicated this way, but this avoids having to use
string to manually serialize and deserialize arbitrary objects.
The new options for `AEffect` and `VstTimeInfo` structs are not yet
used.
2020-03-11 15:52:56 +01:00
Robbert van der Helm
aa31665666
Move event handling its own file
2020-03-11 14:42:09 +01:00
Robbert van der Helm
c86ad23703
Get rid of old todos
2020-03-11 14:32:47 +01:00
Robbert van der Helm
7f2eab476d
Clarify the return value override
2020-03-11 01:12:40 +01:00
Robbert van der Helm
5cdfb90a9b
Implement audioMasterGetTime,fixing playback
...
Midi and audio now work!
2020-03-11 00:34:58 +01:00
Robbert van der Helm
5528f0a496
Allow the bridge to shut down gracefully-ish
2020-03-10 22:47:40 +01:00
Robbert van der Helm
6fc2f70279
Allow plugins to clean up after themselves
2020-03-10 22:00:56 +01:00
Robbert van der Helm
d2febcfa2b
Print the socket endpoint during startup
2020-03-10 15:53:11 +01:00
Robbert van der Helm
af94fe80d8
Filter out unsupported aduioMaster* events
...
Not sure if this is the correct approach, but these seem to not really
do anything and they sometimes crash the host.
2020-03-10 14:21:27 +01:00
Robbert van der Helm
54966a36f2
Implement effSetChunk
2020-03-10 12:57:53 +01:00
Robbert van der Helm
e89ddfe7b1
Correct reading chunks
...
They're not actually stored in `data`, but in `*data`.
2020-03-10 00:36:34 +01:00
Robbert van der Helm
7fcf5abaf2
Handle effGetChunk correctly
2020-03-09 23:53:36 +01:00
Robbert van der Helm
7e75f913fa
Add the ability to override writing back data
2020-03-09 23:36:54 +01:00
Robbert van der Helm
96d0428d56
Factor out the serializer for event payloads
2020-03-09 21:44:44 +01:00
Robbert van der Helm
8dad15b597
Always use resizable buffers
...
It was a slight problem for audio buffers, but events can apparently
also have an arbitrary size because of chunks.
2020-03-09 21:32:49 +01:00
Robbert van der Helm
adf33e84a8
Use a template argument for serializing behaviour
...
This keeps it a bit more readable.
2020-03-09 20:13:08 +01:00
Robbert van der Helm
40142f801e
Pass throug the VstEvents struct
2020-03-08 20:29:40 +01:00
Robbert van der Helm
1434f5855b
Fix wine forward initialization order
...
`io_context.run()` returns if there is no more work to do, so it should
be called only after we give it something to do.
2020-03-08 17:59:47 +01:00
Robbert van der Helm
f1901de62b
Add an updated version of the aeffectx.h header
...
From the Audacity project.
2020-03-08 13:48:09 +01:00
Robbert van der Helm
6373c38663
Correct VeSTige header name to aeffectx.h
2020-03-08 13:27:17 +01:00
Robbert van der Helm
b67a3546b7
Remove redundant information from logging
2020-03-07 23:40:09 +01:00
Robbert van der Helm
3bfb6cf38b
Disable logging on the Wine side
...
It was incredibly verbose, and for debugging the networking part you
could still use stdout.
2020-03-07 23:36:30 +01:00
Robbert van der Helm
35b0174b9e
Add log messages everywhere
2020-03-07 23:10:07 +01:00
Robbert van der Helm
ee75dcc7e6
Add specific logging functions for all the events
2020-03-07 22:29:21 +01:00
Robbert van der Helm
280d9fcd2b
Print Wine STDOUT and STDERR through the logger
2020-03-07 21:43:04 +01:00
Robbert van der Helm
50172aefbb
Write basic log messages
2020-03-07 17:57:56 +01:00
Robbert van der Helm
4bcb77defa
Add logging prefixes based on the plugin
2020-03-07 15:39:45 +01:00
Robbert van der Helm
1d2c3d4d75
Add the base for a debug log
2020-03-06 15:40:15 +01:00
Robbert van der Helm
46b08530ae
Pass through processReplacing
...
Should work, almost does.
2020-03-05 22:18:06 +01:00
Robbert van der Helm
bea600a13a
Pass through getParameter and setParameter
2020-03-05 17:00:45 +01:00
Robbert van der Helm
814a3b40b5
Use a thread for dispatch events
2020-03-05 16:29:59 +01:00
Robbert van der Helm
6c4dca151b
Also add a proxy function for processReplacing
2020-03-05 15:31:15 +01:00
Robbert van der Helm
4f29a98cea
Pass through the plugin's AEffect struct
2020-03-05 14:55:32 +01:00
Robbert van der Helm
cb6ad5f043
Rename both Bridge classes to differentiate
...
Switching between them became a bit confusing.
2020-03-01 01:17:15 +01:00
Robbert van der Helm
5ace761ce9
Pass callbacks back through to the host
...
Instead of using std::thread this can be done cleaner using recursive
async read functions. Everything withing those functions should of
course still remain synchronous.
2020-03-01 01:06:35 +01:00
Robbert van der Helm
ca713ada4e
Factor out sending and passing through events
...
Since we can use this both for the dispatch function and for host
callbacks.
2020-03-01 00:19:27 +01:00
Robbert van der Helm
bdaa1bbeba
Move all functionality to the bridge class
2020-02-29 00:26:21 +01:00
Robbert van der Helm
cd5b294952
Replace msgpack with bitsery
2020-02-26 22:17:05 +01:00
Robbert van der Helm
c2e102969e
Rename parameters for clarity
2020-02-26 16:52:54 +01:00
Robbert van der Helm
3d12489e58
Pass all events to the plugin
2020-02-24 19:25:26 +01:00
Robbert van der Helm
b04353e88c
Get rid of the STDIN/STDOUT redirections
...
Not needed anymore.
2020-02-24 16:45:20 +01:00
Robbert van der Helm
5c946fff6a
Communicate over the socket instead of STDIN
2020-02-24 16:43:04 +01:00
Robbert van der Helm
df47104297
Connect to the unix socket from the Wine VST host
2020-02-24 15:46:22 +01:00
Robbert van der Helm
a716072272
Pass the paths to the VST plugin .dll and socket
2020-02-24 13:50:47 +01:00