3099 Commits

Author SHA1 Message Date
Robbert van der Helm e7e1b26455 Add the base for GUI handling
Still need to embed the opened window into the window provided by the
host.
2020-03-17 01:51:02 +01:00
Robbert van der Helm 44a953c2d2 Change argument order for event handling functions 2020-03-17 00:53:09 +01:00
Robbert van der Helm cdc2402bc8 Add a wrapper around the Win32 window API 2020-03-17 00:45:57 +01:00
Robbert van der Helm c135fce3a6 Remove todo about multiout and sidechain inputs
Apparently this is the correct behavior. SOme other VST bridges simply
did not properly support this.
2020-03-16 15:51:03 +01:00
Robbert van der Helm a01319e507 Allow plugins to crash during shutdown
Sounds weird, but there are a small number of plugins that crash during
shutdown because they call functions not yet supported by Wine. Since
the host will have already saved all state before calling `effClose`
this should not cause any problems.
2020-03-16 14:14:55 +01:00
Robbert van der Helm 7172a42c67 Prevent data races in host callbacks 2020-03-16 13:58:49 +01:00
Robbert van der Helm 23ad05aba1 Better document the use-winedbg option 2020-03-16 13:45:00 +01:00
Robbert van der Helm 3b91e23fda Minor corrections in the readme 2020-03-15 17:44:07 +01:00
Robbert van der Helm 1066e0c5e4 Mention that all plugins somehow support multiout 2020-03-15 17:42:12 +01:00
Robbert van der Helm 10c517401c Stop flood of empty lines on plugin crash 2020-03-15 17:26:01 +01:00
Robbert van der Helm 138fa9eb31 Add winedbg support behind a feature flag
I had something similar saved as a stash since I did not want to make
things more complicated by adding feature flags, but this should be
fine.
2020-03-15 16:30:25 +01:00
Robbert van der Helm 454cef76e7 Add todo regarding concurrency 2020-03-14 18:29:49 +01:00
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 37b0e72d4a Increase the number of permitted midi events 2020-03-12 23:17:42 +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 9554d7eebd Mention that MPE does work! 2020-03-12 22:53:42 +01:00
Robbert van der Helm a14d915ee7 Better describe Wine process shutdown 2020-03-12 21:22:37 +01:00
Robbert van der Helm bce45a244d Mention a possible way to debug the host 2020-03-12 20:58:51 +01:00
Robbert van der Helm d5d3164ae3 Mention more things to check in the TODOs 2020-03-12 20:24:12 +01:00
Robbert van der Helm a21af802b3 Mention that the GUI related opcodes are disabled 2020-03-12 17:14:43 +01:00
Robbert van der Helm 3eb5e3de02 Mention how to attach a debugger 2020-03-12 17:01:25 +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 9de9250631 Mention that Bitwig's bridge mode doesn't work 2020-03-11 16:58:55 +01:00
Robbert van der Helm 8464706336 Handle AEffect object updates 2020-03-11 16:33:44 +01:00
Robbert van der Helm ea8feb07a9 Reorder arguments 2020-03-11 16:08:09 +01:00
Robbert van der Helm 6ab7af10f9 Use the fancy new variant instead of strings 2020-03-11 16:04:49 +01:00
Robbert van der Helm 8c187e3ca5 Use const references for logging paylaod data 2020-03-11 15:58:56 +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 6fd878ed33 Further describe the architecture 2020-03-11 13:15:03 +01:00
Robbert van der Helm 21e0def6b2 Update the todos 2020-03-11 12:37:22 +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 90cd3a5751 Actually call processReplacing instead of process... 2020-03-10 23:25:03 +01:00
Robbert van der Helm c8ebb76b88 Clean up the TODOs section 2020-03-10 23:12:56 +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 2bd33f1322 Print ignored opcodes 2020-03-10 22:15:11 +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 07d488a4f3 Fix deserialization errors when reading chunks
Forgot to also increase this limit
2020-03-10 14:16:40 +01:00
Robbert van der Helm 84480c5d35 Don't print long binary strings 2020-03-10 14:07:56 +01:00
Robbert van der Helm e6a93d622d Add todo about host callback crashes 2020-03-10 13:48:26 +01:00
Robbert van der Helm 8f08146db8 Mention variable size advantage of UDS over SHM 2020-03-10 13:00:28 +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