aboutsummaryrefslogtreecommitdiff
path: root/src/audio_core/out/audio_out_system.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio_core/out/audio_out_system.cpp')
-rw-r--r--src/audio_core/out/audio_out_system.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/audio_core/out/audio_out_system.cpp b/src/audio_core/out/audio_out_system.cpp
index 7b3ff4e881..d65f445b6a 100644
--- a/src/audio_core/out/audio_out_system.cpp
+++ b/src/audio_core/out/audio_out_system.cpp
@@ -1,3 +1,6 @@
+// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-License-Identifier: GPL-3.0-or-later
+
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -11,6 +14,21 @@
#include "core/core_timing.h"
#include "core/hle/kernel/k_event.h"
+// See texture_cache/util.h
+template<typename T, size_t N>
+#if BOOST_VERSION >= 108100 || __GNUC__ > 12
+[[nodiscard]] boost::container::static_vector<T, N> FixStaticVectorADL(const boost::container::static_vector<T, N>& v) {
+ return v;
+}
+#else
+[[nodiscard]] std::vector<T> FixStaticVectorADL(const boost::container::static_vector<T, N>& v) {
+ std::vector<T> u;
+ for (auto const& e : v)
+ u.push_back(e);
+ return u;
+}
+#endif
+
namespace AudioCore::AudioOut {
System::System(Core::System& system_, Kernel::KEvent* event_, size_t session_id_)
@@ -91,7 +109,7 @@ Result System::Start() {
boost::container::static_vector<AudioBuffer, BufferCount> buffers_to_flush{};
buffers.RegisterBuffers(buffers_to_flush);
- session->AppendBuffers(buffers_to_flush);
+ session->AppendBuffers(FixStaticVectorADL(buffers_to_flush));
session->SetRingSize(static_cast<u32>(buffers_to_flush.size()));
return ResultSuccess;
@@ -136,7 +154,7 @@ void System::RegisterBuffers() {
if (state == State::Started) {
boost::container::static_vector<AudioBuffer, BufferCount> registered_buffers{};
buffers.RegisterBuffers(registered_buffers);
- session->AppendBuffers(registered_buffers);
+ session->AppendBuffers(FixStaticVectorADL(registered_buffers));
}
}