This commit is contained in:
twinaphex 2016-02-10 06:01:11 +01:00
parent 259ac2ddbd
commit f2952c530c
4 changed files with 29 additions and 11 deletions

View File

@ -567,8 +567,14 @@ static void xmb_update_boxart_path(xmb_handle_t *xmb, unsigned i)
static void menu_display_handle_boxart_upload(void *task_data, static void menu_display_handle_boxart_upload(void *task_data,
void *user_data, const char *err) void *user_data, const char *err)
{ {
menu_ctx_load_image_t load_image_info;
struct texture_image *img = (struct texture_image*)task_data; struct texture_image *img = (struct texture_image*)task_data;
menu_driver_load_image(img, MENU_IMAGE_BOXART);
load_image_info.data = img;
load_image_info.type = MENU_IMAGE_BOXART;
menu_driver_ctl(RARCH_MENU_CTL_LOAD_IMAGE, &load_image_info);
video_texture_image_free(img); video_texture_image_free(img);
free(img); free(img);
} }

View File

@ -506,8 +506,13 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data)
void menu_display_handle_wallpaper_upload(void *task_data, void menu_display_handle_wallpaper_upload(void *task_data,
void *user_data, const char *err) void *user_data, const char *err)
{ {
menu_ctx_load_image_t load_image_info;
struct texture_image *img = (struct texture_image*)task_data; struct texture_image *img = (struct texture_image*)task_data;
menu_driver_load_image(img, MENU_IMAGE_WALLPAPER);
load_image_info.data = img;
load_image_info.type = MENU_IMAGE_WALLPAPER;
menu_driver_ctl(RARCH_MENU_CTL_LOAD_IMAGE, &load_image_info);
video_texture_image_free(img); video_texture_image_free(img);
free(img); free(img);
} }

View File

@ -380,13 +380,6 @@ static void menu_driver_toggle(bool latch)
} }
} }
bool menu_driver_load_image(void *data, menu_image_type_t type)
{
if (!menu_driver_ctx || !menu_driver_ctx->load_image)
return false;
return menu_driver_ctx->load_image(menu_userdata, data, type);
}
bool menu_environment_cb(menu_environ_cb_t type, void *data) bool menu_environment_cb(menu_environ_cb_t type, void *data)
{ {
if (menu_driver_ctx->environ_cb) if (menu_driver_ctx->environ_cb)
@ -740,6 +733,14 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
menu_driver_ctx->list_set_selection(menu_userdata, list); menu_driver_ctx->list_set_selection(menu_userdata, list);
} }
break; break;
case RARCH_MENU_CTL_LOAD_IMAGE:
{
menu_ctx_load_image_t *load_image_info = (menu_ctx_load_image_t*)data;
if (!menu_driver_ctx || !menu_driver_ctx->load_image)
return false;
return menu_driver_ctx->load_image(menu_userdata,
load_image_info->data, load_image_info->type);
}
default: default:
case RARCH_MENU_CTL_NONE: case RARCH_MENU_CTL_NONE:
break; break;

View File

@ -137,7 +137,8 @@ enum rarch_menu_ctl_state
RARCH_MENU_CTL_SHADER_MANAGER_INIT, RARCH_MENU_CTL_SHADER_MANAGER_INIT,
RARCH_MENU_CTL_LIST_SET_SELECTION, RARCH_MENU_CTL_LIST_SET_SELECTION,
RARCH_MENU_CTL_POPULATE_ENTRIES, RARCH_MENU_CTL_POPULATE_ENTRIES,
RARCH_MENU_CTL_FIND_DRIVER RARCH_MENU_CTL_FIND_DRIVER,
RARCH_MENU_CTL_LOAD_IMAGE
}; };
typedef enum typedef enum
@ -314,6 +315,12 @@ typedef struct menu_ctx_driver
menu_entry_t *entry, unsigned action); menu_entry_t *entry, unsigned action);
} menu_ctx_driver_t; } menu_ctx_driver_t;
typedef struct menu_ctx_load_image
{
void *data;
menu_image_type_t type;
} menu_ctx_load_image_t;
extern menu_ctx_driver_t menu_ctx_xui; extern menu_ctx_driver_t menu_ctx_xui;
extern menu_ctx_driver_t menu_ctx_rgui; extern menu_ctx_driver_t menu_ctx_rgui;
extern menu_ctx_driver_t menu_ctx_mui; extern menu_ctx_driver_t menu_ctx_mui;
@ -352,7 +359,6 @@ const char* config_get_menu_driver_options(void);
menu_handle_t *menu_driver_get_ptr(void); menu_handle_t *menu_driver_get_ptr(void);
bool menu_driver_load_image(void *data, menu_image_type_t type);
void menu_driver_list_cache(menu_list_type_t type, unsigned action); void menu_driver_list_cache(menu_list_type_t type, unsigned action);