Create menu_init_list and menu_free_list

This commit is contained in:
twinaphex 2014-10-09 00:23:39 +02:00
parent 5d558497af
commit 1fe95bdafb
3 changed files with 26 additions and 5 deletions

View File

@ -868,6 +868,8 @@ static void init_menu(void)
RARCH_ERR("Cannot initialize menu.\n"); RARCH_ERR("Cannot initialize menu.\n");
rarch_fail(1, "init_menu()"); rarch_fail(1, "init_menu()");
} }
menu_init_list(driver.menu);
} }
#endif #endif
@ -1487,6 +1489,7 @@ void uninit_drivers(void)
if (!driver.menu_data_own) if (!driver.menu_data_own)
{ {
menu_free_list(driver.menu);
menu_free(driver.menu); menu_free(driver.menu);
driver.menu = NULL; driver.menu = NULL;
} }

View File

@ -138,7 +138,7 @@ bool load_menu_content(void)
void *menu_init(const void *data) void *menu_init(const void *data)
{ {
menu_handle_t *menu; menu_handle_t *menu = NULL;
menu_ctx_driver_t *menu_ctx = (menu_ctx_driver_t*)data; menu_ctx_driver_t *menu_ctx = (menu_ctx_driver_t*)data;
if (!menu_ctx) if (!menu_ctx)
@ -156,13 +156,9 @@ void *menu_init(const void *data)
#ifdef HAVE_SHADER_MANAGER #ifdef HAVE_SHADER_MANAGER
menu->shader = (struct gfx_shader*)calloc(1, sizeof(struct gfx_shader)); menu->shader = (struct gfx_shader*)calloc(1, sizeof(struct gfx_shader));
#endif #endif
file_list_push(menu->menu_stack, "", "mainmenu", MENU_SETTINGS, 0);
menu_clear_navigation(menu);
menu->push_start_screen = g_settings.menu_show_start_screen; menu->push_start_screen = g_settings.menu_show_start_screen;
g_settings.menu_show_start_screen = false; g_settings.menu_show_start_screen = false;
menu_entries_push_list(menu, menu->selection_buf,
"", "mainmenu", 0);
menu->current_pad = 0; menu->current_pad = 0;
@ -173,6 +169,24 @@ void *menu_init(const void *data)
return menu; return menu;
} }
void menu_free_list(void *data)
{
(void)data;
}
void menu_init_list(void *data)
{
menu_handle_t *menu = (menu_handle_t*)data;
if (!menu)
return;
file_list_push(menu->menu_stack, "", "mainmenu", MENU_SETTINGS, 0);
menu_clear_navigation(menu);
menu_entries_push_list(menu, menu->selection_buf,
"", "mainmenu", 0);
}
void menu_free(void *data) void menu_free(void *data)
{ {
menu_handle_t *menu = (menu_handle_t*)data; menu_handle_t *menu = (menu_handle_t*)data;

View File

@ -137,6 +137,10 @@ typedef enum
void *menu_init(const void *data); void *menu_init(const void *data);
void menu_free_list(void *data);
void menu_init_list(void *data);
int menu_iterate(retro_input_t input, int menu_iterate(retro_input_t input,
retro_input_t old_input, retro_input_t trigger_input); retro_input_t old_input, retro_input_t trigger_input);