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