diff options
| author | 2022-07-10 10:29:56 +0200 | |
|---|---|---|
| committer | 2022-07-10 10:29:56 +0200 | |
| commit | 25e47738f71e6a6469ff251dd84e28289133dad1 (patch) | |
| tree | c431a3b1ee04fb4da60e08ab21d78a5813e9b528 /src/audio_core | |
| parent | Merge pull request #8531 from FernandoS27/core-timing-fix-reg (diff) | |
| parent | PR (diff) | |
| download | yuzu-25e47738f71e6a6469ff251dd84e28289133dad1.tar.gz yuzu-25e47738f71e6a6469ff251dd84e28289133dad1.tar.xz yuzu-25e47738f71e6a6469ff251dd84e28289133dad1.zip | |
Merge pull request #8561 from Kelebek1/Audio-CoreTiming
Rework CoreTiming events
Diffstat (limited to 'src/audio_core')
| -rw-r--r-- | src/audio_core/audio_renderer.cpp | 10 | ||||
| -rw-r--r-- | src/audio_core/stream.cpp | 5 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/audio_core/audio_renderer.cpp b/src/audio_core/audio_renderer.cpp index 2ee0a96ed..9191ca093 100644 --- a/src/audio_core/audio_renderer.cpp +++ b/src/audio_core/audio_renderer.cpp | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | 2 | // SPDX-License-Identifier: GPL-2.0-or-later |
| 3 | 3 | ||
| 4 | #include <limits> | 4 | #include <limits> |
| 5 | #include <optional> | ||
| 5 | #include <vector> | 6 | #include <vector> |
| 6 | 7 | ||
| 7 | #include "audio_core/audio_out.h" | 8 | #include "audio_core/audio_out.h" |
| @@ -88,9 +89,12 @@ AudioRenderer::AudioRenderer(Core::Timing::CoreTiming& core_timing_, Core::Memor | |||
| 88 | stream = audio_out->OpenStream( | 89 | stream = audio_out->OpenStream( |
| 89 | core_timing, params.sample_rate, AudioCommon::STREAM_NUM_CHANNELS, | 90 | core_timing, params.sample_rate, AudioCommon::STREAM_NUM_CHANNELS, |
| 90 | fmt::format("AudioRenderer-Instance{}", instance_number), std::move(release_callback)); | 91 | fmt::format("AudioRenderer-Instance{}", instance_number), std::move(release_callback)); |
| 91 | process_event = Core::Timing::CreateEvent( | 92 | process_event = |
| 92 | fmt::format("AudioRenderer-Instance{}-Process", instance_number), | 93 | Core::Timing::CreateEvent(fmt::format("AudioRenderer-Instance{}-Process", instance_number), |
| 93 | [this](std::uintptr_t, std::chrono::nanoseconds) { ReleaseAndQueueBuffers(); }); | 94 | [this](std::uintptr_t, s64, std::chrono::nanoseconds) { |
| 95 | ReleaseAndQueueBuffers(); | ||
| 96 | return std::nullopt; | ||
| 97 | }); | ||
| 94 | for (s32 i = 0; i < NUM_BUFFERS; ++i) { | 98 | for (s32 i = 0; i < NUM_BUFFERS; ++i) { |
| 95 | QueueMixedBuffer(i); | 99 | QueueMixedBuffer(i); |
| 96 | } | 100 | } |
diff --git a/src/audio_core/stream.cpp b/src/audio_core/stream.cpp index f8034b04b..cf3d94c53 100644 --- a/src/audio_core/stream.cpp +++ b/src/audio_core/stream.cpp | |||
| @@ -34,9 +34,10 @@ Stream::Stream(Core::Timing::CoreTiming& core_timing_, u32 sample_rate_, Format | |||
| 34 | ReleaseCallback&& release_callback_, SinkStream& sink_stream_, std::string&& name_) | 34 | ReleaseCallback&& release_callback_, SinkStream& sink_stream_, std::string&& name_) |
| 35 | : sample_rate{sample_rate_}, format{format_}, release_callback{std::move(release_callback_)}, | 35 | : sample_rate{sample_rate_}, format{format_}, release_callback{std::move(release_callback_)}, |
| 36 | sink_stream{sink_stream_}, core_timing{core_timing_}, name{std::move(name_)} { | 36 | sink_stream{sink_stream_}, core_timing{core_timing_}, name{std::move(name_)} { |
| 37 | release_event = | 37 | release_event = Core::Timing::CreateEvent( |
| 38 | Core::Timing::CreateEvent(name, [this](std::uintptr_t, std::chrono::nanoseconds ns_late) { | 38 | name, [this](std::uintptr_t, s64 time, std::chrono::nanoseconds ns_late) { |
| 39 | ReleaseActiveBuffer(ns_late); | 39 | ReleaseActiveBuffer(ns_late); |
| 40 | return std::nullopt; | ||
| 40 | }); | 41 | }); |
| 41 | } | 42 | } |
| 42 | 43 | ||