diff options
Diffstat (limited to 'src/audio_core/in/audio_in_system.cpp')
| -rw-r--r-- | src/audio_core/in/audio_in_system.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/audio_core/in/audio_in_system.cpp b/src/audio_core/in/audio_in_system.cpp index b2dd3ef9f7..44fd5ce7b6 100644 --- a/src/audio_core/in/audio_in_system.cpp +++ b/src/audio_core/in/audio_in_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::AudioIn { System::System(Core::System& system_, Kernel::KEvent* event_, const size_t session_id_) @@ -92,7 +110,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; @@ -137,7 +155,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)); } } |
