summaryrefslogtreecommitdiff
path: root/src/audio_core
diff options
context:
space:
mode:
authorGravatar Fernando S2022-07-10 10:29:56 +0200
committerGravatar GitHub2022-07-10 10:29:56 +0200
commit25e47738f71e6a6469ff251dd84e28289133dad1 (patch)
treec431a3b1ee04fb4da60e08ab21d78a5813e9b528 /src/audio_core
parentMerge pull request #8531 from FernandoS27/core-timing-fix-reg (diff)
parentPR (diff)
downloadyuzu-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.cpp10
-rw-r--r--src/audio_core/stream.cpp5
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