-
-
Notifications
You must be signed in to change notification settings - Fork 850
Add steam audio support #1699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add steam audio support #1699
Conversation
Since I'm not the most experienced in C++, I'm wondering if I should try to write my implementation from scratch while only using the openAL implementation as a reference. To be safe, I'm saving the files I made out to be copies so I can try modifying the tried-and-true implementation later if need be.
It's embarrassing, but I'm learning C++ as I go along through this. Changing to copies rather than children of the OpenAL classes because most members of those classes are private and not protected.
|
I'm still trying to figure out how to actually add my new code to the build process, as well as how to link in the Steam Audio library. If anybody's willing to check and see if I've made any mistakes so far, that would be very well appreciated! |
Now that I've had some learning experience in writing steam audio code, this just seems like a much easier way to go about things. Furthermore, this solves the issue of SteamAudioManager and co. ignoring OpenAl's remutex, thus breaking threading. I'll remove the old classes once I'm done transferring my original code.
This is now creating errors at the linking stage. I'll tackle those tomorrow, but I consider it a success that there are no complaints about the removal of the old classes.
|
Hmm... Steam Audio allows for effect settings to be set per-source through a different interface than the global effect options. That said, the options provided are 1-1 with the global effect options, so I'm wondering if I should write a "match_source_parameters_to_effect" function, which would take a SteamAudioProcessor (which handles all of its sources privately), the name of the source, and an effect to copy the parameters from. It's not exactly intuitive, but it means that any extra copies of SteamAudioEffect classes needed for per-source configuration could be destroyed. |
Various changes. Project's on the backburner right now, but I'm still working on it.
Issue description
In this pull request I am attempting to add support for the steam audio sdk, as in issue#1619.
Solution description
This pull request creates a new steam audio folder and multiple new classes. The two central classes are SteamAudioManager and SteamAudioSound, which are modified copies of the OpenALAudio classes. These classes are modified to hold "listener" and "source" nodepaths respectively as well as list of SteamAudioEffects, which can either use programmer-specified values or the positions of the two nodepaths to apply effects to audio played through these classes. I also eventually plan to add a "scene" class for the sake of implementing steam audio's geometry-simulation capabilities.
Checklist
I have done my best to ensure that…