diff --git a/src/libs/metadata/CMakeLists.txt b/src/libs/metadata/CMakeLists.txt
index 8fa1167c..63d93046 100644
--- a/src/libs/metadata/CMakeLists.txt
+++ b/src/libs/metadata/CMakeLists.txt
@@ -9,10 +9,12 @@ if (BUILD_BENCHMARKS)
endif()
add_library(lmsmetadata STATIC
+ impl/AvFormatImageReader.cpp
impl/AvFormatTagReader.cpp
impl/Lyrics.cpp
- impl/Parser.cpp
+ impl/AudioFileParser.cpp
impl/PlayList.cpp
+ impl/TagLibImageReader.cpp
impl/TagLibTagReader.cpp
impl/Utils.cpp
)
diff --git a/src/libs/metadata/impl/Parser.cpp b/src/libs/metadata/impl/AudioFileParser.cpp
similarity index 85%
rename from src/libs/metadata/impl/Parser.cpp
rename to src/libs/metadata/impl/AudioFileParser.cpp
index 4c922f5a..54eaf31e 100644
--- a/src/libs/metadata/impl/Parser.cpp
+++ b/src/libs/metadata/impl/AudioFileParser.cpp
@@ -17,7 +17,7 @@
* along with LMS. If not, see .
*/
-#include "Parser.hpp"
+#include "AudioFileParser.hpp"
#include
@@ -26,7 +26,9 @@
#include "core/String.hpp"
#include "metadata/Exception.hpp"
+#include "AvFormatImageReader.hpp"
#include "AvFormatTagReader.hpp"
+#include "TagLibImageReader.hpp"
#include "TagLibTagReader.hpp"
#include "Utils.hpp"
@@ -316,19 +318,18 @@ namespace lms::metadata
}
} // namespace
- std::unique_ptr createParser(ParserBackend parserBackend, ParserReadStyle parserReadStyle)
+ std::unique_ptr createAudioFileParser(const AudioFileParserParameters& params)
{
- return std::make_unique(parserBackend, parserReadStyle);
+ return std::make_unique(params);
}
- Parser::Parser(ParserBackend parserBackend, ParserReadStyle readStyle)
- : _parserBackend{ parserBackend }
- , _readStyle{ readStyle }
+ AudioFileParser::AudioFileParser(const AudioFileParserParameters& params)
+ : _params{ params }
{
- switch (_parserBackend)
+ switch (_params.backend)
{
case ParserBackend::TagLib:
- LMS_LOG(METADATA, INFO, "Using TagLib parser with read style = " << utils::readStyleToString(readStyle));
+ LMS_LOG(METADATA, INFO, "Using TagLib parser with read style = " << utils::readStyleToString(_params.readStyle));
break;
case ParserBackend::AvFormat:
@@ -337,7 +338,7 @@ namespace lms::metadata
}
}
- std::span Parser::getSupportedExtensions() const
+ std::span AudioFileParser::getSupportedExtensions() const
{
// TODO: use backend capability to retrieve supported formats
static const std::array fileExtensions{
@@ -363,34 +364,61 @@ namespace lms::metadata
return fileExtensions;
}
- std::unique_ptr