Update OpenAL Soft and allow seamless changing of the output device #1841
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds bindings and implements OpenAL Soft's
reopenDeviceSOFT
andALC_SOFT_system_events
extension. In order to take advantage of this functionality, I had to update OpenAL Soft, which required forcing latest hxcpp (git, until there's a new stable release). New versions of OpenAL Soft require the C++17 standard and current hxcpp doesn't seem to have an official way to use it. (Maybe it could be done via compilerflags in the Build.xml?)With these changes, Lime will automatically listen to changes to the default audio output device and switch playback to those devices seamlessly. Also
reopenDeviceSOFT
allows for manually switching the output device in the app.This is currently a draft, I'm waiting for a new hxcpp release and a new stable OpenAL Soft release (which should be sometime soon!), as well as figuring out a few other things. I'm opening this right now for discussion and feedback
Currently I only tested it on Windows x64 C++
(I've also had it working on Hashlink but ever since I've merged this change into 9.0.0-dev I keep getting a strange and seemingly unrelated error:. I will try getting the changes to work on other targets as soon as I figure out HL & Neko.FATAL ERROR : Invalid signature for function lime@hl_cairo_get_matrix : PDOiOiB_iiii__OiOiB_iiii_ required but PDOdddddd__Odddddd_ found in hdll
)Closes #1515, openfl/openfl#2642