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
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
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
2ea480a09d
Mention why dropdowns block the GUI and a solution
2020-03-27 18:35:48 +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
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
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
7172a42c67
Prevent data races in host callbacks
2020-03-16 13:58:49 +01:00
Robbert van der Helm
8464706336
Handle AEffect object updates
2020-03-11 16:33:44 +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
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
2bd33f1322
Print ignored opcodes
2020-03-10 22:15: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
7e75f913fa
Add the ability to override writing back data
2020-03-09 23:36:54 +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
40142f801e
Pass throug the VstEvents struct
2020-03-08 20:29:40 +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