Robbert van der Helm
592b5acdf1
Fix small typos
2020-05-04 00:21:44 +02:00
Robbert van der Helm
40d607353b
Clarify and update documentation
2020-05-03 13:45:46 +02:00
Robbert van der Helm
1f404511d9
Make sure docstrings are at the declarations
2020-05-02 17:46:05 +02:00
Robbert van der Helm
4d7724c5b6
Add a workaround for a bug in Ardour 5.X
...
Ardour will send events to the plugin before it has even finished
initializing. This has been fixed back in 2018 but Ardour has not seen a
stable release since then.
https://tracker.ardour.org/view.php?id=7668
2020-05-01 17:53:06 +02:00
Robbert van der Helm
ed8e3ba114
Refactor event receiving to optimize MIDI handlign
...
This keeps compatibility with some weirdly designed plugins (such as
Kontakt) while avoiding some unnecessary data transformations. Before
this we'd convert from a `DynamicVstEvents` object to a `VstEvents`
object, back to a `DynamicVstEvents` and then finally back into another
`VstEvents` object. With this change we can skip the second half of the
conversions.
2020-05-01 14:06:06 +02:00
Robbert van der Helm
6c496da455
Clean up after reverting buffer handling change
...
This is what you get from not taking any breaks.
2020-04-30 22:45:22 +02:00
Robbert van der Helm
6266072641
Explicitly list opcodes that should return strings
...
The automatic detection works fine in every case I've tested other than
Fabfilter plugins, but this is probably for the best.
2020-04-30 20:55:49 +02:00
Robbert van der Helm
efe5017788
Clarify comments in the PE architecture detection
2020-04-30 19:09:31 +02:00
Robbert van der Helm
2701907614
Improve the 'invalid architecture' error message
...
Not that I'm expecting to ever see this error message.
2020-04-30 19:07:26 +02:00
Robbert van der Helm
67c3e151d8
Choose a host application by parsing PE headers
...
Now yabridge can load both 64 and 32 bit plugins without having to
specify which are which.
2020-04-30 18:45:33 +02:00
Robbert van der Helm
c051123796
Improve the look of the enabled features list
2020-04-30 16:44:26 +02:00
Robbert van der Helm
5958f8058a
Print out a list of enabled compile time features
2020-04-30 13:40:55 +02:00
Robbert van der Helm
6ca7eae16a
Mention 32-bit support in the readme
2020-04-30 12:48:03 +02:00
Robbert van der Helm
c9060e984d
Add another flag for enabling a bit bridge build
2020-04-29 16:55:47 +02:00
Robbert van der Helm
7ce42e4306
Add support for effGetMidiKeyName
...
Not a lot of plugins use it, but it's really nice to have when they do.
2020-04-28 12:54:36 +02:00
Robbert van der Helm
13dcb2f74a
Fix handling of large chunk data
2020-04-27 16:41:55 +02:00
Robbert van der Helm
527db1f49f
Use different types for strings and binary data
2020-04-27 00:51:36 +02:00
Robbert van der Helm
bdd83de7a9
Strip the 'yabridge-' prefix from log messages
2020-04-27 00:50:28 +02:00
Robbert van der Helm
af6ae2c2ad
Fix capitalization of the word MIDI
2020-04-26 18:19:10 +02:00
Robbert van der Helm
aeac8e87fa
Implement effGetParameterProperties
2020-04-26 16:53:34 +02:00
Robbert van der Helm
aee890fbf6
Remove the now unused ability to skip opcodes
...
If this is needed again in the future (it shouldn't be), then it should
be re-implemented using a separate function.
2020-04-26 16:30:11 +02:00
Robbert van der Helm
8bb1bdeadb
Change the default return value for effClose
2020-04-25 17:02:41 +02:00
Robbert van der Helm
631e82f2ad
Print the version and any VCS info at startup
2020-04-25 16:14:22 +02:00
Robbert van der Helm
259d23ec57
Add support for legacy plugins with only process()
...
By emulating the behavior of `processReplacing()`. Not that there should
still be any plugins around that don't support processReplacing.
2020-04-22 16:57:18 +02:00
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
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
717ffb719d
Remove resolved todo
2020-04-19 16:05:37 +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
d52989acc5
Allow midi events to be handled during interaction
2020-03-28 17:00:12 +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
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
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
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
Robbert van der Helm
10c517401c
Stop flood of empty lines on plugin crash
2020-03-15 17:26:01 +01:00
Robbert van der Helm
138fa9eb31
Add winedbg support behind a feature flag
...
I had something similar saved as a stash since I did not want to make
things more complicated by adding feature flags, but this should be
fine.
2020-03-15 16:30:25 +01:00
Robbert van der Helm
f2597ca0b9
Prevent race conditions from simultaneous dispatch calls
2020-03-14 18:11:35 +01:00
Robbert van der Helm
5f584323c2
Monkey patch async pipes foor Boost 1.72
...
This is an simple workaround and it's much more practical than having to
downgrade Boost since that breaks any application that links to it.
2020-03-14 16:49:38 +01:00
Robbert van der Helm
bb6ffe4891
Fix crashes on startup in Bitwig's bridge
2020-03-12 23:17:14 +01:00
Robbert van der Helm
a14d915ee7
Better describe Wine process shutdown
2020-03-12 21:22:37 +01:00
Robbert van der Helm
28b3800fb4
Force-stop the io_context manually
...
Apparently this will cause the io_context to just abandon all of its
work and not throw any exceptions.
2020-03-11 21:48:53 +01:00
Robbert van der Helm
05de100d3e
Disable GUI related events
2020-03-11 17:27:34 +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