Commit Graph

548 Commits

Author SHA1 Message Date
Robbert van der Helm 343398be25 Remove the 'upload-releases' CI job
It didn't work, and it wouldn't really be more convenient than adding
the files to the release manually anyways.
2020-07-10 22:17:40 +02:00
Robbert van der Helm adced8f951 Add a readme for yabridgectl 2020-07-10 22:17:40 +02:00
Robbert van der Helm 7fef7dc623 Add an empty Rust project with clap 2020-07-10 22:17:40 +02:00
Robbert van der Helm 8db91fb27a Correct Ardour 5.6 into 6.0
This was a typo.
2020-07-10 22:17:24 +02:00
Robbert van der Helm fecdb0ede5 Mention issue opening some IO heavy VSTs in Bitwig 2020-07-09 16:29:34 +02:00
Robbert van der Helm 26ed606bd2 Add a note about Wine -> X11 DnD not working 2020-07-09 16:11:48 +02:00
Robbert van der Helm e55248cdd3 Mention Melda GPU accelerated rendering issues
There are no issues with software rendering.
2020-07-05 22:11:39 +02:00
Robbert van der Helm 892d1bdee2 Add a note on MIDI key labels not updating
I think the idea is that normally the plugin will keep copies of the
pointers to the `VstMidiKeyName` structs passed after initialization,
and the host will just read from them whenever it needs to draw these
labels. Since there's no explicit synchronization or notification going
on there's no way for us to tell that these have changed. It would be
possible to implement this by storing these pointers on the plugin side,
storing the objects on the Wine host side, and then periodically polling
for updates. Right now I chose to just not bother with this because it
will add a lot of complexity for very minimal gain (I only noticed it
was an issue after messing with MDrummer and switching between the pad
and loop modes).
2020-07-04 20:25:58 +02:00
Robbert van der Helm bdfd15eaa9 Mention rendering quirks with Melda plugins 2020-07-04 19:30:41 +02:00
Robbert van der Helm d0285edb14 Fix typo in coordinate translation 2020-07-04 19:09:12 +02:00
Robbert van der Helm ddafec0bea Remove unneeded escaping backslash 2020-06-26 12:26:16 +02:00
Robbert van der Helm cb479c0963 Fix readme formatting, again
GitHub does not parse any markdown inside of HTML tags.
2020-06-26 12:25:43 +02:00
Robbert van der Helm b72535f6a4 Fix formatting of readme with GitHub's parser 2020-06-26 12:22:41 +02:00
Robbert van der Helm 09f7c71d7e Fix escaped asterisk in readme
Not sure why GitHub's parser does not this to be escaped.
2020-06-22 02:48:19 +02:00
Robbert van der Helm 05afd88b98 Remove mention of static linking from readme
Dynamically linking boost is now the default, since static linking is
only needed for distribution.
2020-06-22 02:45:19 +02:00
Robbert van der Helm 1e6188d774 Check the return value from pipe(2)
Starting from GCC 10 not checking this will produce a warning.
2020-06-20 18:43:36 +02:00
Robbert van der Helm 6a01856f37 Bump the version 1.2.1 2020-06-20 18:05:09 +02:00
Robbert van der Helm 4122b644f2 Change wording in the changelog 2020-06-20 18:04:20 +02:00
Robbert van der Helm f7201a9194 Remove old todo 2020-06-20 18:04:00 +02:00
Robbert van der Helm d86b57681b Distinguish between active group hosts and zombies 2020-06-20 16:58:43 +02:00
Robbert van der Helm 61cde0bd43 Use std::jthread 2020-06-20 16:16:12 +02:00
Robbert van der Helm f5f6f04016 Rearrange the try-catch in the thread handlers
It's a bit clearer this way. I would prefer using jthreads here, but we
would still need this try-catch block since there's no way to cancel
synchronous Boost.Asio socket operations other than closing the socket.
2020-06-20 15:47:30 +02:00
Robbert van der Helm c5f8a3a1b2 Change the tested Ardour version to 6.0 2020-06-20 13:57:48 +02:00
Robbert van der Helm 34e3f1a1bf Don't set WINEPREFIX for the current process
`native_environment` allows modification of the current process's
environment, so we had to use the plain `environment` class instead.
2020-06-20 13:43:54 +02:00
Robbert van der Helm 56af346277 Show Wine prefix overrides on the startup output
This might otherwise cause confusion, since otherwise the printed Wine
prefix might not actually be the prefix that will be used.
2020-06-20 01:01:48 +02:00
Robbert van der Helm 471d87bc16 Fix dumb memory error when reading buffers
Not sure how this got in, and I'm even less sure why this has not caused
any issues before this. In the particular case that was causing a crash,
the host was sending 138 sample sized buffers. This error likely only
became visible because the lack of memory alignment caused writes to
parts of the vector objects themselves.
2020-06-18 18:37:07 +02:00
Robbert van der Helm d032405c78 Fix stupid typo in readme and GitHub Actions build 2020-06-08 16:12:39 +02:00
Robbert van der Helm c4842ccda6 Make use-* aliases for new with-* build options
The 'use-*' variants will be marked as deprecated in a future version.
2020-06-08 16:02:53 +02:00
Robbert van der Helm 9385360331 Don't statically link Boost by default #20
Since this would only be needed for distribution, and we're already
doing something similar for libstdc++ on the Ubuntu 18.04 build. This
moves the static linking behind a new build option.
2020-06-08 15:46:09 +02:00
Robbert van der Helm 9ecb65664c List some more common errors and how to fix them 2020-06-06 23:42:03 +02:00
Robbert van der Helm 38a87b53ea Update the Bitwig Studio version number to 3.2 2020-06-06 21:39:37 +02:00
Robbert van der Helm 4403585a70 Use the new C++20 starts_with() and contains() 2020-06-06 13:44:26 +02:00
Robbert van der Helm 8202a6b250 Add missing const qualifiers to member functions 2020-06-06 13:44:26 +02:00
Robbert van der Helm 957da62137 Add missing type qualifiers 2020-06-06 13:44:23 +02:00
Robbert van der Helm 89c186f2c4 Target C++2a
Now that Ubuntu 20.04 is out every currently supported distro that's not
based on Ubuntu 18.04 is shipping GCC 10, so we can start using some
C++20 features. Ubuntu 18.04 already needed a newer version of GCC
installed through a PPA and a newer version of Boost to compile
yabridge, so requiring GCC 10 shouldn't be an issue.
2020-06-05 23:13:41 +02:00
Robbert van der Helm 3aab2e9727 Fix plugin group socket name generation
I'm pretty sure you're supposed to be able to format `size_t` values,
why does this break the stringstream?
2020-06-05 22:56:52 +02:00
Robbert van der Helm 33777d2876 Use same style for optional and avoid double check
I did not know that `std::optional::value()` did checked access. And I
still prefer a more explicit .has_value() over boolean conversion, but
this seems to be the accepted way to do this.
2020-06-05 22:35:56 +02:00
Robbert van der Helm ff298f3f46 Remove redundant conditions
As mentioned in C++ Core Guidelines ES.87.
2020-06-05 22:18:40 +02:00
Robbert van der Helm 047163c6f5 Change spelling in changelog 2020-06-01 16:18:40 +02:00
Robbert van der Helm ade82053f4 Mention GCC 10 in the readme
With instructions for Ubuntu 18.04.
2020-06-01 16:18:40 +02:00
Robbert van der Helm ce2e3ab52e Statically link to libstc++ on Ubuntu 18.04
Somehwere between yabridge 1.1.4 and 1.2.0 we apparently started
requiring newer libstc++ features, and I kind of forgot that libstdc++
needed is bound to the version of g++ the program was compiled with.

