Commit Graph

3065 Commits

Author SHA1 Message Date
Robbert van der Helm 0cce91d460 Reuse output buffers 2020-04-19 15:38:31 +02:00
Robbert van der Helm f235bdf9a1 Fix GUI related data races within Serum 2020-04-19 15:16:51 +02:00
Robbert van der Helm 96541d4830 Don't filter any events
These events would cause crashes when the rest of the functionality
wasn't implemented yet, but it's not needed anymore.
2020-04-18 22:12:19 +02:00
Robbert van der Helm 106d1e3907 Use lock guards for mutexes 2020-04-17 15:37:03 +02:00
Robbert van der Helm f56b8b74b1 Fix regexp for nested comments 2020-04-17 14:28:18 +02:00
Robbert van der Helm 3d605b8940 Change entry point search order
Shouldn't matter at all, but `main` is such a generic and ambiguous name
it should probably be the last option.
2020-04-16 15:42:27 +02:00
Robbert van der Helm 949d41b6aa Fix typo in opcode ignore message 2020-04-16 14:56:08 +02:00
Robbert van der Helm bdb6535947 Simplify GUI updating 2020-04-16 13:28:35 +02:00
Robbert van der Helm 319e9b2b12 Get rid of the main() fallback entry point 2020-04-16 13:23:36 +02:00
Robbert van der Helm dae7384de3 Modify installation oneliner to ignore non-VSTs 2020-04-16 01:41:21 +02:00
Robbert van der Helm 36350c34de Fix casing of the legacy VST entry point name 2020-04-16 01:25:38 +02:00
Robbert van der Helm 1a90b8f7a3 Add a list of plugin specific workarounds 2020-04-14 19:30:03 +02:00
Robbert van der Helm 4d7ce8f3fb Allow overriding the wine prefix manually 2020-04-14 19:16:46 +02:00
Robbert van der Helm 03de09d77f Clean up the editor implementation 2020-04-14 16:51:24 +02:00
Robbert van der Helm 03608870cc Remove now unused Editor reference 2020-04-14 16:10:42 +02:00
Robbert van der Helm eed4677ed3 Fix VstTimeinfo responses and allow null responses
The host is allowed to return a null pointer if it doesn't support the
query.
2020-04-14 15:59:23 +02:00
Robbert van der Helm a2ba001e2f Add todo regarding audioMasterGetTime 2020-04-13 14:55:02 +02:00
Robbert van der Helm bad9916f75 Fix resizing issues with Valhalla DSP plugins 2020-04-13 14:16:32 +02:00
Robbert van der Helm 266674a217 Get rid of all SetWindowPos() calls
This actually resizes the client area, but the experience feels way
better if we just leave it at its maximum size.
2020-04-13 13:54:34 +02:00
Robbert van der Helm 7ee1b0223c Merge branch 'feature/xembed-workaround' 2020-04-12 19:43:05 +02:00
Robbert van der Helm d4dcc85205 Update readme to reflect current UGI situation 2020-04-12 19:42:30 +02:00
Robbert van der Helm c0eafc85fd Re-introduce window resizing while draggin 2020-04-12 19:42:12 +02:00
Robbert van der Helm 3850e39777 Resize the window together with ConfigureNotify
This way we need less hacks and things can't get out of sync.
2020-04-12 19:15:28 +02:00
Robbert van der Helm e1cc342bd0 Work around local<->global coordinate issues
For reparented Wine windows. This is a similar approach as LinVST uses.
2020-04-12 18:24:33 +02:00
Robbert van der Helm c2e62b30ca Strip out everything related to XEmbed
We'll just go with the same workaroud LinVST uses isntead. It's not as
pretty but it does work a lot better.
2020-04-11 14:06:47 +02:00
Robbert van der Helm 5994506d53 Readd the note on Serum's redrawing issues 2020-04-09 18:31:26 +02:00
Robbert van der Helm e8fc990f0b Add a less hacky workaround for the XEmbed issues 2020-04-09 18:21:16 +02:00
Robbert van der Helm 1644d74d8d Don't draw a background
Gets redrawn during resizes while XEmbed is enabled.
2020-04-09 17:46:12 +02:00
Robbert van der Helm b5b3b69f67 Fix typos 2020-04-09 00:40:50 +02:00
Robbert van der Helm aefb3e5b90 Fix typo in entrypoint check 2020-04-09 00:40:00 +02:00
Robbert van der Helm fa045fb770 Delay the XEmbed messages
This works, but we now have the same issues with flickering and resizing
found in some other implementations such as Airwave.
2020-03-30 00:47:46 +02:00
Robbert van der Helm b3254b1c5a Add a note on editor closing speed 2020-03-29 22:21:53 +02:00
Robbert van der Helm effe584373 Actually only initialize the first value 2020-03-28 23:09:05 +01:00
Robbert van der Helm 220f6f4c43 Remove already resolved todo 2020-03-28 23:01:52 +01:00
Robbert van der Helm 8ab5fff914 Fix audioMasterSpecific related segfaults
Not initializing our buffer is fine if something is going to write to
it, but in this case the default way to handle
`audioMasterSpecific` (and any other opcode without specific behaviour)
would be to treat it as a writable string. Since the host wasn't
actually writing to it we would just send some old data from the stack
back which obviously would cause some plugins to crash.
2020-03-28 22:56:48 +01:00
Robbert van der Helm 1fd60bb3ec Mention more specific unimplemented features 2020-03-28 22:56:14 +01:00
Robbert van der Helm 8ec0ed4c3c Allow GUIs to optionally update on a timer
Otherwise plugins can't update their editors when the GUI is being blocked.
2020-03-28 18:03:20 +01:00
Robbert van der Helm d52989acc5 Allow midi events to be handled during interaction 2020-03-28 17:00:12 +01:00
Robbert van der Helm 629fa72e0c Allow for an arbitrary number of midi events
By building the object on the heap in a buffer. I preferred the old
solution but this is more flexible.
2020-03-28 14:07:11 +01:00
Robbert van der Helm 2ea480a09d Mention why dropdowns block the GUI and a solution 2020-03-27 18:35:48 +01:00
Robbert van der Helm d5e125e6b3 Describe the way events are handled in more detail 2020-03-27 17:01:49 +01:00
Robbert van der Helm b23637232b Add a list of issues that still need fixing 2020-03-26 23:25:13 +01:00
Robbert van der Helm cc52c87f34 Properly handle effGet{Input,Output}Properties
Apparently the plugin needs the actual contents of the struct for this
to work.
2020-03-26 16:24:49 +01:00
Robbert van der Helm 0d7a5f10cd Change style of break statements with a block 2020-03-26 15:59:39 +01:00
Robbert van der Helm a85e936059 Reverse engineer IO related opcodes 2020-03-26 15:58:15 +01:00
Robbert van der Helm a3d8c6cb0a Get rid of some old experiments
Forgot to remove these in the last commit.
2020-03-25 23:11:24 +01:00
Robbert van der Helm 161e102113 Properly send XEmbed messages
The good news is that Wine now understands that it's an XEmbed message.
The bad news is that everything's now broken.
2020-03-24 18:50:24 +01:00
Robbert van der Helm 096e36dfdc Handle all dispatch calls from the main thread
Some plugins apparently assume that all events (or at least some
specific ones) are sent from the thread it was created on and will
segfault otherwise. The is the case for Melda plugins.
2020-03-23 23:41:00 +01:00
Robbert van der Helm 5552fc3009 Use the provided plugin instance
Some plugins call `audioMasterIOChanged` during their initialization
when this is still a null pointer.
2020-03-23 23:06:12 +01:00
Robbert van der Helm dc08d8032d Resize windows when needed 2020-03-23 22:57:56 +01:00