void menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx, const char *elem0, const char *elem1) { settings_t *settings = config_get_ptr(); if (!cbs) return; cbs->action_deferred_push = deferred_push_default; if ((strlen(elem1) != 0) && !!strcmp(elem0, elem1)) { if (menu_entries_common_is_settings_entry(elem0)) { if (!settings->menu.collapse_subgroups_enable) { cbs->action_deferred_push = deferred_push_settings_subgroup; return; } } } if (strstr(label, "deferred_rdb_entry_detail")) cbs->action_deferred_push = deferred_push_rdb_entry_detail; #ifdef HAVE_NETWORKING else if (!strcmp(label, "deferred_core_updater_list")) cbs->action_deferred_push = deferred_push_core_updater_list; #endif else if (!strcmp(label, "history_list")) cbs->action_deferred_push = deferred_push_history_list; else if (!strcmp(label, "database_manager_list")) cbs->action_deferred_push = deferred_push_database_manager_list; else if (!strcmp(label, "cursor_manager_list")) cbs->action_deferred_push = deferred_push_cursor_manager_list; else if (!strcmp(label, "cheat_file_load")) cbs->action_deferred_push = deferred_push_cheat_file_load; else if (!strcmp(label, "remap_file_load")) cbs->action_deferred_push = deferred_push_remap_file_load; else if (!strcmp(label, "record_config")) cbs->action_deferred_push = deferred_push_record_configfile; else if (!strcmp(label, "content_actions")) cbs->action_deferred_push = deferred_push_content_actions; else if (!strcmp(label, "shader_options")) cbs->action_deferred_push = deferred_push_shader_options; else if (!strcmp(label, "video_options")) cbs->action_deferred_push = deferred_push_video_options; else if (!strcmp(label, "options")) cbs->action_deferred_push = deferred_push_options; else if (!strcmp(label, "management")) cbs->action_deferred_push = deferred_push_management_options; else if (type == MENU_SETTING_GROUP) cbs->action_deferred_push = deferred_push_category; else if (!strcmp(label, "deferred_core_list")) cbs->action_deferred_push = deferred_push_core_list_deferred; else if (!strcmp(label, "deferred_video_filter")) cbs->action_deferred_push = deferred_push_video_filter; else if (!strcmp(label, "deferred_database_manager_list")) cbs->action_deferred_push = deferred_push_database_manager_list_deferred; else if (!strcmp(label, "deferred_cursor_manager_list")) cbs->action_deferred_push = deferred_push_cursor_manager_list_deferred; else if ( !strcmp(label, "deferred_cursor_manager_list_rdb_entry_publisher") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_developer") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_origin") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_franchise") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_enhancement_hw") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_esrb_rating") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_bbfc_rating") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_elspa_rating") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_pegi_rating") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_cero_rating") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_edge_magazine_rating") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_edge_magazine_issue") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_famitsu_magazine_rating") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_max_users") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_releasemonth") || !strcmp(label, "deferred_cursor_manager_list_rdb_entry_releaseyear") ) cbs->action_deferred_push = deferred_push_cursor_manager_list_deferred_query_subsearch; else if (!strcmp(label, "core_information")) cbs->action_deferred_push = deferred_push_core_information; else if (!strcmp(label, "system_information")) cbs->action_deferred_push = deferred_push_system_information; else if (!strcmp(label, "performance_counters")) cbs->action_deferred_push = deferred_push_performance_counters; else if (!strcmp(label, "core_counters")) cbs->action_deferred_push = deferred_push_core_counters; else if (!strcmp(label, "video_shader_preset_parameters")) cbs->action_deferred_push = deferred_push_video_shader_preset_parameters; else if (!strcmp(label, "video_shader_parameters")) cbs->action_deferred_push = deferred_push_video_shader_parameters; else if (!strcmp(label, "settings")) cbs->action_deferred_push = deferred_push_settings; else if (!strcmp(label, "frontend_counters")) cbs->action_deferred_push = deferred_push_frontend_counters; else if (!strcmp(label, "core_options")) cbs->action_deferred_push = deferred_push_core_options; else if (!strcmp(label, "core_cheat_options")) cbs->action_deferred_push = deferred_push_core_cheat_options; else if (!strcmp(label, "core_input_remapping_options")) cbs->action_deferred_push = deferred_push_core_input_remapping_options; else if (!strcmp(label, "disk_options")) cbs->action_deferred_push = deferred_push_disk_options; else if (!strcmp(label, "core_list")) cbs->action_deferred_push = deferred_push_core_list; else if (!strcmp(label, "configurations")) cbs->action_deferred_push = deferred_push_configurations; else if (!strcmp(label, "video_shader_preset")) cbs->action_deferred_push = deferred_push_video_shader_preset; else if (!strcmp(label, "video_shader_pass")) cbs->action_deferred_push = deferred_push_video_shader_pass; else if (!strcmp(label, "video_filter")) cbs->action_deferred_push = deferred_push_video_filter; else if (!strcmp(label, "menu_wallpaper")) cbs->action_deferred_push = deferred_push_images; else if (!strcmp(label, "audio_dsp_plugin")) cbs->action_deferred_push = deferred_push_audio_dsp_plugin; else if (!strcmp(label, "input_overlay")) cbs->action_deferred_push = deferred_push_input_overlay; else if (!strcmp(label, "input_osk_overlay")) cbs->action_deferred_push = deferred_push_input_osk_overlay; else if (!strcmp(label, "video_font_path")) cbs->action_deferred_push = deferred_push_video_font_path; else if (!strcmp(label, "game_history_path")) cbs->action_deferred_push = deferred_push_content_history_path; else if (!strcmp(label, "detect_core_list")) cbs->action_deferred_push = deferred_push_detect_core_list; }
void menu_entries_cbs_init_bind_toggle(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx, const char *elem0, const char *elem1, const char *menu_label) { int i; if (!cbs) return; if (label) { if (menu_entries_common_is_settings_entry(elem0)) { cbs->action_toggle = action_toggle_scroll; return; } } cbs->action_toggle = menu_setting_set; switch (type) { case MENU_SETTINGS_CORE_DISK_OPTIONS_DISK_INDEX: cbs->action_toggle = disk_options_disk_idx_toggle; break; case MENU_FILE_PLAIN: case MENU_FILE_DIRECTORY: case MENU_FILE_CARCHIVE: case MENU_FILE_CORE: case MENU_FILE_RDB: case MENU_FILE_RDB_ENTRY: case MENU_FILE_CURSOR: case MENU_FILE_SHADER: case MENU_FILE_SHADER_PRESET: case MENU_FILE_IMAGE: case MENU_FILE_OVERLAY: case MENU_FILE_VIDEOFILTER: case MENU_FILE_AUDIOFILTER: case MENU_FILE_CONFIG: case MENU_FILE_USE_DIRECTORY: case MENU_FILE_PLAYLIST_ENTRY: case MENU_FILE_DOWNLOAD_CORE: case MENU_FILE_CHEAT: case MENU_FILE_REMAP: case MENU_SETTING_GROUP: if (!strcmp(menu_label, "Horizontal Menu") || !strcmp(menu_label, "Main Menu")) cbs->action_toggle = action_toggle_mainmenu; else cbs->action_toggle = action_toggle_scroll; break; case MENU_SETTING_ACTION: case MENU_FILE_CONTENTLIST_ENTRY: cbs->action_toggle = action_toggle_mainmenu; break; } if (strstr(label, "rdb_entry")) cbs->action_toggle = action_toggle_scroll; else if (type >= MENU_SETTINGS_SHADER_PARAMETER_0 && type <= MENU_SETTINGS_SHADER_PARAMETER_LAST) cbs->action_toggle = shader_action_parameter_toggle; else if (type >= MENU_SETTINGS_SHADER_PRESET_PARAMETER_0 && type <= MENU_SETTINGS_SHADER_PRESET_PARAMETER_LAST) cbs->action_toggle = shader_action_parameter_preset_toggle; else if (type >= MENU_SETTINGS_CHEAT_BEGIN && type <= MENU_SETTINGS_CHEAT_END) cbs->action_toggle = action_toggle_cheat; else if (type >= MENU_SETTINGS_INPUT_DESC_BEGIN && type <= MENU_SETTINGS_INPUT_DESC_END) cbs->action_toggle = action_toggle_input_desc; else if (!strcmp(label, "savestate") || !strcmp(label, "loadstate")) cbs->action_toggle = action_toggle_save_state; else if (!strcmp(label, "video_shader_scale_pass")) cbs->action_toggle = action_toggle_shader_scale_pass; else if (!strcmp(label, "video_shader_filter_pass")) cbs->action_toggle = action_toggle_shader_filter_pass; else if (!strcmp(label, "video_shader_default_filter")) cbs->action_toggle = action_toggle_shader_filter_default; else if (!strcmp(label, "video_shader_num_passes")) cbs->action_toggle = action_toggle_shader_num_passes; else if (!strcmp(label, "cheat_num_passes")) cbs->action_toggle = action_toggle_cheat_num_passes; else if (type == MENU_SETTINGS_VIDEO_RESOLUTION) cbs->action_toggle = action_toggle_video_resolution; else if ((type >= MENU_SETTINGS_CORE_OPTION_START)) cbs->action_toggle = core_setting_toggle; for (i = 0; i < MAX_USERS; i++) { char label_setting[PATH_MAX_LENGTH]; snprintf(label_setting, sizeof(label_setting), "input_player%d_joypad_index", i + 1); if (!strcmp(label, label_setting)) cbs->action_toggle = menu_setting_set; } }