Skip to content

Commit

Permalink
Try for non-PNG thumbnails as well.
Browse files Browse the repository at this point in the history
  • Loading branch information
zoltanvb committed Jul 21, 2024
1 parent 3c45d78 commit fe35465
Showing 1 changed file with 26 additions and 2 deletions.
28 changes: 26 additions & 2 deletions gfx/gfx_thumbnail_path.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,9 @@ bool gfx_thumbnail_update_path(
const char *system_name = NULL;
char *thumbnail_path = NULL;
const char *dir_thumbnails = NULL;
/* Thumbnail extension order. The default (i.e. png) is always the first. */
#define MAX_SUPPORTED_THUMBNAIL_EXTENSIONS 5
const char* const SUPPORTED_THUMBNAIL_EXTENSIONS[] = { ".png", ".jpg", ".jpeg", ".bmp", ".tga", 0 };

if (!path_data)
return false;
Expand Down Expand Up @@ -648,6 +651,8 @@ bool gfx_thumbnail_update_path(
char tmp_buf[PATH_MAX_LENGTH];
const char *type = gfx_thumbnail_get_type(settings,
path_data, thumbnail_id);
int i;
bool thumbnail_found = false;
/* > Normal content: assemble path */

/* >> Base + system name */
Expand All @@ -663,19 +668,38 @@ bool gfx_thumbnail_update_path(
fill_pathname_join_special(thumbnail_path, tmp_buf,
path_data->content_img_full, PATH_MAX_LENGTH * sizeof(char));
}
thumbnail_found = path_is_valid(thumbnail_path);
/* Try alternative file extensions in turn */
for(i=1;i<MAX_SUPPORTED_THUMBNAIL_EXTENSIONS && !thumbnail_found && thumbnail_path[0]!='\0';i++)
{
strlcpy(path_get_extension_mutable(thumbnail_path),SUPPORTED_THUMBNAIL_EXTENSIONS[i],6);
thumbnail_found = path_is_valid(thumbnail_path);
}
/* >> Add content image - second try with label (database name) */
if(!path_is_valid(thumbnail_path) && path_data->content_img[0] != '\0')
if(!thumbnail_found && path_data->content_img[0] != '\0')
{
thumbnail_path[0] = '\0';
fill_pathname_join_special(thumbnail_path, tmp_buf,
path_data->content_img, PATH_MAX_LENGTH * sizeof(char));
thumbnail_found = path_is_valid(thumbnail_path);
}
for(i=1;i<MAX_SUPPORTED_THUMBNAIL_EXTENSIONS && !thumbnail_found;i++)
{
strlcpy(path_get_extension_mutable(thumbnail_path),SUPPORTED_THUMBNAIL_EXTENSIONS[i],6);
thumbnail_found = path_is_valid(thumbnail_path);
}
/* >> Add content image - third try with shortened name (title only) */
if(!path_is_valid(thumbnail_path) && path_data->content_img_short[0] != '\0')
if(!thumbnail_found && path_data->content_img_short[0] != '\0')
{
thumbnail_path[0] = '\0';
fill_pathname_join_special(thumbnail_path, tmp_buf,
path_data->content_img_short, PATH_MAX_LENGTH * sizeof(char));
thumbnail_found = path_is_valid(thumbnail_path);
}
for(i=1;i<MAX_SUPPORTED_THUMBNAIL_EXTENSIONS && !thumbnail_found;i++)
{
strlcpy(path_get_extension_mutable(thumbnail_path),SUPPORTED_THUMBNAIL_EXTENSIONS[i],6);
thumbnail_found = path_is_valid(thumbnail_path);
}
/* This logic is valid for locally stored thumbnails. For optional downloads,
* gfx_thumbnail_get_img_name() is used */
Expand Down

0 comments on commit fe35465

Please sign in to comment.