Commit Graph

232 Commits

Author SHA1 Message Date
Robbert van der Helm 67c3e151d8 Choose a host application by parsing PE headers
Now yabridge can load both 64 and 32 bit plugins without having to
specify which are which.
2020-04-30 18:45:33 +02:00
Robbert van der Helm c051123796 Improve the look of the enabled features list 2020-04-30 16:44:26 +02:00
Robbert van der Helm dcc1a34a41 Use a better check for the 32-bit host 2020-04-30 15:09:13 +02:00
Robbert van der Helm 5958f8058a Print out a list of enabled compile time features 2020-04-30 13:40:55 +02:00
Robbert van der Helm 79e8a37c39 Simplify the 32-bit mode detection 2020-04-30 12:59:11 +02:00
Robbert van der Helm 6ca7eae16a Mention 32-bit support in the readme 2020-04-30 12:48:03 +02:00
Robbert van der Helm 2e9adbe310 Always write message sizes in 64-bit integers
This will make sure the sizes match on both the 32 and 64 bit host
applications. This way only the 32-bit application will have to convert
between 32 and 64 bit integers.
2020-04-30 12:32:27 +02:00
Robbert van der Helm e33f418206 Add a notice when the host is in 23-bit mode 2020-04-29 19:12:29 +02:00
Robbert van der Helm 027d9a96d5 Always use 64-bit pointer types for serialization
This way the 32-bit host can cast them down to 32-bit integers when
needed, and the serialization pipeline can stay fixed. We're not passing
any pointers directly to the other application anyway so this should be
safe!
2020-04-29 17:17:33 +02:00
Robbert van der Helm c9060e984d Add another flag for enabling a bit bridge build 2020-04-29 16:55:47 +02:00
Robbert van der Helm 7ce42e4306 Add support for effGetMidiKeyName
Not a lot of plugins use it, but it's really nice to have when they do.
2020-04-28 12:54:36 +02:00
Robbert van der Helm fb8fe035d8 Clean up chunk buffer retrieval for effGetChunk 2020-04-28 12:48:31 +02:00
Robbert van der Helm ed9428da83 Fix chunk size formatting in log messages 2020-04-28 12:28:41 +02:00
Robbert van der Helm e414c1a341 Fix screen resolution detection 2020-04-28 12:22:56 +02:00
Robbert van der Helm 641351d525 Also filter out the event with opcode 52
Not sure what this is, but it's called by Bitwig every time a buffer is
being processed.
2020-04-28 12:04:09 +02:00
Robbert van der Helm 8adb944445 Use maximum display resolution for the window size
Instead of it being hardcoded to 1440p.
2020-04-28 11:47:39 +02:00
Robbert van der Helm e515547d5a Add a todo on another event to filter 2020-04-27 18:56:14 +02:00
Robbert van der Helm 4b84f663ab Always run the event loop, fixing processing issue
Also remove any special `effEditIdle` handling.

