mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
20 lines
529 B
C++
20 lines
529 B
C++
#pragma once
|
|
|
|
#include <algorithm>
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
|
|
namespace audioin::detail {
|
|
|
|
template <typename TDequeue>
|
|
void discardQueuedAudio(std::size_t excess, std::uint8_t* discard, std::size_t discardSize, TDequeue&& dequeue) {
|
|
while (excess > 0) {
|
|
const auto chunk = static_cast<std::uint32_t>(std::min(excess, discardSize));
|
|
const auto dequeued = dequeue(discard, chunk);
|
|
if (dequeued == 0) break;
|
|
excess -= std::min(excess, static_cast<std::size_t>(dequeued));
|
|
}
|
|
}
|
|
|
|
}
|