(XMB) Finalize the thumbnail type switching on keypress

This commit is contained in:
Jean-André Santoni 2016-04-28 03:26:09 +07:00
parent 68a17c5401
commit 7150ea5df2
9 changed files with 48 additions and 3 deletions

View File

@ -97,6 +97,9 @@ int action_switch_thumbnail(const char *path,
if (settings->menu.thumbnails > 3)
settings->menu.thumbnails = 0;
menu_driver_ctl(RARCH_MENU_CTL_UPDATE_THUMBNAIL_PATH, NULL);
menu_driver_ctl(RARCH_MENU_CTL_UPDATE_THUMBNAIL_IMAGE, NULL);
return 0;
}

View File

@ -493,4 +493,6 @@ menu_ctx_driver_t menu_ctx_nuklear = {
"nuklear",
nk_menu_environ,
NULL,
NULL,
NULL
};

View File

@ -60,4 +60,6 @@ menu_ctx_driver_t menu_ctx_null = {
"null",
NULL,
NULL,
NULL, /* update_thumbnail_path */
NULL, /* update_thumbnail_image */
};

View File

@ -915,4 +915,6 @@ menu_ctx_driver_t menu_ctx_rgui = {
"rgui",
rgui_environ,
rgui_pointer_tap,
NULL,
NULL
};

View File

@ -664,8 +664,12 @@ end:
string_list_free(list);
}
static void xmb_update_thumbnail_path(xmb_handle_t *xmb, unsigned i)
static void xmb_update_thumbnail_path(void *data, unsigned i)
{
xmb_handle_t *xmb = (xmb_handle_t*)data;
if (!xmb)
return;
menu_entry_t entry;
settings_t *settings = config_get_ptr();
char *tmp = NULL;
@ -704,8 +708,12 @@ static void menu_display_handle_thumbnail_upload(void *task_data,
free(img);
}
static void xmb_update_thumbnail_image(xmb_handle_t *xmb)
static void xmb_update_thumbnail_image(void *data)
{
xmb_handle_t *xmb = (xmb_handle_t*)data;
if (!xmb)
return;
if (path_file_exists(xmb->thumbnail_file_path))
rarch_task_push_image_load(xmb->thumbnail_file_path, "cb_menu_thumbnail",
menu_display_handle_thumbnail_upload, NULL);
@ -3214,4 +3222,6 @@ menu_ctx_driver_t menu_ctx_xmb = {
"xmb",
xmb_environ,
xmb_pointer_tap,
xmb_update_thumbnail_path,
xmb_update_thumbnail_image,
};

View File

@ -723,4 +723,6 @@ menu_ctx_driver_t menu_ctx_xui = {
"xui",
xui_environ,
NULL,
NULL,
NULL
};

View File

@ -1203,4 +1203,6 @@ menu_ctx_driver_t menu_ctx_zarch = {
"zarch",
NULL,
NULL,
NULL,
NULL
};

View File

@ -926,6 +926,24 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
bind->menu_label_hash);
}
break;
case RARCH_MENU_CTL_UPDATE_THUMBNAIL_PATH:
{
size_t selection;
if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection))
return false;
if (!menu_driver_ctx || !menu_driver_ctx->update_thumbnail_path)
return false;
menu_driver_ctx->update_thumbnail_path(menu_userdata, selection);
}
break;
case RARCH_MENU_CTL_UPDATE_THUMBNAIL_IMAGE:
{
if (!menu_driver_ctx || !menu_driver_ctx->update_thumbnail_image)
return false;
menu_driver_ctx->update_thumbnail_image(menu_userdata);
}
break;
default:
case RARCH_MENU_CTL_NONE:
break;

View File

@ -167,7 +167,9 @@ enum rarch_menu_ctl_state
RARCH_MENU_CTL_ENVIRONMENT,
RARCH_MENU_CTL_DRIVER_DATA_GET,
RARCH_MENU_CTL_POINTER_TAP,
RARCH_MENU_CTL_BIND_INIT
RARCH_MENU_CTL_BIND_INIT,
RARCH_MENU_CTL_UPDATE_THUMBNAIL_PATH,
RARCH_MENU_CTL_UPDATE_THUMBNAIL_IMAGE
};
enum menu_file_type
@ -347,6 +349,8 @@ typedef struct menu_ctx_driver
int (*pointer_tap)(void *data, unsigned x, unsigned y, unsigned ptr,
menu_file_list_cbs_t *cbs,
menu_entry_t *entry, unsigned action);
void (*update_thumbnail_path)(void *data, unsigned i);
void (*update_thumbnail_image)(void *data);
} menu_ctx_driver_t;
typedef struct menu_ctx_load_image