diff --git a/src/libs/metadata/impl/TagLibTagReader.cpp b/src/libs/metadata/impl/TagLibTagReader.cpp index 89c7f45b..0730eb32 100644 --- a/src/libs/metadata/impl/TagLibTagReader.cpp +++ b/src/libs/metadata/impl/TagLibTagReader.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include "core/ILogger.hpp" #include "core/ITraceLogger.hpp" @@ -332,6 +333,16 @@ namespace lms::metadata _hasEmbeddedCover = true; } } + else if (TagLib::RIFF::WAV::File * wavFile{ dynamic_cast(_file.file()) }) + { + if (wavFile->hasID3v2Tag()) + { + const auto& frameListMap{ wavFile->tag()->frameListMap() }; + + if (!frameListMap["APIC"].isEmpty()) + _hasEmbeddedCover = true; + } + } if (debug && core::Service::get()->isSeverityActive(core::logging::Severity::DEBUG)) { @@ -368,6 +379,8 @@ namespace lms::metadata _audioProperties.bitsPerSample = wavePackProperties->bitsPerSample(); else if (const auto* aiffProperties{ dynamic_cast(properties) }) _audioProperties.bitsPerSample = aiffProperties->bitsPerSample(); + else if (const auto* wavProperties{ dynamic_cast(properties) }) + _audioProperties.bitsPerSample = wavProperties->bitsPerSample(); #if TAGLIB_MAJOR_VERSION >= 2 else if (const auto* dsfProperties{ dynamic_cast(properties) }) _audioProperties.bitsPerSample = dsfProperties->bitsPerSample();