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
Robbert van der Helm
b13d7d554d
Prevent rare race conditions with get/setParameter
...
I've never seen it happen, but in theory they could be called
simultaneously.
2020-04-19 16:14:22 +02:00
Robbert van der Helm
9f3ed85208
Replace std::monostate with std::nullptr_t
...
This represents the underlying meaning better since we're mostly dealing
with the `data` void pointer argument.
2020-04-19 16:05:37 +02:00
Robbert van der Helm
717ffb719d
Remove resolved todo
2020-04-19 16:05:37 +02:00
Robbert van der Helm
6025efb0fc
Fix grammar in comments
2020-04-19 15:46:32 +02:00
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
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
36350c34de
Fix casing of the legacy VST entry point name
2020-04-16 01:25:38 +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
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
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
effe584373
Actually only initialize the first value
2020-03-28 23:09:05 +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
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
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