Refactor populate_settings_int so we are C89-compatible again

This commit is contained in:
twinaphex 2016-08-29 17:04:15 +02:00
parent a414f4093f
commit a09664c758
1 changed files with 69 additions and 56 deletions

View File

@ -1466,85 +1466,98 @@ static int populate_settings_float(settings_t *settings, struct config_float_set
return count; return count;
} }
#define SETTING_INT(key, configval) \
{ \
if (count == 0) \
tmp = (struct config_int_setting_ptr*)malloc(sizeof(struct config_int_setting_ptr) * (count + 1)); \
else \
tmp = (struct config_int_setting_ptr*)realloc(tmp, sizeof(struct config_int_setting_ptr) * (count + 1)); \
tmp[count].ident = key; \
tmp[count].ptr = configval; \
count++; \
}
static int populate_settings_int(settings_t *settings, struct config_int_setting_ptr *out) static int populate_settings_int(settings_t *settings, struct config_int_setting_ptr *out)
{ {
unsigned count = 0;
struct config_int_setting_ptr *tmp = NULL;
#ifdef HAVE_NETPLAY #ifdef HAVE_NETPLAY
global_t *global = global_get_ptr(); global_t *global = global_get_ptr();
#endif #endif
struct config_int_setting_ptr tmp[] = {
{ "input_bind_timeout", &settings->input.bind_timeout}, SETTING_INT("input_bind_timeout", &settings->input.bind_timeout);
{ "input_turbo_period", &settings->input.turbo_period}, SETTING_INT("input_turbo_period", &settings->input.turbo_period);
{ "input_duty_cycle", &settings->input.turbo_duty_cycle}, SETTING_INT("input_duty_cycle", &settings->input.turbo_duty_cycle);
{ "input_max_users", &settings->input.max_users}, SETTING_INT("input_max_users", &settings->input.max_users);
{ "input_menu_toggle_gamepad_combo", &settings->input.menu_toggle_gamepad_combo}, SETTING_INT("input_menu_toggle_gamepad_combo", &settings->input.menu_toggle_gamepad_combo);
{ "audio_latency", &settings->audio.latency}, SETTING_INT("audio_latency", &settings->audio.latency);
{ "audio_block_frames", &settings->audio.block_frames}, SETTING_INT("audio_block_frames", &settings->audio.block_frames);
{ "rewind_granularity", &settings->rewind_granularity}, SETTING_INT("rewind_granularity", &settings->rewind_granularity);
{ "autosave_interval", &settings->autosave_interval}, SETTING_INT("autosave_interval", &settings->autosave_interval);
{ "libretro_log_level", &settings->libretro_log_level}, SETTING_INT("libretro_log_level", &settings->libretro_log_level);
{ "keyboard_gamepad_mapping_type",&settings->input.keyboard_gamepad_mapping_type}, SETTING_INT("keyboard_gamepad_mapping_type",&settings->input.keyboard_gamepad_mapping_type);
{ "input_poll_type_behavior", &settings->input.poll_type_behavior}, SETTING_INT("input_poll_type_behavior", &settings->input.poll_type_behavior);
#ifdef HAVE_MENU #ifdef HAVE_MENU
{ "menu_ok_btn", &settings->menu_ok_btn}, SETTING_INT("menu_ok_btn", &settings->menu_ok_btn);
{ "menu_cancel_btn", &settings->menu_cancel_btn}, SETTING_INT("menu_cancel_btn", &settings->menu_cancel_btn);
{ "menu_search_btn", &settings->menu_search_btn}, SETTING_INT("menu_search_btn", &settings->menu_search_btn);
{ "menu_info_btn", &settings->menu_info_btn}, SETTING_INT("menu_info_btn", &settings->menu_info_btn);
{ "menu_default_btn", &settings->menu_default_btn}, SETTING_INT("menu_default_btn", &settings->menu_default_btn);
{ "menu_scroll_down_btn", &settings->menu_scroll_down_btn}, SETTING_INT("menu_scroll_down_btn", &settings->menu_scroll_down_btn);
#endif #endif
{ "video_monitor_index", &settings->video.monitor_index}, SETTING_INT("video_monitor_index", &settings->video.monitor_index);
{ "video_fullscreen_x", &settings->video.fullscreen_x}, SETTING_INT("video_fullscreen_x", &settings->video.fullscreen_x);
{ "video_fullscreen_y", &settings->video.fullscreen_y}, SETTING_INT("video_fullscreen_y", &settings->video.fullscreen_y);
#ifdef HAVE_COMMAND #ifdef HAVE_COMMAND
{ "network_cmd_port", &settings->network_cmd_port}, SETTING_INT("network_cmd_port", &settings->network_cmd_port);
#endif #endif
#ifdef HAVE_NETWORKGAMEPAD #ifdef HAVE_NETWORKGAMEPAD
{ "network_remote_base_port", &settings->network_remote_base_port}, SETTING_INT("network_remote_base_port", &settings->network_remote_base_port);
#endif #endif
{ "menu_scroll_up_btn", &settings->menu_scroll_up_btn}, SETTING_INT("menu_scroll_up_btn", &settings->menu_scroll_up_btn);
#ifdef HAVE_GEKKO #ifdef HAVE_GEKKO
{ "video_viwidth", &settings->video.viwidth}, SETTING_INT("video_viwidth", &settings->video.viwidth);
#endif #endif
#ifdef HAVE_MENU #ifdef HAVE_MENU
{ "dpi_override_value", &settings->menu.dpi.override_value}, SETTING_INT("dpi_override_value", &settings->menu.dpi.override_value);
{ "menu_thumbnails", &settings->menu.thumbnails}, SETTING_INT("menu_thumbnails", &settings->menu.thumbnails);
{ "xmb_scale_factor", &settings->menu.xmb.scale_factor}, SETTING_INT("xmb_scale_factor", &settings->menu.xmb.scale_factor);
{ "xmb_alpha_factor", &settings->menu.xmb.alpha_factor}, SETTING_INT("xmb_alpha_factor", &settings->menu.xmb.alpha_factor);
#ifdef HAVE_XMB #ifdef HAVE_XMB
{ "xmb_theme", &settings->menu.xmb.theme}, SETTING_INT("xmb_theme", &settings->menu.xmb.theme);
{ "xmb_menu_color_theme", &settings->menu.xmb.menu_color_theme}, SETTING_INT("xmb_menu_color_theme", &settings->menu.xmb.menu_color_theme);
#endif #endif
{ "materialui_menu_color_theme", &settings->menu.materialui.menu_color_theme}, SETTING_INT("materialui_menu_color_theme", &settings->menu.materialui.menu_color_theme);
#ifdef HAVE_SHADERPIPELINE #ifdef HAVE_SHADERPIPELINE
{ "menu_shader_pipeline", &settings->menu.xmb.shader_pipeline}, SETTING_INT("menu_shader_pipeline", &settings->menu.xmb.shader_pipeline);
#endif #endif
#endif #endif
{ "audio_out_rate", &settings->audio.out_rate}, SETTING_INT("audio_out_rate", &settings->audio.out_rate);
{ "custom_viewport_width", &settings->video_viewport_custom.width}, SETTING_INT("custom_viewport_width", &settings->video_viewport_custom.width);
{ "custom_viewport_height", &settings->video_viewport_custom.height}, SETTING_INT("custom_viewport_height", &settings->video_viewport_custom.height);
{ "custom_viewport_x", (unsigned*)&settings->video_viewport_custom.x}, SETTING_INT("custom_viewport_x", (unsigned*)&settings->video_viewport_custom.x);
{ "custom_viewport_y", (unsigned*)&settings->video_viewport_custom.y}, SETTING_INT("custom_viewport_y", (unsigned*)&settings->video_viewport_custom.y);
{ "content_history_size", &settings->content_history_size}, SETTING_INT("content_history_size", &settings->content_history_size);
{ "video_hard_sync_frames", &settings->video.hard_sync_frames}, SETTING_INT("video_hard_sync_frames", &settings->video.hard_sync_frames);
{ "video_frame_delay", &settings->video.frame_delay}, SETTING_INT("video_frame_delay", &settings->video.frame_delay);
{ "video_max_swapchain_images", &settings->video.max_swapchain_images}, SETTING_INT("video_max_swapchain_images", &settings->video.max_swapchain_images);
{ "video_swap_interval", &settings->video.swap_interval}, SETTING_INT("video_swap_interval", &settings->video.swap_interval);
{ "video_rotation", &settings->video.rotation}, SETTING_INT("video_rotation", &settings->video.rotation);
{ "aspect_ratio_index", &settings->video.aspect_ratio_idx}, SETTING_INT("aspect_ratio_index", &settings->video.aspect_ratio_idx);
{ "state_slot", (unsigned*)&settings->state_slot}, SETTING_INT("state_slot", (unsigned*)&settings->state_slot);
#ifdef HAVE_NETPLAY #ifdef HAVE_NETPLAY
{ "netplay_ip_port", &global->netplay.port}, SETTING_INT("netplay_ip_port", &global->netplay.port);
{ "netplay_delay_frames", &global->netplay.sync_frames}, SETTING_INT("netplay_delay_frames", &global->netplay.sync_frames);
#endif #endif
#ifdef HAVE_LANGEXTRA #ifdef HAVE_LANGEXTRA
{ "user_language", &settings->user_language}, SETTING_INT("user_language", &settings->user_language);
#endif #endif
{ "bundle_assets_extract_version_current", &settings->bundle_assets_extract_version_current}, SETTING_INT("bundle_assets_extract_version_current", &settings->bundle_assets_extract_version_current);
{ "bundle_assets_extract_last_version", &settings->bundle_assets_extract_last_version} SETTING_INT("bundle_assets_extract_last_version", &settings->bundle_assets_extract_last_version);
};
memcpy(out, tmp, sizeof(tmp)); memcpy(out, tmp, sizeof(struct config_float_setting_ptr) * count);
return ARRAY_SIZE(tmp); free(tmp);
return count;
} }
/** /**