Robbert van der Helm
c5c1c334d9
Add group host support to the plugin
...
The difference between individual hosting and group hosting will have to
be encapsulated in a class to keep the rest of the plugin bridge clean.
2020-05-22 20:15:53 +02:00
Robbert van der Helm
903d977d83
Add a function for generating group host endpoints
2020-05-22 19:06:43 +02:00
Robbert van der Helm
615d23e525
Clean up new host process launching
2020-05-22 19:06:43 +02:00
Robbert van der Helm
dd843519ce
Rename PluginParameters to GroupReuqest
2020-05-22 19:06:43 +02:00
Robbert van der Helm
27af0f8c11
Search for the group host when using plugin groups
2020-05-22 19:06:43 +02:00
Robbert van der Helm
fea256655d
Move process launching to a function
...
Starting and connecting to plugin group host processes is not going to
work in the intializer list.
2020-05-22 19:06:43 +02:00
Robbert van der Helm
91b0ebf38b
Remove mention of plugin groups flag
...
Since there's no reason for this to be behind a flag.
2020-05-21 17:15:24 +02:00
Robbert van der Helm
8eb01cb519
Listen on the group socket and handle requests
2020-05-20 18:45:33 +02:00
Robbert van der Helm
6d6d928838
Move all plugin group handling boilerplate
2020-05-19 15:29:48 +02:00
Robbert van der Helm
daad6f2f00
Fix empty line spam in log file when Wine crashes
2020-05-19 12:27:32 +02:00
Robbert van der Helm
53acb1f78a
Move wine-bridge.h -> bridges/vst2.h
...
This way we can structure the group handling and a potential future VST3
bridge in the same way.
2020-05-18 16:15:07 +02:00
Robbert van der Helm
994f3c9e38
Add a plugin group host application
2020-05-18 16:15:07 +02:00
Robbert van der Helm
a849927a08
Move initialization message to a function
...
It was starting to get a bit unwieldy.
2020-05-17 14:43:21 +02:00
Robbert van der Helm
d2cd608abb
Print the configuration on startup
2020-05-17 14:43:21 +02:00
Robbert van der Helm
312200f100
Make the 'this_line_location' hack more reliable
...
It shouldn't be done if it's not needed.
2020-05-17 14:43:21 +02:00
Robbert van der Helm
e76d4b474c
Rearrange fields in PluginBridge
2020-05-16 14:46:48 +02:00
Robbert van der Helm
a615a66cc5
Add the group configuration parser
...
As described in #15 .
2020-05-15 16:35:18 +02:00
Robbert van der Helm
f96c08775a
Use Boost.Filesystem for the configuration
...
I'd much rather just use std::filesystem, but since all of
Boost.Process, Boost.DLL Boost.Asio uses its own filesystem library we
need to use it anyways.
2020-05-15 16:35:18 +02:00
Robbert van der Helm
d9ff98de84
Move everything configuration related to plugin
...
If it's tied to the .so file rather than the .dll file it wouldn't make
any sense to use it directly from the Wine host.
2020-05-15 16:35:18 +02:00
Robbert van der Helm
9a82e82c87
Factor out directory finding from prefix detection
...
This will also be used to locate the `yabridge.tmol` configuration file.
2020-05-15 16:35:18 +02:00
Robbert van der Helm
37a74c8f98
Get rid of the dedicated AEffect socket
2020-05-13 13:15:52 +02:00
Robbert van der Helm
901d985080
Fix potential issue with plugins reporting size
...
I thought this was a problem for a plugin when it was not, but I can
still see this being a source of segfaults.
2020-05-11 22:54:42 +02:00
Robbert van der Helm
686ca11ba8
Work around improperly late initializing plugins
...
This fixes the Roland Cloud plugins.
2020-05-10 13:42:20 +02:00
Robbert van der Helm
ba91971829
Simplify object reading
...
No longer needs to read into an existing object after the last change,
and reusing that function here too makes it less error prone.
2020-05-10 13:10:58 +02:00
Robbert van der Helm
ded12379f9
Fix typo
2020-05-10 00:48:45 +02:00
Robbert van der Helm
54295f3a27
Fix shutdown cleanup issue for Ardour and Mixbus
...
Instead of just detaching the threads, it's much better to terminate the
Wine process and let the threads terminate themselves.
This fixes #11 on my machine.
2020-05-09 21:31:57 +02:00
Robbert van der Helm
484032202a
Stop accepting sockets if Wine crashes on startup
2020-05-09 16:31:11 +02:00
Robbert van der Helm
9c19a1d01c
Move plugin bridge helper functions to utils.h
2020-05-09 15:18:32 +02:00
Robbert van der Helm
d173ab9123
Clean up main plugin entry point
2020-05-09 13:57:54 +02:00
Robbert van der Helm
57cb404f6b
Use a Logger to print initialization errors
...
This way the errors will get written to a file instead of to STDERR if
`YABRIDGE_DEBUG_FILE` is set.
2020-05-09 11:15:27 +02:00
Robbert van der Helm
99ecb2803e
Add logging for the input speaker configuration
2020-05-07 18:23:54 +02:00
Robbert van der Helm
868b0fd357
Finally implement eff{Set,Get}SpeakerConfiguration
...
As mentioned in #1 . This also indirectly allows yabridge to work under
Renoise.
2020-05-07 18:23:41 +02:00
Robbert van der Helm
a3aad51e41
Also add a second payload value to event responses
...
This will only be used for `effGetSpeakerArrangement`.
2020-05-07 17:23:22 +02:00
Robbert van der Helm
ff9f151639
Work around incorrect GCC warning in debug builds
2020-05-07 17:19:34 +02:00
Robbert van der Helm
cb329f5b5f
Fix 192154f869
...
I forgot to stage the other changes.
2020-05-07 14:53:10 +02:00
Robbert van der Helm
192154f869
Print the used Wine version on startup
2020-05-07 14:42:38 +02:00
Robbert van der Helm
7b07a2bfe1
💥 Rename HostBridge to PluginBridge
...
As mentioned in the last commit. The original reasoning behind these
names was that the HostBridge talks to the host, and the PluginBridge
talks to the plugin, but you could also argue that the HostBridge should
be part of the Wine VST host and the PluginBridge should be part of the
VST plugin. This removes that ambiguity.
2020-05-07 13:10:03 +02:00
Robbert van der Helm
2d0998047c
💥 Rename PluginBridge to WineBridge
...
I had swapped these names around once before but I think going with
PluginBridge for the plugin and WineBridge for the Wine VST host is the
least ambiguous it can get.
2020-05-07 13:04:00 +02:00
Robbert van der Helm
261cf0554c
Change prefix detection to be relative to the .dll
2020-05-06 19:16:19 +02:00
Robbert van der Helm
f79115992b
Work around issue with invalid plugin paths #2
...
I'm not sure what would be causing this in some cases.
2020-05-06 18:30:38 +02:00
Robbert van der Helm
905e60b9b2
Rename find_plugin_*() -> find_vst_*()
...
For cinsistency's sake.
2020-05-06 14:42:13 +02:00
Robbert van der Helm
e40f90085c
Revert accidental removal of audioMaster logging
...
Got removed in af060054d3 .
2020-05-06 01:22:07 +02:00
Robbert van der Helm
af060054d3
Implement audioMasterProcessEvents, closing #5
...
This allows plugins to output MIDI events.
2020-05-06 01:04:20 +02:00
Robbert van der Helm
750130e4a5
Print errors that happen early during startup
2020-05-05 23:23:37 +02:00
Robbert van der Helm
ad03d870ee
Allow yet another symlinking method, fixing #3
...
This allows symlinking to a copy of `libyabridge.so.` Now we support:
- A symlink to `libyabridge.so` with a `.dll` file in the same directory
as that symlink.
- A symlink to `libyabridge.so` with a symlinked `.dll`.
- A copy of `libyabridge.so` with a `.dll` file in the same directory as
that copy.
- A symlink to a copy of `libyabridge.so` with a `.dll` file in the same
directory as that copy.
- A symlink to a copy of `libyabridge.so` with a symlinked `.dll` file.
That seems a bit overkill, but hey, more options are always better,
right?
2020-05-04 13:15:28 +02:00
Robbert van der Helm
ae92e61bcc
Rename find_wine_vst_host -> find_vst_hsot
...
This way it's a bit more coherent and it's easier to see what's going on
with this function ordering.
2020-05-04 12:52:56 +02:00
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