diff options
| author | 2021-01-10 22:09:56 -0700 | |
|---|---|---|
| committer | 2021-01-10 22:09:56 -0700 | |
| commit | 7a3c884e39fccfbb498b855080bffabc9ce2e7f1 (patch) | |
| tree | 5056f9406dec188439cb0deb87603498243a9412 /src/audio_core/stream.cpp | |
| parent | More forgetting... duh (diff) | |
| parent | Merge pull request #5229 from Morph1984/fullscreen-opt (diff) | |
| download | yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.tar.gz yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.tar.xz yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.zip | |
Merge remote-tracking branch 'upstream/master' into int-flags
Diffstat (limited to 'src/audio_core/stream.cpp')
| -rw-r--r-- | src/audio_core/stream.cpp | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/src/audio_core/stream.cpp b/src/audio_core/stream.cpp index cb33926bc..afe68c9ed 100644 --- a/src/audio_core/stream.cpp +++ b/src/audio_core/stream.cpp | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | #include "common/assert.h" | 12 | #include "common/assert.h" |
| 13 | #include "common/logging/log.h" | 13 | #include "common/logging/log.h" |
| 14 | #include "core/core_timing.h" | 14 | #include "core/core_timing.h" |
| 15 | #include "core/core_timing_util.h" | ||
| 16 | #include "core/settings.h" | 15 | #include "core/settings.h" |
| 17 | 16 | ||
| 18 | namespace AudioCore { | 17 | namespace AudioCore { |
| @@ -32,10 +31,10 @@ u32 Stream::GetNumChannels() const { | |||
| 32 | return {}; | 31 | return {}; |
| 33 | } | 32 | } |
| 34 | 33 | ||
| 35 | Stream::Stream(Core::Timing::CoreTiming& core_timing, u32 sample_rate, Format format, | 34 | Stream::Stream(Core::Timing::CoreTiming& core_timing_, u32 sample_rate_, Format format_, |
| 36 | ReleaseCallback&& release_callback, SinkStream& sink_stream, std::string&& name_) | 35 | ReleaseCallback&& release_callback_, SinkStream& sink_stream_, std::string&& name_) |
| 37 | : sample_rate{sample_rate}, format{format}, release_callback{std::move(release_callback)}, | 36 | : sample_rate{sample_rate_}, format{format_}, release_callback{std::move(release_callback_)}, |
| 38 | sink_stream{sink_stream}, core_timing{core_timing}, name{std::move(name_)} { | 37 | sink_stream{sink_stream_}, core_timing{core_timing_}, name{std::move(name_)} { |
| 39 | release_event = | 38 | release_event = |
| 40 | Core::Timing::CreateEvent(name, [this](std::uintptr_t, std::chrono::nanoseconds ns_late) { | 39 | Core::Timing::CreateEvent(name, [this](std::uintptr_t, std::chrono::nanoseconds ns_late) { |
| 41 | ReleaseActiveBuffer(ns_late); | 40 | ReleaseActiveBuffer(ns_late); |
| @@ -123,7 +122,7 @@ bool Stream::QueueBuffer(BufferPtr&& buffer) { | |||
| 123 | return false; | 122 | return false; |
| 124 | } | 123 | } |
| 125 | 124 | ||
| 126 | bool Stream::ContainsBuffer(Buffer::Tag tag) const { | 125 | bool Stream::ContainsBuffer([[maybe_unused]] Buffer::Tag tag) const { |
| 127 | UNIMPLEMENTED(); | 126 | UNIMPLEMENTED(); |
| 128 | return {}; | 127 | return {}; |
| 129 | } | 128 | } |
| @@ -131,7 +130,25 @@ bool Stream::ContainsBuffer(Buffer::Tag tag) const { | |||
| 131 | std::vector<Buffer::Tag> Stream::GetTagsAndReleaseBuffers(std::size_t max_count) { | 130 | std::vector<Buffer::Tag> Stream::GetTagsAndReleaseBuffers(std::size_t max_count) { |
| 132 | std::vector<Buffer::Tag> tags; | 131 | std::vector<Buffer::Tag> tags; |
| 133 | for (std::size_t count = 0; count < max_count && !released_buffers.empty(); ++count) { | 132 | for (std::size_t count = 0; count < max_count && !released_buffers.empty(); ++count) { |
| 134 | tags.push_back(released_buffers.front()->GetTag()); | 133 | if (released_buffers.front()) { |
| 134 | tags.push_back(released_buffers.front()->GetTag()); | ||
| 135 | } else { | ||
| 136 | ASSERT_MSG(false, "Invalid tag in released_buffers!"); | ||
| 137 | } | ||
| 138 | released_buffers.pop(); | ||
| 139 | } | ||
| 140 | return tags; | ||
| 141 | } | ||
| 142 | |||
| 143 | std::vector<Buffer::Tag> Stream::GetTagsAndReleaseBuffers() { | ||
| 144 | std::vector<Buffer::Tag> tags; | ||
| 145 | tags.reserve(released_buffers.size()); | ||
| 146 | while (!released_buffers.empty()) { | ||
| 147 | if (released_buffers.front()) { | ||
| 148 | tags.push_back(released_buffers.front()->GetTag()); | ||
| 149 | } else { | ||
| 150 | ASSERT_MSG(false, "Invalid tag in released_buffers!"); | ||
| 151 | } | ||
| 135 | released_buffers.pop(); | 152 | released_buffers.pop(); |
| 136 | } | 153 | } |
| 137 | return tags; | 154 | return tags; |