From a278fa6e2a8e06bf20b608ec6a79a53c32321d9b Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 16 Sep 2022 09:29:28 -0400 Subject: device_session: Pass arguments by const-ref in relevant functions These functions don't modify the passed in audio buffers, so we can signify that in the interface. --- src/audio_core/device/audio_buffers.h | 2 +- src/audio_core/device/device_session.cpp | 6 +++--- src/audio_core/device/device_session.h | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/audio_core/device') diff --git a/src/audio_core/device/audio_buffers.h b/src/audio_core/device/audio_buffers.h index 3ecbbb63f..4918a61c7 100644 --- a/src/audio_core/device/audio_buffers.h +++ b/src/audio_core/device/audio_buffers.h @@ -93,7 +93,7 @@ public: * * @return Is the buffer was released. */ - bool ReleaseBuffers(Core::Timing::CoreTiming& core_timing, DeviceSession& session) { + bool ReleaseBuffers(const Core::Timing::CoreTiming& core_timing, const DeviceSession& session) { std::scoped_lock l{lock}; bool buffer_released{false}; while (registered_count > 0) { diff --git a/src/audio_core/device/device_session.cpp b/src/audio_core/device/device_session.cpp index c71c3a376..6cde33f93 100644 --- a/src/audio_core/device/device_session.cpp +++ b/src/audio_core/device/device_session.cpp @@ -73,7 +73,7 @@ void DeviceSession::Stop() { } } -void DeviceSession::AppendBuffers(std::span buffers) const { +void DeviceSession::AppendBuffers(std::span buffers) const { for (size_t i = 0; i < buffers.size(); i++) { Sink::SinkBuffer new_buffer{ .frames = buffers[i].size / (channel_count * sizeof(s16)), @@ -93,14 +93,14 @@ void DeviceSession::AppendBuffers(std::span buffers) const { } } -void DeviceSession::ReleaseBuffer(AudioBuffer& buffer) const { +void DeviceSession::ReleaseBuffer(const AudioBuffer& buffer) const { if (type == Sink::StreamType::In) { auto samples{stream->ReleaseBuffer(buffer.size / sizeof(s16))}; system.Memory().WriteBlockUnsafe(buffer.samples, samples.data(), buffer.size); } } -bool DeviceSession::IsBufferConsumed(AudioBuffer& buffer) const { +bool DeviceSession::IsBufferConsumed(const AudioBuffer& buffer) const { return played_sample_count >= buffer.end_timestamp; } diff --git a/src/audio_core/device/device_session.h b/src/audio_core/device/device_session.h index 53b649c61..74f4dc085 100644 --- a/src/audio_core/device/device_session.h +++ b/src/audio_core/device/device_session.h @@ -62,14 +62,14 @@ public: * * @param buffers - The buffers to play. */ - void AppendBuffers(std::span buffers) const; + void AppendBuffers(std::span buffers) const; /** * (Audio In only) Pop samples from the backend, and write them back to this buffer's address. * * @param buffer - The buffer to write to. */ - void ReleaseBuffer(AudioBuffer& buffer) const; + void ReleaseBuffer(const AudioBuffer& buffer) const; /** * Check if the buffer for the given tag has been consumed by the backend. @@ -78,7 +78,7 @@ public: * * @return true if the buffer has been consumed, otherwise false. */ - bool IsBufferConsumed(AudioBuffer& buffer) const; + bool IsBufferConsumed(const AudioBuffer& buffer) const; /** * Start this device session, starting the backend stream. -- cgit v1.2.3 From cb2a33babc831fa39c86663714f0951743530b2b Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 16 Sep 2022 09:32:55 -0400 Subject: device_session: Convert for loop into ranged for in AppendBuffers Simplifies the indexing code a little bit. --- src/audio_core/device/device_session.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/audio_core/device') diff --git a/src/audio_core/device/device_session.cpp b/src/audio_core/device/device_session.cpp index 6cde33f93..995060414 100644 --- a/src/audio_core/device/device_session.cpp +++ b/src/audio_core/device/device_session.cpp @@ -74,11 +74,11 @@ void DeviceSession::Stop() { } void DeviceSession::AppendBuffers(std::span buffers) const { - for (size_t i = 0; i < buffers.size(); i++) { + for (const auto& buffer : buffers) { Sink::SinkBuffer new_buffer{ - .frames = buffers[i].size / (channel_count * sizeof(s16)), + .frames = buffer.size / (channel_count * sizeof(s16)), .frames_played = 0, - .tag = buffers[i].tag, + .tag = buffer.tag, .consumed = false, }; @@ -86,8 +86,8 @@ void DeviceSession::AppendBuffers(std::span buffers) const { std::vector samples{}; stream->AppendBuffer(new_buffer, samples); } else { - std::vector samples(buffers[i].size / sizeof(s16)); - system.Memory().ReadBlockUnsafe(buffers[i].samples, samples.data(), buffers[i].size); + std::vector samples(buffer.size / sizeof(s16)); + system.Memory().ReadBlockUnsafe(buffer.samples, samples.data(), buffer.size); stream->AppendBuffer(new_buffer, samples); } } -- cgit v1.2.3 From e9109cb5f214218909c978b7fbd5a7cb71bdf890 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 16 Sep 2022 09:36:00 -0400 Subject: audio_buffers: Pass by const-ref in AppendBuffers This function doesn't modify the passed in buffer, so we can make that explicit. --- src/audio_core/device/audio_buffers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/audio_core/device') diff --git a/src/audio_core/device/audio_buffers.h b/src/audio_core/device/audio_buffers.h index 4918a61c7..3dae1a3b7 100644 --- a/src/audio_core/device/audio_buffers.h +++ b/src/audio_core/device/audio_buffers.h @@ -36,7 +36,7 @@ public: * * @param buffer - The new buffer. */ - void AppendBuffer(AudioBuffer& buffer) { + void AppendBuffer(const AudioBuffer& buffer) { std::scoped_lock l{lock}; buffers[appended_index] = buffer; appended_count++; -- cgit v1.2.3