diff --git a/Userland/Libraries/LibAudio/Buffer.h b/Userland/Libraries/LibAudio/Buffer.h index d69090940f..536d313998 100644 --- a/Userland/Libraries/LibAudio/Buffer.h +++ b/Userland/Libraries/LibAudio/Buffer.h @@ -7,6 +7,7 @@ #pragma once +#include "AK/TypedTransfer.h" #include #include #include @@ -47,6 +48,14 @@ public: } Sample const* samples() const { return (const Sample*)data(); } + + ErrorOr> to_sample_array() const + { + FixedArray samples = TRY(FixedArray::try_create(m_sample_count)); + AK::TypedTransfer::copy(samples.data(), this->samples(), m_sample_count); + return samples; + } + int sample_count() const { return m_sample_count; } void const* data() const { return m_buffer.data(); } int size_in_bytes() const { return m_sample_count * (int)sizeof(Sample); }