summaryrefslogtreecommitdiffstats
path: root/src/library/coverart.cpp
diff options
context:
space:
mode:
authorMarcos CARDINOT <mcardinot@gmail.com>2014-05-30 14:30:29 +0100
committerMarcos CARDINOT <mcardinot@gmail.com>2014-05-30 15:19:39 +0100
commit7e33524b7532e0392611a824614f6df370ac7a01 (patch)
treee428702d32e1f0be6f23cde4e4513f8f30da26fa /src/library/coverart.cpp
parent73d918f6b0d0fca412c7fc3a546f69e76cc7cd50 (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.cpp60
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!
}
}