summaryrefslogtreecommitdiff
path: root/plugins/artwork/artwork.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-06-23 09:11:26 +0200
committerGravatar waker <wakeroid@gmail.com>2011-06-23 09:11:26 +0200
commitdf3d04fcaa7cb49e2cdb6bd76316ff055748958d (patch)
treeb00a972a4afbdfe42fcef1fb74b5a9bbabe86a4f /plugins/artwork/artwork.c
parentf2870a342dd922325aef7b1af3e6db238055593d (diff)
cover art improvements
Diffstat (limited to 'plugins/artwork/artwork.c')
-rw-r--r--plugins/artwork/artwork.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/artwork/artwork.c b/plugins/artwork/artwork.c
index 7f56b870..1726a98c 100644
--- a/plugins/artwork/artwork.c
+++ b/plugins/artwork/artwork.c
@@ -117,6 +117,9 @@ queue_add (const char *fname, const char *artist, const char *album, int img_siz
for (cover_query_t *q = queue; q; q = q->next) {
if (!strcasecmp (artist, q->artist) || !strcasecmp (album, q->album)) {
deadbeef->mutex_unlock (mutex);
+ if (callback) {
+ callback (NULL, NULL, NULL, user_data);
+ }
return; // already in queue
}
}
@@ -154,6 +157,9 @@ queue_pop (void) {
if (queue->album) {
free (queue->album);
}
+ if (queue->callback) {
+ queue->callback (NULL, NULL, NULL, queue->user_data);
+ }
free (queue);
}
queue = next;
@@ -1045,6 +1051,7 @@ fetcher_thread (void *none)
}
if (param->callback) {
param->callback (param->fname, param->artist, param->album, param->user_data);
+ param->callback = NULL;
}
}
queue_pop ();
@@ -1099,16 +1106,25 @@ get_album_art (const char *fname, const char *artist, const char *album, int siz
if (!*artist || !*album)
{
//give up
+ if (callback) {
+ callback (NULL, NULL, NULL, user_data);
+ }
return size == -1 ? strdup (get_default_cover ()) : NULL;
}
if (!deadbeef->is_local_file (fname)) {
+ if (callback) {
+ callback (NULL, NULL, NULL, user_data);
+ }
return size == -1 ? strdup (get_default_cover ()) : NULL;
}
make_cache_path (path, sizeof (path), album, artist, size);
char *p = find_image (path);
if (p) {
+ if (callback) {
+ callback (NULL, NULL, NULL, user_data);
+ }
return p;
}
@@ -1127,6 +1143,9 @@ get_album_art (const char *fname, const char *artist, const char *album, int siz
else {
int res = copy_file (unscaled_path, path, size);
if (!res) {
+ if (callback) {
+ callback (NULL, NULL, NULL, user_data);
+ }
return strdup (path);
}
}