diff options
author | waker <wakeroid@gmail.com> | 2011-11-13 19:16:11 +0100 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2011-11-13 19:16:11 +0100 |
commit | 6502057510696ea575a1cf0143dec02acb7cf01c (patch) | |
tree | 26a1b0613a487772d8cb451ec304c1ef81b453c1 | |
parent | 9b4c475971c510ae2a153d5df56a31833c2eb341 (diff) |
backwards compat fix in artwork plugin; also fixed spelling error and optimized mem allocation in get_album_art_sync
-rw-r--r-- | plugins/artwork/artwork.c | 35 | ||||
-rw-r--r-- | plugins/artwork/artwork.h | 5 |
2 files changed, 19 insertions, 21 deletions
diff --git a/plugins/artwork/artwork.c b/plugins/artwork/artwork.c index 2ad9c0cd..7fad8166 100644 --- a/plugins/artwork/artwork.c +++ b/plugins/artwork/artwork.c @@ -1240,28 +1240,25 @@ get_album_art (const char *fname, const char *artist, const char *album, int siz static void sync_callback (const char *fname, const char *artist, const char *album, void *user_data) { mutex_cond_t *mc = (mutex_cond_t *)user_data; - if (mc) { - deadbeef->mutex_lock (mc->mutex); - deadbeef->cond_signal (mc->cond); - deadbeef->mutex_unlock (mc->mutex); - } + deadbeef->mutex_lock (mc->mutex); + deadbeef->cond_signal (mc->cond); + deadbeef->mutex_unlock (mc->mutex); } -char* +static char* get_album_art_sync (const char *fname, const char *artist, const char *album, int size) { - mutex_cond_t *mc = malloc (sizeof (mutex_cond_t)); - mc->mutex = deadbeef->mutex_create (); - mc->cond = deadbeef->cond_create (); - deadbeef->mutex_lock (mc->mutex); - char *image_fname = get_album_art (fname, artist, album, size, sync_callback, mc); + mutex_cond_t mc; + mc.mutex = deadbeef->mutex_create (); + mc.cond = deadbeef->cond_create (); + deadbeef->mutex_lock (mc.mutex); + char *image_fname = get_album_art (fname, artist, album, size, sync_callback, &mc); while (!image_fname) { - deadbeef->cond_wait (mc->cond, mc->mutex); - image_fname = get_album_art (fname, artist, album, size, sync_callback, mc); + deadbeef->cond_wait (mc.cond, mc.mutex); + image_fname = get_album_art (fname, artist, album, size, sync_callback, &mc); } - deadbeef->mutex_unlock (mc->mutex); - deadbeef->mutex_free (mc->mutex); - deadbeef->cond_free (mc->cond); - free (mc); + deadbeef->mutex_unlock (mc.mutex); + deadbeef->mutex_free (mc.mutex); + deadbeef->cond_free (mc.cond); return image_fname; } @@ -1428,7 +1425,7 @@ static DB_artwork_plugin_t plugin = { .plugin.plugin.api_vmajor = 1, .plugin.plugin.api_vminor = 0, .plugin.plugin.version_major = 1, - .plugin.plugin.version_minor = 0, + .plugin.plugin.version_minor = 1, .plugin.plugin.type = DB_PLUGIN_MISC, .plugin.plugin.id = "artwork", .plugin.plugin.name = "Album Artwork", @@ -1457,7 +1454,7 @@ static DB_artwork_plugin_t plugin = { .plugin.plugin.configdialog = settings_dlg, .plugin.plugin.message = artwork_message, .get_album_art = get_album_art, - .get_album_art_sync = get_album_art_sync, .reset = artwork_reset, .get_default_cover = get_default_cover, + .get_album_art_sync = get_album_art_sync, }; diff --git a/plugins/artwork/artwork.h b/plugins/artwork/artwork.h index 2225f088..1c60475c 100644 --- a/plugins/artwork/artwork.h +++ b/plugins/artwork/artwork.h @@ -11,13 +11,14 @@ typedef struct { DB_misc_t plugin; // returns filename of cached image, or NULL char* (*get_album_art) (const char *fname, const char *artist, const char *album, int size, artwork_callback callback, void *user_data); - // syncronizely get filename - char* (*get_album_art_sync) (const char *fname, const char *artist, const char *album, int size); // this has to be called to clear queue on exit, before caller terminates // `fast=1' means "don't wait, just flush queue" void (*reset) (int fast); const char *(*get_default_cover) (void); + + // synchronously get filename + char* (*get_album_art_sync) (const char *fname, const char *artist, const char *album, int size); } DB_artwork_plugin_t; #endif /*__ARTWORK_H*/ |