Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Microphone support #4671
This adds microphone service implementations using both a real microphone and a static microphone. As i'm not too sure about the design, I pushed it working and would like to ask for any feedback before cleaning up and getting it merged. It should be canary ready from the get go if someone wants to tag it.
In general the code should be decent quality, but I am already bored of working on it again, so I want to get it out. Requesting for any design decisions before I get the standard c++ code quality treatment, so i don't have to waste much time if the whole thing needs a rewrite anyway.
Real microphone runs on a separate thread using cubeb input support and writes the data into a spsc queue. When read is called, it will pull as much as it can from the queue and write it to shared mem.
Static microphone returns the same N random bytes every time Read is called.
Thanks to tobi for fixing that bug i had and pressuring me to finally finish this.
THIS DOES NOT INCLUDE A KEY OR CONTROLLER MAPPING TO LET YOU "PUSH TO TALK" Someone else can add that later if they want. shouldn't be too hard.
@slashiee please retest with canary 1260 or greater. if its still not working, please paste a log and a save file for it (if needed) so we can replicate the issue.
Changes since last time
I haven't tested 8bit yet, but its pretty straight forward. If its broken, i'll go the extra mile to get that tested as well.
CI is unrelated.
The macOS crash is verified fixed https://community.citra-emu.org/t/real-mic-input-causes-canary-to-crash-on-osx-10-14/93053/4
Ready for mergeeeeeeeeeeee?