1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15: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

@ -11,6 +11,26 @@
namespace Audio {
LoaderPlugin::LoaderPlugin(StringView path)
: m_path(path)
{
}
LoaderPlugin::LoaderPlugin(Bytes buffer)
: m_backing_memory(buffer)
{
}
MaybeLoaderError LoaderPlugin::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));
return {};
}
Loader::Loader(NonnullOwnPtr<LoaderPlugin> plugin)
: m_plugin(move(plugin))
{