rage albumart - use image files in saame dir as media file if there

if you have

file.mp4

then this will use

file.mp4.png
file.mp4.jpg
file.mp3.jpeg

in that order (first found wins) in the same dir instead of googling
for an image. it will also try after the abover, in order:

file.png
file.jpg
file.jpeg
.file.mp4.png
.file.mp4.jpg
.file.mp4.jpeg
.file.png
.file.jpg
.file.jpeg
.thumb/file.mp4.png
.thumb/file.mp4.jpg
.thumb/file.mp3.jpeg
.thumb/file.png
.thumb/file.jpg
.thumb/file.jpeg

first one found wins. if none of these exist, then google shall be
consulted. :)
This commit is contained in:
Carsten Haitzler 2015-11-21 18:16:41 +09:00
parent d0668f7e75
commit 1f6f9b084b
1 changed files with 69 additions and 0 deletions

View File

@ -315,5 +315,74 @@ albumart_find(const char *file,
char *
albumart_file_get(const char *file)
{
char *tmp = alloca(strlen(file) + 1 + 100);
char *dir, *fraw, *s;
const char *fname;
sprintf(tmp, "%s.png", file);
if (ecore_file_exists(tmp)) return strdup(tmp);
sprintf(tmp, "%s.jpg", file);
if (ecore_file_exists(tmp)) return strdup(tmp);
sprintf(tmp, "%s.jpeg", file);
if (ecore_file_exists(tmp)) return strdup(tmp);
dir = ecore_file_dir_get(file);
if (!dir) dir = strdup(".");
fname = ecore_file_file_get(file);
if (!fname)
{
free(dir);
return NULL;
}
fraw = strdup(fname);
if (!fraw)
{
free(dir);
return NULL;
}
s = strrchr(fraw, '.');
if (s) *s = 0;
sprintf(tmp, "%s/%s.png", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/%s.jpg", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/%s.jpeg", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.%s.png", dir, fname);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.%s.jpg", dir, fname);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.%s.jpeg", dir, fname);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.%s.png", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.%s.jpg", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.%s.jpeg", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.thumb/%s.png", dir, fname);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.thumb/%s.jpg", dir, fname);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.thumb/%s.jpeg", dir, fname);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.thumb/%s.png", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.thumb/%s.jpg", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
sprintf(tmp, "%s/.thumb/%s.jpeg", dir, fraw);
if (ecore_file_exists(tmp)) goto found;
free(dir);
free(fraw);
return _thumbpath(file);
found:
free(dir);
free(fraw);
return strdup(tmp);
}