enum menu_entry_type menu_entry_get_type(uint32_t i) { rarch_setting_t *setting = menu_entries_get_setting(i); /* XXX Really a special kind of ST_ACTION, but this should be changed */ if (menu_setting_is_of_path_type(setting)) return MENU_ENTRY_PATH; if (setting) { enum setting_type setting_type = menu_setting_get_type(setting); switch (setting_type) { case ST_BOOL: return MENU_ENTRY_BOOL; case ST_BIND: return MENU_ENTRY_BIND; case ST_INT: return MENU_ENTRY_INT; case ST_UINT: return MENU_ENTRY_UINT; case ST_FLOAT: return MENU_ENTRY_FLOAT; case ST_PATH: return MENU_ENTRY_PATH; case ST_DIR: return MENU_ENTRY_DIR; case ST_STRING_OPTIONS: return MENU_ENTRY_ENUM; case ST_STRING: return MENU_ENTRY_STRING; case ST_HEX: return MENU_ENTRY_HEX; default: break; } } return MENU_ENTRY_ACTION; }
enum menu_entry_type menu_entry_get_type(uint32_t i) { rarch_setting_t *setting = NULL; const char *path = NULL; const char *entry_label = NULL; const char *dir = NULL; const char *label = NULL; menu_list_t *menu_list = menu_list_get_ptr(); unsigned type = 0; unsigned menu_type = 0; menu_list_get_last_stack(menu_list, &dir, &label, &menu_type, NULL); menu_list_get_at_offset(menu_list->selection_buf, i, &path, &entry_label, &type, NULL); setting = menu_entry_get_setting(i); // XXX Really a special kind of ST_ACTION, but this should be // changed if (menu_setting_is_of_path_type(setting)) return MENU_ENTRY_PATH; if (menu_setting_is_of_enum_type(setting)) return MENU_ENTRY_ENUM; if (setting) { switch (setting->type) { case ST_BOOL: return MENU_ENTRY_BOOL; case ST_BIND: return MENU_ENTRY_BIND; case ST_INT: return MENU_ENTRY_INT; case ST_UINT: return MENU_ENTRY_UINT; case ST_FLOAT: return MENU_ENTRY_FLOAT; case ST_PATH: return MENU_ENTRY_PATH; case ST_DIR: return MENU_ENTRY_DIR; case ST_STRING: return MENU_ENTRY_STRING; case ST_HEX: return MENU_ENTRY_HEX; case ST_NONE: case ST_ACTION: case ST_GROUP: case ST_SUB_GROUP: case ST_END_GROUP: case ST_END_SUB_GROUP: break; } } return MENU_ENTRY_ACTION; }
void menu_entry_pathdir_selected(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); if (menu_setting_is_of_path_type(setting)) setting->action_right(setting, false); }