Commit Graph

116 Commits

Author SHA1 Message Date
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 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 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 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 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 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 ec96064cc1 Implement another EventPayload for binary data 2020-03-09 23:24:10 +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 10b6121cb8 Fix deserialization format of events
Apparently it uses VLAs, but in a very sneaky way.
2020-03-09 17:20:15 +01:00
Robbert van der Helm 69008e97a4 Serialize midi events using vectors
Easier than to implement C-style arrays in Bitsery and this way we also
don't have to worry about cleanup.

Serum still segfaults with multiple events so something is still off.
2020-03-09 15:31:35 +01:00
Robbert van der Helm be11364c58 Remvoe the bitsery c-array attempt
I'll just use vectors and a thin wrapper instead, shouldn't have much
overhead.
2020-03-09 14:42:11 +01:00
Robbert van der Helm 6b30100611 Move the derived bitsery extension to bitsery::ext
To make it easier to move it over later and to make the implementation
slightly less verbose.
2020-03-09 12:39:06 +01:00
Robbert van der Helm cd8d12094b Rename the temporary pointer object extension
This should make it clearer at a glance that it's not the original
implementation.
2020-03-09 12:32:45 +01:00
Robbert van der Helm 765dcf01e3 Add a file for a c-array bitsery extension 2020-03-08 23:03:10 +01:00
Robbert van der Helm 2fda0bc9f2 Add missing copyright headers 2020-03-08 22:34:53 +01:00
Robbert van der Helm 40142f801e Pass throug the VstEvents struct 2020-03-08 20:29:40 +01:00
Robbert van der Helm c5ea1e5153 Add serialization for midi events 2020-03-08 20:02:24 +01:00
Robbert van der Helm 5523871fd8 Pass a marker struct instead of an empty array 2020-03-08 18:51:16 +01:00
Robbert van der Helm d8e39ed16a Fix returning buffers from std::visit
Last time I tried it references somehow didn't work.
2020-03-08 18:40:16 +01:00
Robbert van der Helm 2326a92c62 Improve event passing clarity 2020-03-08 18:33:01 +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 ff89d12c1a Use std::avriant to encode event payloads
It's a bit more complicated this way, but nwo we can easily add support
for the opcode specific structs.
2020-03-08 17:47:09 +01:00
Robbert van der Helm d434bcf682 Move data types and serializers to their own file 2020-03-08 14:32:15 +01:00
Robbert van der Helm b46488ac28 Add a description of communication.h 2020-03-08 14:25:15 +01:00
Robbert van der Helm 97a68e3fb0 Add debug labels for new dispatch opcodes 2020-03-08 13:52:55 +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