void menu_entry_pathdir_extensions(uint32_t i, char *s, size_t len) { rarch_setting_t *setting = menu_entry_get_setting(i); const char *extensions = setting ? setting->values : NULL; if (setting && extensions) strlcpy(s, extensions, len); }
bool menu_entry_pathdir_allow_empty(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); if (!setting) return false; return setting->flags & SD_FLAG_ALLOW_EMPTY; }
int32_t menu_entry_bind_index(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); if (setting->index) return setting->index - 1; return 0; }
enum menu_entry_type menu_entry_get_type(uint32_t i) { rarch_setting_t *setting; const char *path = NULL, *entry_label = NULL; unsigned type = 0; const char *dir = NULL; const char *label = NULL; menu_list_t *menu_list = menu_list_get_ptr(); unsigned menu_type = 0; menu_list_get_last_stack(menu_list, &dir, &label, &menu_type); menu_list_get_at_offset(menu_list->selection_buf, i, &path, &entry_label, &type); setting = menu_entry_get_setting(i); // XXX Really a special kind of ST_ACTION, but this should be // changed if (setting_is_of_path_type(setting)) return MENU_ENTRY_PATH; else if (setting && setting->type == ST_BOOL ) return MENU_ENTRY_BOOL; else if (setting && setting->type == ST_BIND ) return MENU_ENTRY_BIND; else if (setting_is_of_enum_type(setting)) return MENU_ENTRY_ENUM; else if (setting && setting->type == ST_INT ) return MENU_ENTRY_INT; else if (setting && setting->type == ST_UINT ) return MENU_ENTRY_UINT; else if (setting && setting->type == ST_FLOAT ) return MENU_ENTRY_FLOAT; else if (setting && setting->type == ST_PATH ) return MENU_ENTRY_PATH; else if (setting && setting->type == ST_DIR ) return MENU_ENTRY_DIR; else if (setting && setting->type == ST_STRING ) return MENU_ENTRY_STRING; else if (setting && setting->type == ST_HEX ) return MENU_ENTRY_HEX; else return MENU_ENTRY_ACTION; }
uint32_t menu_entry_num_has_range(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); return (setting->flags & SD_FLAG_HAS_RANGE); }
void menu_entry_set_value(uint32_t i, const char *s) { rarch_setting_t *setting = menu_entry_get_setting(i); setting_set_with_string_representation(setting, s); }
uint32_t menu_entry_pathdir_for_directory(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); return setting->flags & SD_FLAG_PATH_DIR; }
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); }
void menu_entry_set_bool_value(uint32_t i, uint32_t new_val) { rarch_setting_t *setting = menu_entry_get_setting(i); *setting->value.boolean = new_val; }
void menu_entry_bind_key_set(uint32_t i, int32_t value) { rarch_setting_t *setting = menu_entry_get_setting(i); BINDFOR(*setting).key = (enum retro_key)value; }
struct string_list *menu_entry_enum_values(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); return string_split(setting->values, "|"); }
void menu_entry_set_bool_value(uint32_t i, bool value) { rarch_setting_t *setting = menu_entry_get_setting(i); setting_set_with_string_representation(setting, value ? "true" : "false"); }
uint32_t menu_entry_get_bool_value(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); return *setting->value.boolean; }
void menu_entry_pathdir_extensions(uint32_t i, char *s, size_t len) { rarch_setting_t *setting = menu_entry_get_setting(i); if (setting) strlcpy(s, setting->values, len); }
void menu_entry_pathdir_selected(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); if (setting_is_of_path_type(setting)) setting->action_toggle( setting, MENU_ACTION_RIGHT, false); }
float menu_entry_num_max(uint32_t i) { rarch_setting_t *setting = menu_entry_get_setting(i); return setting->max; }
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_bind_joyaxis_set(uint32_t i, int32_t value) { rarch_setting_t *setting = menu_entry_get_setting(i); BINDFOR(*setting).joyaxis = value; }