From ae77bde171a800eb7914a9b91d7107deb62dc068 Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Sat, 30 Apr 2022 15:33:44 +0100 Subject: [PATCH] Fixup audio device name writing in services Games expect the output buffer the be entirely zero filled past the device name. --- app/src/main/cpp/skyline/services/audio/IAudioOutManager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/cpp/skyline/services/audio/IAudioOutManager.cpp b/app/src/main/cpp/skyline/services/audio/IAudioOutManager.cpp index f5bb064c..0c548b13 100644 --- a/app/src/main/cpp/skyline/services/audio/IAudioOutManager.cpp +++ b/app/src/main/cpp/skyline/services/audio/IAudioOutManager.cpp @@ -9,6 +9,7 @@ namespace skyline::service::audio { IAudioOutManager::IAudioOutManager(const DeviceState &state, ServiceManager &manager) : BaseService(state, manager) {} Result IAudioOutManager::ListAudioOuts(type::KSession &session, ipc::IpcRequest &request, ipc::IpcResponse &response) { + std::memset(request.outputBuf.at(0).data(), 0, request.outputBuf.at(0).size()); request.outputBuf.at(0).copy_from(constant::DefaultAudioOutName); return {}; } @@ -30,6 +31,8 @@ namespace skyline::service::audio { response.Push(static_cast(skyline::audio::AudioFormat::Int16)); response.Push(static_cast(skyline::audio::AudioOutState::Stopped)); + std::memset(request.outputBuf.at(0).data(), 0, request.outputBuf.at(0).size()); + if (request.inputBuf.at(0).empty() || !request.inputBuf.at(0)[0]) request.outputBuf.at(0).copy_from(constant::DefaultAudioOutName); else