static int menu_cbs_init_bind_start_compare_label(menu_file_list_cbs_t *cbs, uint32_t hash) { switch (hash) { case MENU_LABEL_REMAP_FILE_LOAD: BIND_ACTION_START(cbs, action_start_remap_file_load); break; case MENU_LABEL_VIDEO_FILTER: BIND_ACTION_START(cbs, action_start_video_filter_file_load); break; case MENU_LABEL_VIDEO_SHADER_PASS: BIND_ACTION_START(cbs, action_start_shader_pass); break; case MENU_LABEL_VIDEO_SHADER_SCALE_PASS: BIND_ACTION_START(cbs, action_start_shader_scale_pass); break; case MENU_LABEL_VIDEO_SHADER_FILTER_PASS: BIND_ACTION_START(cbs, action_start_shader_filter_pass); break; case MENU_LABEL_VIDEO_SHADER_NUM_PASSES: BIND_ACTION_START(cbs, action_start_shader_num_passes); break; case MENU_LABEL_CHEAT_NUM_PASSES: BIND_ACTION_START(cbs, action_start_cheat_num_passes); break; case MENU_LABEL_SCREEN_RESOLUTION: BIND_ACTION_START(cbs, action_start_video_resolution); default: return -1; } return 0; }
static int menu_cbs_init_bind_start_compare_label(menu_file_list_cbs_t *cbs) { if (cbs->enum_idx != MSG_UNKNOWN) { switch (cbs->enum_idx) { case MENU_ENUM_LABEL_REMAP_FILE_LOAD: BIND_ACTION_START(cbs, action_start_remap_file_load); break; case MENU_ENUM_LABEL_VIDEO_FILTER: BIND_ACTION_START(cbs, action_start_video_filter_file_load); break; case MENU_ENUM_LABEL_VIDEO_SHADER_PASS: BIND_ACTION_START(cbs, action_start_shader_pass); break; case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS: BIND_ACTION_START(cbs, action_start_shader_scale_pass); break; case MENU_ENUM_LABEL_VIDEO_SHADER_FILTER_PASS: BIND_ACTION_START(cbs, action_start_shader_filter_pass); break; case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES: BIND_ACTION_START(cbs, action_start_shader_watch_for_changes); break; case MENU_ENUM_LABEL_VIDEO_SHADER_NUM_PASSES: BIND_ACTION_START(cbs, action_start_shader_num_passes); break; case MENU_ENUM_LABEL_CHEAT_NUM_PASSES: BIND_ACTION_START(cbs, action_start_cheat_num_passes); break; case MENU_ENUM_LABEL_SCREEN_RESOLUTION: BIND_ACTION_START(cbs, action_start_video_resolution); break; case MENU_ENUM_LABEL_NETPLAY_MITM_SERVER: BIND_ACTION_START(cbs, action_start_netplay_mitm_server); break; default: return -1; } } return 0; }
static int menu_cbs_init_bind_start_compare_type(menu_file_list_cbs_t *cbs, unsigned type) { if (type >= MENU_SETTINGS_SHADER_PARAMETER_0 && type <= MENU_SETTINGS_SHADER_PARAMETER_LAST) { BIND_ACTION_START(cbs, action_start_shader_action_parameter); } else if (type >= MENU_SETTINGS_SHADER_PRESET_PARAMETER_0 && type <= MENU_SETTINGS_SHADER_PRESET_PARAMETER_LAST) { BIND_ACTION_START(cbs, action_start_shader_action_preset_parameter); } else if (type >= MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_BEGIN && type <= MENU_SETTINGS_LIBRETRO_PERF_COUNTERS_END) { BIND_ACTION_START(cbs, action_start_performance_counters_core); } else if (type >= MENU_SETTINGS_INPUT_DESC_BEGIN && type <= MENU_SETTINGS_INPUT_DESC_END) { BIND_ACTION_START(cbs, action_start_input_desc); } else if (type >= MENU_SETTINGS_PERF_COUNTERS_BEGIN && type <= MENU_SETTINGS_PERF_COUNTERS_END) { BIND_ACTION_START(cbs, action_start_performance_counters_frontend); } else if ((type >= MENU_SETTINGS_PLAYLIST_ASSOCIATION_START)) { BIND_ACTION_START(cbs, action_start_playlist_association); } else if ((type >= MENU_SETTINGS_CORE_OPTION_START)) { BIND_ACTION_START(cbs, action_start_core_setting); } else if (type == MENU_LABEL_SCREEN_RESOLUTION) { BIND_ACTION_START(cbs, action_start_video_resolution); } else return -1; return 0; }
int menu_cbs_init_bind_start(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx) { if (!cbs) return -1; BIND_ACTION_START(cbs, action_start_lookup_setting); if (menu_cbs_init_bind_start_compare_label(cbs) == 0) return 0; if (menu_cbs_init_bind_start_compare_type(cbs, type) == 0) return 0; return -1; }