diff --git a/include/utility/MetadataRetriever.h b/include/utility/MetadataRetriever.h index 83d53ed..683021c 100644 --- a/include/utility/MetadataRetriever.h +++ b/include/utility/MetadataRetriever.h @@ -4,13 +4,19 @@ #include #include +#include +#include +#include +#include +#include + #include "model/Models.h" namespace utility { class MetadataRetriever { public: model::Song retrieveMetadata(model::Song&); - + model::Cover updateCoverArt(const model::Song&, model::Cover&, const std::string&); model::Cover applyStockCoverArt(const model::Song&, model::Cover&, const std::string&); model::Cover applyCoverArt(const model::Song&, model::Cover&); diff --git a/src/utility/MetadataRetriever.cpp b/src/utility/MetadataRetriever.cpp index 139d04b..e03c24e 100644 --- a/src/utility/MetadataRetriever.cpp +++ b/src/utility/MetadataRetriever.cpp @@ -6,11 +6,6 @@ #include #include -#include -#include -#include -#include -#include #include "manager/DirectoryManager.h" #include "utility/ImageFile.h" @@ -22,12 +17,13 @@ namespace utility { model::Song MetadataRetriever::retrieveMetadata(model::Song& song) { TagLib::MPEG::File sameFile(song.songPath.c_str()); auto tag = sameFile.ID3v2Tag(); - song.title = tag->title().toCString(); - song.artist = tag->artist().toCString(); - song.album = tag->album().toCString(); - song.genre = tag->genre().toCString(); + song.title = tag->title().toCString(true); + song.artist = tag->artist().toCString(true); + song.album = tag->album().toCString(true); + song.genre = tag->genre().toCString(true); song.year = tag->year(); song.track = tag->track(); + song.duration = sameFile.audioProperties()->lengthInSeconds(); constexpr auto id3DiscName = "TPOS"; @@ -49,12 +45,12 @@ namespace utility { if (albumArtistFrame.isEmpty()) { TagLib::ID3v2::TextIdentificationFrame *emptyFrame = - new TagLib::ID3v2::TextIdentificationFrame(id3DiscName); + new TagLib::ID3v2::TextIdentificationFrame(id3AlbumArtistName); tag->addFrame(emptyFrame); emptyFrame->setText(song.artist.c_str()); sameFile.save(); } else { - song.albumArtist = albumArtistFrame.front()->toString().toCString(); + song.albumArtist = albumArtistFrame.front()->toString().toCString(true); } return song;