diff options
author | Marcos CARDINOT <mcardinot@gmail.com> | 2014-05-30 14:30:29 +0100 |
---|---|---|
committer | Marcos CARDINOT <mcardinot@gmail.com> | 2014-05-30 15:19:39 +0100 |
commit | 7e33524b7532e0392611a824614f6df370ac7a01 (patch) | |
tree | e428702d32e1f0be6f23cde4e4513f8f30da26fa /src/library/coverart.cpp | |
parent | 73d918f6b0d0fca412c7fc3a546f69e76cc7cd50 (diff) |
Improvements in cover art search (TIO::parseCoverArt)
- add method to parse cover arts into sound file (extracting embedded covers)
This change is useful to handle existing users
Diffstat (limited to 'src/library/coverart.cpp')
-rw-r--r-- | src/library/coverart.cpp | 60 |
1 files changed, 44 insertions, 16 deletions
diff --git a/src/library/coverart.cpp b/src/library/coverart.cpp index 7eea3c68c6..1d2de1ebd7 100644 --- a/src/library/coverart.cpp +++ b/src/library/coverart.cpp @@ -38,6 +38,22 @@ bool CoverArt::saveFile(QImage cover, QString location) { return false; } +QString CoverArt::saveEmbeddedCover(QImage cover, QString artist, + QString album, QString filename) { + if (cover.isNull()) { + return ""; + } + + QString coverName = getDefaultCoverName(artist, album, filename); + QString location = getDefaultCoverLocation(coverName); + + if (saveFile(cover, location)) { + return location; + } + + return ""; +} + QString CoverArt::searchInDiskCache(QString coverArtName) { // Some image extensions QStringList extList; @@ -81,10 +97,6 @@ QString CoverArt::searchInTrackDirectory(QString directory) { return QString(); } -QString CoverArt::getDefaultCoverLocation(QString coverArtName) { - return getStoragePath() + coverArtName + "." + m_cDefaultImageFormat; -} - QString CoverArt::getDefaultCoverName(QString artist, QString album, QString filename) { @@ -95,34 +107,50 @@ QString CoverArt::getDefaultCoverName(QString artist, } } -QString CoverArt::searchCoverArtFile(TrackInfoObject* pTrack) { - // creates default cover art name +QString CoverArt::getDefaultCoverLocation(QString coverArtName) { + return getStoragePath() + coverArtName + "." + m_cDefaultImageFormat; +} + +QString CoverArt::getDefaultCoverLocation(TrackPointer pTrack) { + QString coverArtName = getDefaultCoverName(pTrack->getArtist(), + pTrack->getAlbum(), + pTrack->getFilename()); + + return getDefaultCoverLocation(coverArtName); +} + +QString CoverArt::searchCoverArtFile(TrackPointer pTrack) { + QString coverArtName = getDefaultCoverName(pTrack->getArtist(), pTrack->getAlbum(), pTrack->getFilename()); // // Step 1: Look for cover art in disk-cache directory. - // (all embedded covers will already be there) // - QString coverArtLocation = searchInDiskCache(coverArtName); + QString coverLocation = searchInDiskCache(coverArtName); + if (!coverLocation.isEmpty()) { + return coverLocation; // FOUND! + } - if (!coverArtLocation.isEmpty()) { - return coverArtLocation; // FOUND! + // + // Step 2: Look for embedded cover art. + // + coverLocation = pTrack->parseCoverArt(); + if (!coverLocation.isEmpty()) { + return coverLocation; // FOUND! } // - // Step 2: Look for cover stored in track diretory. + // Step 3: Look for cover stored in track diretory. // QImage image(searchInTrackDirectory(pTrack->getDirectory())); - // load default location - coverArtLocation = getDefaultCoverLocation(coverArtName); - if (!image.isNull()) { // try to store the image in our disk-cache! - if (saveFile(image, coverArtLocation)) { - return coverArtLocation; // FOUND! + coverLocation = getDefaultCoverLocation(coverArtName); + if (saveFile(image, coverLocation)) { + return coverLocation; // FOUND! } } |