diff options
author | Liam <byteslice@airmail.cc> | 2023-11-13 05:10:53 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-11-13 05:10:53 +0100 |
commit | ecaa038b4da24fe75d3da6a4a18034285faac69d (patch) | |
tree | 1bde4040130e452c19f508b48055cc8e09494e8c /src/audio_core/sink/sink_stream.cpp | |
parent | Merge pull request #11980 from german77/moment (diff) | |
download | yuzu-ecaa038b4da24fe75d3da6a4a18034285faac69d.tar yuzu-ecaa038b4da24fe75d3da6a4a18034285faac69d.tar.gz yuzu-ecaa038b4da24fe75d3da6a4a18034285faac69d.tar.bz2 yuzu-ecaa038b4da24fe75d3da6a4a18034285faac69d.tar.lz yuzu-ecaa038b4da24fe75d3da6a4a18034285faac69d.tar.xz yuzu-ecaa038b4da24fe75d3da6a4a18034285faac69d.tar.zst yuzu-ecaa038b4da24fe75d3da6a4a18034285faac69d.zip |
Diffstat (limited to 'src/audio_core/sink/sink_stream.cpp')
-rw-r--r-- | src/audio_core/sink/sink_stream.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/audio_core/sink/sink_stream.cpp b/src/audio_core/sink/sink_stream.cpp index d66d04fae..2a09db599 100644 --- a/src/audio_core/sink/sink_stream.cpp +++ b/src/audio_core/sink/sink_stream.cpp @@ -282,11 +282,19 @@ u64 SinkStream::GetExpectedPlayedSampleCount() { void SinkStream::WaitFreeSpace(std::stop_token stop_token) { std::unique_lock lk{release_mutex}; release_cv.wait_for(lk, std::chrono::milliseconds(5), - [this]() { return queued_buffers < max_queue_size; }); + [this]() { return paused || queued_buffers < max_queue_size; }); if (queued_buffers > max_queue_size + 3) { Common::CondvarWait(release_cv, lk, stop_token, - [this] { return queued_buffers < max_queue_size; }); + [this] { return paused || queued_buffers < max_queue_size; }); } } +void SinkStream::SignalPause() { + { + std::scoped_lock lk{release_mutex}; + paused = true; + } + release_cv.notify_one(); +} + } // namespace AudioCore::Sink |