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
Robbert van der Helm
cfa765e4d6
Clean up file path creation
2020-02-24 13:22:03 +01:00
Robbert van der Helm
073f71847d
Fix socket creation
2020-02-10 21:43:05 +01:00
Robbert van der Helm
fd29e0a2d4
Add a Unix domain socket for host->vst events
2020-02-10 21:00:03 +01:00
Robbert van der Helm
309a6cb00e
Add GPLv3 copyright headers
2020-02-10 16:47:43 +01:00
Robbert van der Helm
5fc87d2da4
Rename the wineprefix detection function
...
Since it actually has to produce a complete environment since there's no
way to conditionally set environment variables otherwise.
2020-02-10 15:01:32 +01:00
Robbert van der Helm
25382711da
Add wineprefix detection
2020-02-10 14:56:27 +01:00
Robbert van der Helm
875308bd6f
Answer event queries within the Wine VST host
2020-02-09 20:05:47 +01:00
Robbert van der Helm
73256d0055
Print exceptions thrown during initialization
2020-02-09 17:52:23 +01:00
Robbert van der Helm
b6c9acc57c
Add functions to encapsulate serialization
2020-02-09 17:22:45 +01:00
Robbert van der Helm
b757001435
Add basic communication with a child process
2020-02-08 17:18:39 +01:00
Robbert van der Helm
65996f856a
Add boilerplate for event handling
2020-02-07 17:16:09 +01:00
Robbert van der Helm
7a68654fa2
Handle freeing resources when closing the plugin
2020-02-07 15:04:27 +01:00
Robbert van der Helm
58d749862f
Delegate the plugin functionality to a class
...
This way we can hopefully contain all the manual memory management and
raw pointers somewhat.
2020-02-06 19:01:30 +01:00
Robbert van der Helm
3cda70ec04
Add some more boilerplate
2020-02-03 15:52:16 +01:00