Commit Graph

651 Commits

Author SHA1 Message Date
Robbert van der Helm 8ce4ebfc28 Bump to version 1.5.0 2020-08-21 15:11:36 +02:00
Robbert van der Helm b452f961db Add option to work around bugs in REAPER/Renoise
This is not ideal since it requires the user to know about this option
and to create a config file, but I think it's the best we can do without
compromising on yabridge's transparency and 'zero hacks' philosophy.

See #29 and #32.
2020-08-17 15:49:16 +02:00
Robbert van der Helm ebe1a9c649 Set the pkgconfig binary name in cross file #31
Without this you can't cross compile on Fedora 32, not sure why this is
needed since it worked fine on earlier versions and pkg-config seems to
get detected correctly on any other distro.
2020-08-16 18:09:11 +02:00
Robbert van der Helm becb73928e Add a limit to all Win32 message loops #28
This works around Waves plugins causing an infinite message loop. Since
we run the loop 30 times per second anyways splitting the loop up into
chunks of 20 shouldn't be an issue.
2020-08-14 11:36:55 +02:00
Robbert van der Helm c64fdb21d7 Don't print calls to effIdle with debug level 1
REAPER seems to be the only DAW that uses this.
2020-08-11 15:26:11 +02:00
Robbert van der Helm 6ee2c5c787 Update the 'Debugging' section of the readme 2020-07-30 19:40:08 +02:00
Robbert van der Helm 5340f4c59d Update the 'Tested with' section of the readme 2020-07-30 19:30:14 +02:00
Robbert van der Helm 3dcc1480e2 Clean up the performance tuning section 2020-07-30 19:28:48 +02:00
Robbert van der Helm 69222ca9a6 Fix the fsync check snippet 2020-07-29 12:38:58 +02:00
Robbert van der Helm 4dda7d5f8f Add a section on performance tuning
And mention @nine7nine's Wine PKGBUILD as a good starting point for
using fsync.
2020-07-28 21:10:47 +02:00
Robbert van der Helm c3638a7d5d Reword changelog 1.4.1 2020-07-27 16:36:10 +02:00
Robbert van der Helm 56c939012d Bump to version 1.4.1 2020-07-27 16:33:41 +02:00
Robbert van der Helm f02dbb3755 Fix TOML parsing with large unsigned integers
The parser parses everything as signed integers so the configuration
file will fail to parse large numbers that don't fit in an i64.

https://github.com/alexcrichton/toml-rs/issues/256
2020-07-27 16:25:36 +02:00
Robbert van der Helm 81696f4dde Fix broken symlinks not being removed
`Path::exists()` returns false for broken symlinks:

