Commit Graph

3093 Commits

Author SHA1 Message Date
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
Robbert van der Helm d2be82285a Make sure messages can't get out of order 2020-03-23 22:33:28 +01:00
Robbert van der Helm 5d1051a00c Fix plugins not updating with dropdowns 2020-03-23 22:19:49 +01:00
Robbert van der Helm c046f9fe7b Implement the rest of the XEmbed protocol 2020-03-21 17:24:22 +01:00
Robbert van der Helm 2e44de6f49 Add a function for sending XEMBED messages 2020-03-21 16:32:39 +01:00
Robbert van der Helm 50f26d1238 Implement part of the XEmbed protocol 2020-03-20 22:56:04 +01:00
Robbert van der Helm 4ae1f03e4c Simplify GUI event handling 2020-03-19 21:37:16 +01:00
Robbert van der Helm f1f7523248 Make the GUI embedding work
There's still a few things that need fixing.
2020-03-19 17:29:30 +01:00
Robbert van der Helm eebfceff56 Implement the rest of the GUI events
The GUI is still not updating though.
2020-03-19 00:58:03 +01:00
Robbert van der Helm 168568ed51 Move the wrapper around the dispatch function 2020-03-18 23:51:53 +01:00
Robbert van der Helm ede14ece3b Add the start of reparenting the editor windows 2020-03-17 23:04:09 +01:00
Robbert van der Helm f3bf7879c6 Finish renaming win32-editor.h 2020-03-17 22:13:30 +01:00
Robbert van der Helm f43c0bc78b Fix xcb include 2020-03-17 22:11:57 +01:00
Robbert van der Helm 70ebb5d243 Replace Xlib with xcb 2020-03-17 22:08:44 +01:00
Robbert van der Helm e2d8c0883f Rename win32-editor.h -> editor.h
Since I no longer intent to do separate X11 handling on the plugin side
2020-03-17 21:37:53 +01:00
Robbert van der Helm 1c17513936 Move all window handling to the Wine host side 2020-03-17 21:31:19 +01:00
Robbert van der Helm d0a86887d3 Explicitely handle editor opening failures 2020-03-17 20:54:49 +01:00
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