Statically linking libstdc++ could in theory cause issues, but I think
we'll be fine.
2020-06-01 00:40:12 +02:00
Robbert van der Helm 9a6116277d Change wording in example yabridge.toml file 2020-05-29 19:23:27 +02:00
Robbert van der Helm 150106e0e0 Bump version to 1.2.0 1.2.0 2020-05-29 18:47:51 +02:00
Robbert van der Helm 091e4db2ab Reword parts of the changelog 2020-05-29 18:47:10 +02:00
Robbert van der Helm 65f51d3f03 Rephrase parts of the plugin groups section 2020-05-29 18:44:12 +02:00
Robbert van der Helm ae740c285a Mention the three different AUR packages
With yabridge 1.2.0 I'll change the regular `yabridge` package to
compile from the source tarball and I'll a new `yabridge-bin` package
that just uses the binaries from the GitHub releases section to confrom
with the usual package naming conventions.
2020-05-29 18:24:59 +02:00
Robbert van der Helm b379708b21 Encapsulate individual/group handling differences
This cleans up the PluginBridge significantly by getting rid of all
fields and handling that was only needed for connecting to plugin
groups. This was also the last thing I wanted to refactor before
releasing the plugin groups feature with yabridge 1.2.
2020-05-29 18:08:44 +02:00
Robbert van der Helm d462421490 Expand the plugin groups section in the readme 2020-05-29 11:48:08 +02:00
Robbert van der Helm 1746fce7e3 Clarify group host plugin removal process better 2020-05-29 11:28:19 +02:00
Robbert van der Helm 890e5b736b Revert "Work around a memory corruption issue on unload"
This reverts commit 0c047f9a66.

This workaround was needed because of the weird threading behavior with
the Win32 APIs, std::thread and winelib. Now that the actual
`active_plugins.erase()` call is done from within the plugin
context/main thread, this hack is no longer needed.
2020-05-29 11:24:56 +02:00