Apparently plugins rely on the message loop for their internal tasks,
even for things that have nothing to do with GUIs, such as deferring
initialization.
2020-04-27 18:53:06 +02:00
Robbert van der Helm e69d08c503 Add assertion for bytes written while sending
To avoid problems like 13dcb2f74a in the
future.
2020-04-27 18:00:01 +02:00
Robbert van der Helm 7f0a8c8efd Extend the midi event lock
This should not make any difference, but if this event ever gets called
at the same time as the processing then this at least won't cause any
issues with plugins that are not thread safe themselves.
2020-04-27 16:53:44 +02:00
Robbert van der Helm f0d16c4afb Add note on potentially misbehaving type detection 2020-04-27 16:42:04 +02:00
Robbert van der Helm 13dcb2f74a Fix handling of large chunk data 2020-04-27 16:41:55 +02:00
Robbert van der Helm 527db1f49f Use different types for strings and binary data 2020-04-27 00:51:36 +02:00
Robbert van der Helm bdd83de7a9 Strip the 'yabridge-' prefix from log messages 2020-04-27 00:50:28 +02:00
Robbert van der Helm af6ae2c2ad Fix capitalization of the word MIDI 2020-04-26 18:19:10 +02:00
Robbert van der Helm 85afd4107e Extend the lifetime of MIDI events, fixing Kontakt 2020-04-26 18:17:30 +02:00
Robbert van der Helm aeac8e87fa Implement effGetParameterProperties 2020-04-26 16:53:34 +02:00
Robbert van der Helm aee890fbf6 Remove the now unused ability to skip opcodes
If this is needed again in the future (it shouldn't be), then it should
be re-implemented using a separate function.
2020-04-26 16:30:11 +02:00
Robbert van der Helm 0ce9c1e3a4 Add another less verbose debug level 2020-04-26 15:42:01 +02:00
Robbert van der Helm b17c413de4 Add the generated version header to the file list
Otherwise it may not be generated yet on first build.
2020-04-26 14:29:08 +02:00
Robbert van der Helm 5ce20be9d9 Allow storing and loading of larger chunks 2020-04-25 17:35:02 +02:00
Robbert van der Helm 8bb1bdeadb Change the default return value for effClose 2020-04-25 17:02:41 +02:00
Robbert van der Helm 631e82f2ad Print the version and any VCS info at startup 2020-04-25 16:14:22 +02:00
Robbert van der Helm 4a1133146a Generate a header containing git version info
It contains the last annotated tag, and possibly also the number of
commits since then and the hash of the last commit.
2020-04-25 16:14:14 +02:00
Robbert van der Helm 0efdd1a790 Add missing license headers 2020-04-24 15:41:18 +02:00
Robbert van der Helm d0c8d8a2e7 Clean up Win32 thread API usage using RAII 2020-04-24 15:40:44 +02:00
Robbert van der Helm 9dfa83df20 Change todo regarding drag-and-drop 2020-04-23 23:16:31 +02:00
Robbert van der Helm 060712ee4d Remote the WS_EX_ACCEPTFILES
It doesn't matter, but we shouldn't be the window accepting drag and
drop operations.
2020-04-23 23:13:55 +02:00
Robbert van der Helm 259d23ec57 Add support for legacy plugins with only process()
By emulating the behavior of `processReplacing()`. Not that there should
still be any plugins around that don't support processReplacing.
2020-04-22 16:57:18 +02:00
Robbert van der Helm 2e36c64796 Return a 0 for skipped events
Not that any events get skipped at the moment.
2020-04-21 18:13:22 +02:00
Robbert van der Helm 27ca18869b Change variable names for consistency 2020-04-21 17:02:28 +02:00
Robbert van der Helm d2bf5c35a4 Fix hanging when closing the editor 2020-04-21 16:56:36 +02:00
Robbert van der Helm 421ed21901 Get rid of now no longer needed synchronisation
This was mostly a workaround to get Serum to not crash when audio was
being processed during a specific point of its `WM_PAINT` message
handler. This is no longer needed when using `CreateThread` instead of
`std::thread`.
2020-04-20 23:36:17 +02:00
Robbert van der Helm 86974ebe2d Fix typo 2020-04-20 23:25:01 +02:00
Robbert van der Helm 357dec315a Swap out std::thread for CreateThread
Not entirely sure why, but this gets rid of the impossible to debug data
races when Serum's GUI is being repainted while another thread is
calling `processReplacing`. This is possibly because std::thread does
not respect Windows calling conventions and CreateThread does.
2020-04-20 23:24:39 +02:00
Robbert van der Helm 1a6a094c2b Fix reopening closed editor windows 2020-04-19 20:36:39 +02:00
Robbert van der Helm f29a859713 Don't put socket endpoints in a directory
This would only leave an empty directory behind.
2020-04-19 17:05:50 +02:00
Robbert van der Helm ed3b319f4f Clean up socket endpoint files 2020-04-19 17:00:17 +02:00
Robbert van der Helm b44d98b4c7 Mention more Wine debugging strategies 2020-04-19 16:38:09 +02:00
Robbert van der Helm 1f56617abe Remove more old todos 2020-04-19 16:17:18 +02:00