summaryrefslogtreecommitdiff
path: root/plugins/artwork
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/artwork')
-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 7ba418fc..5a5a9800 100644
--- a/plugins/artwork/artwork.c
+++ b/plugins/artwork/artwork.c
@@ -132,6 +132,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
}
}
@@ -169,6 +172,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;
@@ -1133,6 +1139,7 @@ fetcher_thread (void *none)
}
if (param->callback) {
param->callback (param->fname, param->artist, param->album, param->user_data);
+ param->callback = NULL;
}
}
queue_pop ();
@@ -1187,16 +1194,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;
}
@@ -1215,6 +1231,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);
}
}