summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/audio
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2022-12-25 19:42:32 +0100
committerameerj <52414509+ameerj@users.noreply.github.com>2022-12-25 23:04:02 +0100
commit7ffd62424804eceb73f01b1c4e8dc216134c8295 (patch)
tree2bfe2a9b5d0a3f0857c73475cbdf24f6fe66c740 /src/core/hle/service/audio
parentfsp_srv: Use ReadBufferSpan (diff)
downloadyuzu-7ffd62424804eceb73f01b1c4e8dc216134c8295.tar
yuzu-7ffd62424804eceb73f01b1c4e8dc216134c8295.tar.gz
yuzu-7ffd62424804eceb73f01b1c4e8dc216134c8295.tar.bz2
yuzu-7ffd62424804eceb73f01b1c4e8dc216134c8295.tar.lz
yuzu-7ffd62424804eceb73f01b1c4e8dc216134c8295.tar.xz
yuzu-7ffd62424804eceb73f01b1c4e8dc216134c8295.tar.zst
yuzu-7ffd62424804eceb73f01b1c4e8dc216134c8295.zip
Diffstat (limited to 'src/core/hle/service/audio')
-rw-r--r--src/core/hle/service/audio/audin_u.cpp6
-rw-r--r--src/core/hle/service/audio/audout_u.cpp4
-rw-r--r--src/core/hle/service/audio/audren_u.cpp6
-rw-r--r--src/core/hle/service/audio/hwopus.cpp6
4 files changed, 11 insertions, 11 deletions
diff --git a/src/core/hle/service/audio/audin_u.cpp b/src/core/hle/service/audio/audin_u.cpp
index 053e8f9dd..f3dd8397d 100644
--- a/src/core/hle/service/audio/audin_u.cpp
+++ b/src/core/hle/service/audio/audin_u.cpp
@@ -98,7 +98,7 @@ private:
LOG_ERROR(Service_Audio, "Input buffer is too small for an AudioInBuffer!");
}
- const auto& in_buffer = ctx.ReadBuffer();
+ const auto& in_buffer = ctx.ReadBufferSpan();
AudioInBuffer buffer{};
std::memcpy(&buffer, in_buffer.data(), sizeof(AudioInBuffer));
@@ -266,7 +266,7 @@ void AudInU::OpenAudioIn(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx};
auto in_params{rp.PopRaw<AudioInParameter>()};
auto applet_resource_user_id{rp.PopRaw<u64>()};
- const auto device_name_data{ctx.ReadBuffer()};
+ const auto device_name_data{ctx.ReadBufferSpan()};
auto device_name = Common::StringFromBuffer(device_name_data);
auto handle{ctx.GetCopyHandle(0)};
@@ -317,7 +317,7 @@ void AudInU::OpenAudioInProtocolSpecified(Kernel::HLERequestContext& ctx) {
auto protocol_specified{rp.PopRaw<u64>()};
auto in_params{rp.PopRaw<AudioInParameter>()};
auto applet_resource_user_id{rp.PopRaw<u64>()};
- const auto device_name_data{ctx.ReadBuffer()};
+ const auto device_name_data{ctx.ReadBufferSpan()};
auto device_name = Common::StringFromBuffer(device_name_data);
auto handle{ctx.GetCopyHandle(0)};
diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp
index 29751f075..4bf388055 100644
--- a/src/core/hle/service/audio/audout_u.cpp
+++ b/src/core/hle/service/audio/audout_u.cpp
@@ -105,7 +105,7 @@ private:
LOG_ERROR(Service_Audio, "Input buffer is too small for an AudioOutBuffer!");
}
- const auto& in_buffer = ctx.ReadBuffer();
+ const auto& in_buffer = ctx.ReadBufferSpan();
AudioOutBuffer buffer{};
std::memcpy(&buffer, in_buffer.data(), sizeof(AudioOutBuffer));
@@ -264,7 +264,7 @@ void AudOutU::OpenAudioOut(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx};
auto in_params{rp.PopRaw<AudioOutParameter>()};
auto applet_resource_user_id{rp.PopRaw<u64>()};
- const auto device_name_data{ctx.ReadBuffer()};
+ const auto device_name_data{ctx.ReadBufferSpan()};
auto device_name = Common::StringFromBuffer(device_name_data);
auto handle{ctx.GetCopyHandle(0)};
diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp
index 3a1c231b6..1a48c155e 100644
--- a/src/core/hle/service/audio/audren_u.cpp
+++ b/src/core/hle/service/audio/audren_u.cpp
@@ -112,7 +112,7 @@ private:
void RequestUpdate(Kernel::HLERequestContext& ctx) {
LOG_TRACE(Service_Audio, "called");
- std::vector<u8> input{ctx.ReadBuffer(0)};
+ const auto input{ctx.ReadBufferSpan(0)};
// These buffers are written manually to avoid an issue with WriteBuffer throwing errors for
// checking size 0. Performance size is 0 for most games.
@@ -306,7 +306,7 @@ private:
IPC::RequestParser rp{ctx};
const f32 volume = rp.Pop<f32>();
- const auto device_name_buffer = ctx.ReadBuffer();
+ const auto device_name_buffer = ctx.ReadBufferSpan();
const std::string name = Common::StringFromBuffer(device_name_buffer);
LOG_DEBUG(Service_Audio, "called. name={}, volume={}", name, volume);
@@ -320,7 +320,7 @@ private:
}
void GetAudioDeviceOutputVolume(Kernel::HLERequestContext& ctx) {
- const auto device_name_buffer = ctx.ReadBuffer();
+ const auto device_name_buffer = ctx.ReadBufferSpan();
const std::string name = Common::StringFromBuffer(device_name_buffer);
LOG_DEBUG(Service_Audio, "called. Name={}", name);
diff --git a/src/core/hle/service/audio/hwopus.cpp b/src/core/hle/service/audio/hwopus.cpp
index 825fb8bcc..7c3f25c67 100644
--- a/src/core/hle/service/audio/hwopus.cpp
+++ b/src/core/hle/service/audio/hwopus.cpp
@@ -74,7 +74,7 @@ private:
ResetDecoderContext();
}
- if (!DecodeOpusData(consumed, sample_count, ctx.ReadBuffer(), samples, performance)) {
+ if (!DecodeOpusData(consumed, sample_count, ctx.ReadBufferSpan(), samples, performance)) {
LOG_ERROR(Audio, "Failed to decode opus data");
IPC::ResponseBuilder rb{ctx, 2};
// TODO(ogniK): Use correct error code
@@ -93,7 +93,7 @@ private:
ctx.WriteBuffer(samples);
}
- bool DecodeOpusData(u32& consumed, u32& sample_count, const std::vector<u8>& input,
+ bool DecodeOpusData(u32& consumed, u32& sample_count, std::span<const u8> input,
std::vector<opus_int16>& output, u64* out_performance_time) const {
const auto start_time = std::chrono::steady_clock::now();
const std::size_t raw_output_sz = output.size() * sizeof(opus_int16);
@@ -257,7 +257,7 @@ void HwOpus::GetWorkBufferSizeEx(Kernel::HLERequestContext& ctx) {
void HwOpus::GetWorkBufferSizeForMultiStreamEx(Kernel::HLERequestContext& ctx) {
OpusMultiStreamParametersEx param;
- std::memcpy(&param, ctx.ReadBuffer().data(), ctx.GetReadBufferSize());
+ std::memcpy(&param, ctx.ReadBufferSpan().data(), ctx.GetReadBufferSize());
const auto sample_rate = param.sample_rate;
const auto channel_count = param.channel_count;