Commit Graph

2186 Commits

Author SHA1 Message Date
Robbert van der Helm fe61a28524 Print a distinct error when mmap() returns EAGAIN
As mentioned in #119.
2021-07-18 23:13:42 +02:00
Robbert van der Helm 3c14f0391b Move memory mapping setup to a function
So we don't need to repeat this twice.
2021-07-18 22:40:04 +02:00
Robbert van der Helm a02dcbdb5a Fix an...interesting spelling correction
I might have accidentally hit `z=` at some point.
2021-07-18 19:48:16 +02:00
Robbert van der Helm 28ab46e3c1 Explicitly check for CF_HDROP
We should of course not expect all global memory to be a HDROP, oops.
Apparently REAKTOR sometimes uses the drag-and-drop system for its own
internal data.
2021-07-18 19:20:44 +02:00
Robbert van der Helm 0d02951886 Build a 32-bit version of yabridge on the CI
Specially for @AVLinux. We currently don't build a 32-bit version of
yabridgectl though, so you'd still need that if you want to use yabridge
on an _actual_ 32-bit system.
2021-07-18 15:27:07 +02:00
Robbert van der Helm 103b2cb46a Remove duplicate comments in the CI definition 2021-07-18 15:26:40 +02:00
Robbert van der Helm d99f571c05 Treat EACCES for pid_running() as alive
When the user has some sort of hardening going on, we might not be able
to read the Wine process's memory. In that case this check would return
`false` even though the process is still running. To combat this, we
should explicitly check for `EINVAL` which is returned when the file
doesn't exist at all or when it's a broken 'symlink' (even though it
isn't really a symlink).
2021-07-18 14:54:12 +02:00
Robbert van der Helm 4fc683188b Use std::this_thread::sleep_for instead of usleep
This is a bit cleaner.
2021-07-18 14:14:23 +02:00
Robbert van der Helm 8c285688e8 Remove unnecessary function call 2021-07-17 22:57:50 +02:00
Robbert van der Helm f75cdc9019 Mention FrozenPlain Obelisk in the changelog 2021-07-17 22:02:25 +02:00
Robbert van der Helm 5f5a7bbdd2 Only call ftruncate() when size > 0
Either Boost or Linux really doesn't like it if you ftruncate() shared
memory down to 0 bytes.
2021-07-17 22:01:29 +02:00
Robbert van der Helm f43e9c2153 Only consider host windows with WM_STATE set
This is the same way (minus the mapping check part) that `xprop` and
`xwininfo` filter windows when clicking on them. REAPER's toplevel
window apparently doesn't process any keyboard input when the mouse
cursor is located outside of that window.
2021-07-17 21:05:27 +02:00
Robbert van der Helm b99f03cf64 Rename topmost_window to host_window
Since apparently to keep REAPER happy we shouldn't take the _very_
topmost window.
2021-07-17 19:11:29 +02:00
Robbert van der Helm e4f2e8c27f Add a separate audio thread mutual recursion stack
This should fix #118 without breaking our _other_ workaround from
yabridge 3.4.0 to fix the issue where a plugin would freeze if it would
try to resize itself while at the same time it sent parameter changes
from the audio thread. (and both of these issues of course are caused by
the same JUCE bug)
2021-07-15 21:05:36 +02:00
Robbert van der Helm f5ce56e180 Reword changelog 2021-07-15 16:11:41 +02:00
Robbert van der Helm ae454be4b5 Bump to version 3.4.0 3.4.0 2021-07-15 16:06:15 +02:00
Robbert van der Helm 22fb74bcfa Remove mention of Wine->X11 DnD not working
Because now it does work!
2021-07-15 16:05:20 +02:00
Robbert van der Helm 1e0cf33eba Use a recursive mutex for the Melda deadlock fix
This seems safer with the whole mutual recursion thing.
2021-07-15 16:01:47 +02:00
Robbert van der Helm 5f7fb2e2c3 Work around thread safety issue in Melda plugins
This is super difficult to trigger on purpose, but I did run into it at
least once just now so it seems like a good idea to at least make sure
that this doesn't happen.
2021-07-15 15:45:15 +02:00
Robbert van der Helm 6b3f593bdb Mention Renoise's VST3 editor window sizing issues 2021-07-15 15:07:08 +02:00
Robbert van der Helm f02341e77f Fix focus handling when reopening REAPER FX window
REAPER initializes the plugin's editor first before reparenting the
parent window to the FX window, so our `topmost_window` didn't actually
refer to the FX window.
2021-07-15 14:21:50 +02:00
Robbert van der Helm ce1cf41f45 Mention downgrading to Wine Staging 6.4 once more
The iZotope Rx plugins apparently freeze during shutdown on Wine Staging
6.12.
2021-07-15 12:21:52 +02:00
Robbert van der Helm e26c300d81 Update the tested DAW versions 2021-07-15 11:52:02 +02:00
Robbert van der Helm 0250d62173 Reword changelog, again 2021-07-14 19:37:16 +02:00
Robbert van der Helm 0c816b0046 Only ignore -Wmaybe-uninitialized on GCC
An ifdef sounds like a better approach than ignoring two additional
warnings.
2021-07-14 17:18:44 +02:00
Robbert van der Helm f292158889 Silence some more clangd warnings 2021-07-14 17:11:27 +02:00
Robbert van der Helm a58005252a Mention the new audio buffers in architecture.md 2021-07-14 17:02:20 +02:00
Robbert van der Helm 8b870a51b0 Remove unnecessary XDND proxy call
This was left over from the original implementation, before we had this
smart pointer-singleton hybrid thing. There's already a handle stored
inside of `Editor`.
2021-07-14 16:41:24 +02:00
Robbert van der Helm 764eb41da9 Remove fixme about Wine deleting windows twice
This should have been fixed as of yabridge 3.2.0 by adding doing a
reparent with a last second flush. Or at least, I haven't heard any
reports about this still being an issue.
2021-07-14 16:35:51 +02:00
Robbert van der Helm 784593df5c [yabridgectl] Remove explicit fallback
This was already handled by appending this to the `$PATH`.
2021-07-14 15:10:03 +02:00
Robbert van der Helm 9b70d4b6d6 Reword changelog 2021-07-14 12:38:03 +02:00
Robbert van der Helm 591b2b9ceb Also warn on version mismatch for VST2 plugins 2021-07-13 22:24:02 +02:00
Robbert van der Helm 5fc7acccd1 Show a notification on version mismatch
Between the plugin and the Wine plugin host application.
2021-07-13 22:14:31 +02:00
Robbert van der Helm 4013aea63a Include the configuration as a dependency
Apparently this wasn't even supposed to work, so it's probably a good
idea to do it properly before things break.
2021-07-13 22:05:11 +02:00
Robbert van der Helm 3dfb17cf5e Add suggestion to rerun sync after startup failure 2021-07-13 22:05:11 +02:00
Robbert van der Helm a2b877b101 Put more emphasis on how to run files from a shell 2021-07-13 14:46:44 +02:00
Robbert van der Helm 2c25615ea5 Restore old yabridgectl plugin count with symlinks
The count will probably be a bit off now, but it's better than counting
only two plugins.
2021-07-13 00:01:32 +02:00
Robbert van der Helm d8215e4664 Allow cancelling the drag-and-drop with Escape 2021-07-12 22:58:24 +02:00
Robbert van der Helm 2ebefb1280 Send an escape key press instead of WM_QUIT
This should allow the drag-and-drop operation to quit gracefully.
2021-07-12 21:36:08 +02:00
Robbert van der Helm bbb84cdf2c Remove spurious drag-and-drop tracker WM_QUIT
We don't want to cancel the plugin's own drag-and-drop, oops.
2021-07-12 21:17:12 +02:00
Robbert van der Helm b4019213f6 [yabridgectl] Remove 32-bit prefix warning on sync
This is no longer an issue since yabridgectl checks the prefixes
architecture now.
2021-07-12 15:46:35 +02:00
Robbert van der Helm 96fb53be8f Fix the CAS in the XDND check
Oops. We were doing the opposite of what we wanted, which caused the
first drag to always fail.
2021-07-12 14:00:48 +02:00
Robbert van der Helm ad4fb1a0ec Don't define X11 error throwing macro in DND proxy
We didn't need this after all because we don't integrate with the
editor's X11 event loop.
2021-07-12 13:35:10 +02:00
Robbert van der Helm 2f8bb7ef06 Only allow a single XDND operation at a time
MT-PowerDrumkit apparently cancels its drag-and-drop operations and then
immediately starts a new one.
2021-07-12 12:35:07 +02:00
Robbert van der Helm a478436af6 Make sure the Windows dnd operation terminates
I've seen a weird edge case where this doesn't happen once, but i
haven't been able to reproduce it. Hopefully this fixes it.
2021-07-12 12:21:52 +02:00
Robbert van der Helm 11d3ec9010 Also change cursor with the last status message
The idea was that you wouldn't be able to see it anyways, but it feels
better this way.
2021-07-11 21:40:42 +02:00
Robbert van der Helm 4d74963e0a Flush any spooled XDND messages
The last position change message would never reach REAPER under when
using certain plugins because we forgot the flush.
2021-07-11 21:35:39 +02:00
Robbert van der Helm 4c7ffd5a3a Fix emphasis in changelog 2021-07-11 20:32:06 +02:00
Robbert van der Helm 1b4c4ecfad Remove old warning 2021-07-11 19:43:53 +02:00
Robbert van der Helm c968a357f6 Fall back to HDROP with empty format enumerator
This happens with MeldaProduction plugins.
2021-07-11 19:29:15 +02:00