Loader.cpp 734 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (c) 2018-2021, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibAudio/FlacLoader.h>
  7. #include <LibAudio/WavLoader.h>
  8. namespace Audio {
  9. Loader::Loader(const StringView& path)
  10. {
  11. m_plugin = make<WavLoaderPlugin>(path);
  12. if (m_plugin->sniff())
  13. return;
  14. m_plugin = make<FlacLoaderPlugin>(path);
  15. if (m_plugin->sniff())
  16. return;
  17. m_plugin = nullptr;
  18. }
  19. Loader::Loader(const ByteBuffer& buffer)
  20. {
  21. m_plugin = make<WavLoaderPlugin>(buffer);
  22. if (m_plugin->sniff())
  23. return;
  24. m_plugin = make<FlacLoaderPlugin>(buffer);
  25. if (m_plugin->sniff()) {
  26. dbgln("FLAC sniff successful");
  27. return;
  28. }
  29. m_plugin = nullptr;
  30. }
  31. }