1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 12:07:45 +00:00

LibAudio: Factorize stream initialisation to base class LoaderPlugin

All actual plugins follow the same logic to initialize their stream,
this commit factorizes all of this to their base class: `LoaderPlugin`.
This commit is contained in:
Lucas CHOLLET 2022-10-13 16:05:57 +02:00 committed by Linus Groh
parent 754b129f4a
commit c837a1a8de
10 changed files with 42 additions and 31 deletions

View file

@ -19,23 +19,20 @@ namespace Audio {
static constexpr size_t const maximum_wav_size = 1 * GiB; // FIXME: is there a more appropriate size limit?
WavLoaderPlugin::WavLoaderPlugin(StringView path)
: m_path(path)
: LoaderPlugin(path)
{
}
MaybeLoaderError WavLoaderPlugin::initialize()
{
if (m_backing_memory.has_value())
m_stream = LOADER_TRY(Core::Stream::MemoryStream::construct(m_backing_memory.value()));
else
m_stream = LOADER_TRY(Core::Stream::File::open(m_path, Core::Stream::OpenMode::Read));
LOADER_TRY(LoaderPlugin::initialize());
TRY(parse_header());
return {};
}
WavLoaderPlugin::WavLoaderPlugin(Bytes const& buffer)
: m_backing_memory(buffer)
WavLoaderPlugin::WavLoaderPlugin(Bytes buffer)
: LoaderPlugin(buffer)
{
}