Refactor audio backend and services

Use the new service naming convention.
Move both audout and audren into one directory.
Close the audio stream upon emulator exit.
This commit is contained in:
Billy Laws
2020-02-17 19:11:59 +00:00
committed by ◱ PixelyIon
parent 2e0ac9bdd5
commit 52d47120a8
21 changed files with 174 additions and 160 deletions

View File

@ -13,7 +13,11 @@ namespace skyline::audio {
outputStream->requestStart();
}
std::shared_ptr<AudioTrack> Audio::OpenTrack(int channelCount, int sampleRate, const std::function<void()> &releaseCallback) {
Audio::~Audio() {
outputStream->close();
}
std::shared_ptr<AudioTrack> Audio::OpenTrack(const int channelCount, const int sampleRate, const std::function<void()> &releaseCallback) {
std::shared_ptr<AudioTrack> track = std::make_shared<AudioTrack>(channelCount, sampleRate, releaseCallback);
audioTracks.push_back(track);
@ -27,7 +31,7 @@ namespace skyline::audio {
oboe::DataCallbackResult Audio::onAudioReady(oboe::AudioStream *audioStream, void *audioData, int32_t numFrames) {
i16 *destBuffer = static_cast<i16 *>(audioData);
int setIndex = 0;
uint setIndex = 0;
size_t sampleI16Size = static_cast<size_t>(numFrames) * audioStream->getChannelCount();
for (auto &track : audioTracks) {