https://doc.rust-lang.org/std/path/struct.Path.html#method.exists
2020-07-27 16:10:27 +02:00
Robbert van der Helm 1113e43b03 Add yabridgectl version to the bug report template 2020-07-27 15:18:29 +02:00
Robbert van der Helm 8dc4eed962 Mention fsync for the KiloHearts plugins 2020-07-27 13:41:40 +02:00
Robbert van der Helm 6838c5d263 Reword fix in changelog 2020-07-26 15:38:26 +02:00
Robbert van der Helm f5b1d48d96 Bump version to 1.4.0 1.4.0 2020-07-26 15:20:48 +02:00
Robbert van der Helm 32fef158a7 Reword changelog 2020-07-26 15:18:48 +02:00
Robbert van der Helm 126f021236 Remove note about Wine check in the next version
Since we're releasing yabridge 1.4.0 now.
2020-07-26 15:10:30 +02:00
Robbert van der Helm fdbf93ba61 Mention ~/.profile as fallback for ~/.bash_profile
Since Debian and distros based on it such as Ubuntu don't create
~/.bash_profile by default.
2020-07-25 18:19:28 +02:00
Robbert van der Helm 9c20ced543 Clarify the readme section on editor_double_embed 2020-07-25 15:28:56 +02:00
Robbert van der Helm e3282df7cd Lower the realtime priority to 5
JACK runs with priority 10 by default, so that should probably be
getting priority here.
2020-07-24 23:27:37 +02:00
Robbert van der Helm 1c76499e14 Add a table of contents to the readme 2020-07-23 20:54:56 +02:00
Robbert van der Helm 6f5dae90a6 Set realtime priorities if available
This significantly reduces the latency with no real drawbacks from what
I've noticed. Wineserver is still run using the normal scheduling
policies because from my testing running that with realtime priority
that can actually increase latencies, although doing so will greatly
reduce the variance in processing time.
2020-07-23 19:57:50 +02:00
Robbert van der Helm 9d33b9989e Align config options in startup message 2020-07-23 18:39:48 +02:00
Robbert van der Helm 29c060905b Add a note above the configuration example 2020-07-23 17:17:37 +02:00
Robbert van der Helm de1979781f Add double editor embedding mode to the changelog 2020-07-23 16:56:58 +02:00
Robbert van der Helm e0ea2d3837 Add the double editor embedding mode to the readme 2020-07-23 16:56:54 +02:00
Robbert van der Helm b1dd301a98 Add an optional double editor embedding mode #27
This sounds like it would the simplest way to work around the issue of
E27 calculating its own coordinates based on the parent window's
coordinates. I have not noticed any weird issues with having this
enabled all the time, but less moving parts is always better so it's
still behind an option.
2020-07-23 16:56:10 +02:00
Robbert van der Helm 967856fc1b Add a configuration option for double embedding
Only plugin that needs this so far is PSPaudioware's E27 (and likely
other PSP plugins with expandable GUIs).
2020-07-23 15:59:00 +02:00
Robbert van der Helm 523f77d334 Use designated initializers for complex structs
This was one of the main reasons why I wanted to switch to C++20, I just
forgot to do it.
2020-07-23 14:12:07 +02:00
Robbert van der Helm cd02ab5fc9 Send the configuration from plugin to Wine host
Next we can add some options for different plugin editor behaviours for #27.
2020-07-22 17:15:55 +02:00
Robbert van der Helm 44044324f3 Add serialization support for plugin configuration 2020-07-22 17:05:24 +02:00
Robbert van der Helm 479852a4d0 Add a bitsery extension for serializing paths 2020-07-22 17:05:05 +02:00
Robbert van der Helm 2e77c03464 Move the configuration object to src/common/ 2020-07-22 13:55:29 +02:00
Robbert van der Helm 6f772ca899 Send the AEffect object over a new control socket
We'll use the same socket to send the configuration data back to the
plugin.
2020-07-22 13:36:29 +02:00
Robbert van der Helm c83680a21a Remove old workaround for rare Ubuntu path issue
This got fixed properly in `get_file_location()`, but this function
still contained an old hack.
2020-07-21 01:04:20 +02:00
Robbert van der Helm e3edffb8f8 Reword part of the issue templates 2020-07-20 12:55:29 +02:00
Robbert van der Helm 251fce00c5 Add an issue template for feature requests 2020-07-19 22:02:59 +02:00
Robbert van der Helm ab4a5ae580 Create an issue template for setup help 2020-07-19 22:02:52 +02:00
Robbert van der Helm 0b739e91c9 Mention yabridgectl in the bug report template 2020-07-19 22:02:28 +02:00
Robbert van der Helm 9abaf60008 Fix potential out of bounds error in Wine check 2020-07-19 19:08:01 +02:00
Robbert van der Helm 6f9eb19969 Remove random comment 2020-07-19 19:03:09 +02:00
Robbert van der Helm 6bba1a9bf8 Check for Wine and yabridge compatibility on sync
This will probably solve the last common setup issue. Starting Wine can
take a second so this check is only repeated when either Wine or
yabridge get updated.
2020-07-19 16:57:18 +02:00
Robbert van der Helm a8e914a71a Add a last known config field to the configuration
For verifying that a combination of Wine and yabridge is going to work
together properly.
2020-07-19 14:39:07 +02:00
Robbert van der Helm 0778d787cc Add references to the filesystem function wrappers 2020-07-19 14:32:17 +02:00
Robbert van der Helm 3e438be302 Add an option to disable setup checks
The path check should only take a few milliseconds to run, but checking
whether yabridge-host.exe runs correctly could take over a second when
wineserver isn't already running in the background.
2020-07-19 13:54:12 +02:00
Robbert van der Helm 86be5c4814 Wrap filesystem functions for readable errors
Without having to repeat this all over the place.
2020-07-19 13:50:25 +02:00
Robbert van der Helm 9580dbea12 Wrap options for yabridgectl sync/set in a struct
To prevent having to pass a bunch of confusing boolean values or an
entire ArgMatch object.
2020-07-19 13:36:45 +02:00