diff options
-rw-r--r-- | apps/recorder/albumart.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/apps/recorder/albumart.c b/apps/recorder/albumart.c index 0e45d9a935..13969d77e5 100644 --- a/apps/recorder/albumart.c +++ b/apps/recorder/albumart.c @@ -27,6 +27,7 @@ #include "dircache.h" #include "debug.h" #include "misc.h" +#include "settings.h" /* Strip filename from a full path @@ -79,6 +80,8 @@ static void fix_path_part(char* path, int offset, int count) for (i = 0; i <= count; i++, path++) { + if (*path == 0) + return; if (*path == '"') *path = '\''; else if (strchr(invalid_chars, *path)) @@ -92,6 +95,7 @@ static void fix_path_part(char* path, int offset, int count) * ./cover<size>.bmp * ../<albumname><size>.bmp * ../cover<size>.bmp + * ROCKBOX_DIR/albumart/<artist>-<albumname><size>.bmp * <size> is the value of the size_string parameter, <trackname> and * <albumname> are read from the ID3 metadata. * If a matching bitmap is found, its filename is stored in buf. @@ -140,6 +144,18 @@ bool search_albumart_files(const struct mp3entry *id3, const char *size_string, if (!found) { + /* look in the albumart subdir of .rockbox */ + snprintf(path, sizeof(path), + ROCKBOX_DIR "/albumart/%s-%s%s.bmp", + id3->artist, + id3->album, + size_string); + fix_path_part(path, strlen(ROCKBOX_DIR "/albumart/"), MAX_PATH); + found = file_exists(path); + } + + if (!found) + { /* if it still doesn't exist, * we continue to search in the parent directory */ strcpy(path, dir); |