Create RARCH_MENU_CTL_FIND_DRIVER

This commit is contained in:
twinaphex 2016-02-09 16:49:23 +01:00
parent 5cd66a19b2
commit f604afeede
3 changed files with 13 additions and 6 deletions

View File

@ -454,7 +454,7 @@ bool driver_ctl(enum driver_ctl_state state, void *data)
find_camera_driver(); find_camera_driver();
find_location_driver(); find_location_driver();
#ifdef HAVE_MENU #ifdef HAVE_MENU
find_menu_driver(); menu_driver_ctl(RARCH_MENU_CTL_FIND_DRIVER, NULL);
#endif #endif
break; break;
case RARCH_DRIVER_CTL_SET_REFRESH_RATE: case RARCH_DRIVER_CTL_SET_REFRESH_RATE:

View File

@ -105,7 +105,7 @@ const char *config_get_menu_driver_options(void)
return char_list_new_special(STRING_LIST_MENU_DRIVERS, NULL); return char_list_new_special(STRING_LIST_MENU_DRIVERS, NULL);
} }
void find_menu_driver(void) static bool find_menu_driver(void)
{ {
int i; int i;
driver_ctx_info_t drv; driver_ctx_info_t drv;
@ -133,8 +133,13 @@ void find_menu_driver(void)
menu_driver_ctx = (const menu_ctx_driver_t*)menu_driver_find_handle(0); menu_driver_ctx = (const menu_ctx_driver_t*)menu_driver_find_handle(0);
if (!menu_driver_ctx) if (!menu_driver_ctx)
{
retro_fail(1, "find_menu_driver()"); retro_fail(1, "find_menu_driver()");
return false;
}
} }
return true;
} }
menu_handle_t *menu_driver_get_ptr(void) menu_handle_t *menu_driver_get_ptr(void)
@ -533,6 +538,8 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
content_playlist_free(menu_driver_playlist); content_playlist_free(menu_driver_playlist);
menu_driver_playlist = NULL; menu_driver_playlist = NULL;
break; break;
case RARCH_MENU_CTL_FIND_DRIVER:
return find_menu_driver();
case RARCH_MENU_CTL_PLAYLIST_INIT: case RARCH_MENU_CTL_PLAYLIST_INIT:
{ {
const char *path = (const char*)data; const char *path = (const char*)data;
@ -646,7 +653,8 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
if (menu_driver_data) if (menu_driver_data)
return false; return false;
find_menu_driver(); if (!menu_display_ctl(RARCH_MENU_CTL_FIND_DRIVER, NULL))
return false;
menu_driver_data = (menu_handle_t*)menu_init(menu_driver_ctx); menu_driver_data = (menu_handle_t*)menu_init(menu_driver_ctx);

View File

@ -135,7 +135,8 @@ enum rarch_menu_ctl_state
RARCH_MENU_CTL_CONTEXT_DESTROY, RARCH_MENU_CTL_CONTEXT_DESTROY,
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
}; };
typedef enum typedef enum
@ -348,8 +349,6 @@ const char *menu_driver_find_ident(int index);
**/ **/
const char* config_get_menu_driver_options(void); const char* config_get_menu_driver_options(void);
void find_menu_driver(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); bool menu_driver_load_image(void *data, menu_image_type_t type);