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.
This commit is contained in:
parent
e85bda5f31
commit
a278fa6e2a
|
@ -93,7 +93,7 @@ public:
|
||||||
*
|
*
|
||||||
* @return Is the buffer was released.
|
* @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};
|
std::scoped_lock l{lock};
|
||||||
bool buffer_released{false};
|
bool buffer_released{false};
|
||||||
while (registered_count > 0) {
|
while (registered_count > 0) {
|
||||||
|
|
|
@ -73,7 +73,7 @@ void DeviceSession::Stop() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeviceSession::AppendBuffers(std::span<AudioBuffer> buffers) const {
|
void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) const {
|
||||||
for (size_t i = 0; i < buffers.size(); i++) {
|
for (size_t i = 0; i < buffers.size(); i++) {
|
||||||
Sink::SinkBuffer new_buffer{
|
Sink::SinkBuffer new_buffer{
|
||||||
.frames = buffers[i].size / (channel_count * sizeof(s16)),
|
.frames = buffers[i].size / (channel_count * sizeof(s16)),
|
||||||
|
@ -93,14 +93,14 @@ void DeviceSession::AppendBuffers(std::span<AudioBuffer> buffers) const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeviceSession::ReleaseBuffer(AudioBuffer& buffer) const {
|
void DeviceSession::ReleaseBuffer(const AudioBuffer& buffer) const {
|
||||||
if (type == Sink::StreamType::In) {
|
if (type == Sink::StreamType::In) {
|
||||||
auto samples{stream->ReleaseBuffer(buffer.size / sizeof(s16))};
|
auto samples{stream->ReleaseBuffer(buffer.size / sizeof(s16))};
|
||||||
system.Memory().WriteBlockUnsafe(buffer.samples, samples.data(), buffer.size);
|
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;
|
return played_sample_count >= buffer.end_timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,14 +62,14 @@ public:
|
||||||
*
|
*
|
||||||
* @param buffers - The buffers to play.
|
* @param buffers - The buffers to play.
|
||||||
*/
|
*/
|
||||||
void AppendBuffers(std::span<AudioBuffer> buffers) const;
|
void AppendBuffers(std::span<const AudioBuffer> buffers) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (Audio In only) Pop samples from the backend, and write them back to this buffer's address.
|
* (Audio In only) Pop samples from the backend, and write them back to this buffer's address.
|
||||||
*
|
*
|
||||||
* @param buffer - The buffer to write to.
|
* @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.
|
* 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.
|
* @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.
|
* Start this device session, starting the backend stream.
|
||||||
|
|
Reference in New Issue