Combine menu_settings_set and menu_settings_set_default and

move to settings.c
This commit is contained in:
twinaphex 2013-03-23 17:21:42 +01:00
parent 82d80cf24f
commit 6d8871c76c
11 changed files with 355 additions and 338 deletions

View File

@ -23,6 +23,7 @@
#include "boolean.h"
#include "libretro.h"
#include "driver.h"
#include "gfx/gfx_common.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
@ -268,6 +269,12 @@ static const bool scale_integer = false;
static const float aspect_ratio = DEFAULT_ASPECT_RATIO; // Automatic
static const bool aspect_ratio_auto = false; // 1:1 PAR
#if defined(__CELLOS_LV2) || defined(_XBOX360)
static unsigned aspect_ratio_idx = ASPECT_RATIO_16_9;
#else
static unsigned aspect_ratio_idx = ASPECT_RATIO_4_3;
#endif
// Crop overscanned frames (7/8 or 15/15 for interlaced frames).
static const bool crop_overscan = true;

View File

@ -26,7 +26,6 @@
typedef struct
{
char menu_border_file[MAXIMUM_PATH];
char border_file[MAXIMUM_PATH];
char border_dir[MAXIMUM_PATH];
char cgp_dir[MAXIMUM_PATH];
char core_dir[MAXIMUM_PATH];

View File

@ -23,221 +23,22 @@
#include "../../file.h"
#include "menu_settings.h"
void menu_settings_set(unsigned setting)
{
switch(setting)
{
case S_ASPECT_RATIO_DECREMENT:
if(g_settings.video.aspect_ratio_idx > 0)
g_settings.video.aspect_ratio_idx--;
break;
case S_ASPECT_RATIO_INCREMENT:
if(g_settings.video.aspect_ratio_idx < LAST_ASPECT_RATIO)
g_settings.video.aspect_ratio_idx++;
break;
case S_AUDIO_MUTE:
g_extern.audio_data.mute = !g_extern.audio_data.mute;
break;
case S_AUDIO_CONTROL_RATE_DECREMENT:
if (g_settings.audio.rate_control_delta > 0.0)
g_settings.audio.rate_control_delta -= 0.001;
if (g_settings.audio.rate_control_delta == 0.0)
g_settings.audio.rate_control = false;
else
g_settings.audio.rate_control = true;
break;
case S_AUDIO_CONTROL_RATE_INCREMENT:
if (g_settings.audio.rate_control_delta < 0.2)
g_settings.audio.rate_control_delta += 0.001;
g_settings.audio.rate_control = true;
break;
case S_FRAME_ADVANCE:
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
g_extern.lifecycle_mode_state |= (1ULL << MODE_GAME);
break;
case S_HW_TEXTURE_FILTER:
g_settings.video.smooth = !g_settings.video.smooth;
break;
case S_HW_TEXTURE_FILTER_2:
g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth;
break;
case S_OVERSCAN_DECREMENT:
g_extern.console.screen.overscan_amount -= 0.01f;
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
if(g_extern.console.screen.overscan_amount == 0.0f)
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
break;
case S_OVERSCAN_INCREMENT:
g_extern.console.screen.overscan_amount += 0.01f;
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
if(g_extern.console.screen.overscan_amount == 0.0f)
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
break;
case S_RESOLUTION_PREVIOUS:
if (g_extern.console.screen.resolutions.current.idx)
{
g_extern.console.screen.resolutions.current.idx--;
g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx];
}
break;
case S_RESOLUTION_NEXT:
if (g_extern.console.screen.resolutions.current.idx + 1 < g_extern.console.screen.resolutions.count)
{
g_extern.console.screen.resolutions.current.idx++;
g_extern.console.screen.resolutions.current.id = g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx];
}
break;
case S_ROTATION_DECREMENT:
if(g_extern.console.screen.orientation > 0)
g_extern.console.screen.orientation--;
break;
case S_ROTATION_INCREMENT:
if(g_extern.console.screen.orientation < LAST_ORIENTATION)
g_extern.console.screen.orientation++;
break;
case S_REWIND:
g_settings.rewind_enable = !g_settings.rewind_enable;
break;
case S_SAVESTATE_DECREMENT:
if(g_extern.state_slot != 0)
g_extern.state_slot--;
break;
case S_SAVESTATE_INCREMENT:
g_extern.state_slot++;
break;
case S_SCALE_ENABLED:
g_settings.video.render_to_texture = !g_settings.video.render_to_texture;
break;
case S_SCALE_FACTOR_DECREMENT:
g_settings.video.fbo.scale_x -= 1.0f;
g_settings.video.fbo.scale_y -= 1.0f;
break;
case S_SCALE_FACTOR_INCREMENT:
g_settings.video.fbo.scale_x += 1.0f;
g_settings.video.fbo.scale_y += 1.0f;
break;
case S_THROTTLE:
if(!g_extern.system.force_nonblock)
{
if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_THROTTLE_ENABLE);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE);
}
break;
case S_TRIPLE_BUFFERING:
if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE);
break;
case S_REFRESH_RATE_DECREMENT:
g_settings.video.refresh_rate -= 0.01f;
break;
case S_REFRESH_RATE_INCREMENT:
g_settings.video.refresh_rate += 0.01f;
break;
case S_INFO_DEBUG_MSG_TOGGLE:
if (g_extern.lifecycle_mode_state & (1ULL << MODE_FPS_DRAW))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_FPS_DRAW);
break;
case S_INFO_MSG_TOGGLE:
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_INFO_DRAW);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW);
break;
default:
RARCH_WARN("menu_settings_set - unhandled action.\n");
}
}
void menu_settings_set_default(unsigned setting)
{
switch(setting)
{
case S_DEF_ASPECT_RATIO:
g_settings.video.aspect_ratio_idx = ASPECT_RATIO_4_3;
break;
case S_DEF_AUDIO_MUTE:
g_extern.audio_data.mute = false;
break;
case S_DEF_AUDIO_CONTROL_RATE:
#ifdef GEKKO
g_settings.audio.rate_control_delta = 0.006;
g_settings.audio.rate_control = true;
#else
g_settings.audio.rate_control_delta = 0.0;
g_settings.audio.rate_control = false;
#endif
break;
case S_DEF_HW_TEXTURE_FILTER:
g_settings.video.smooth = 1;
break;
case S_DEF_HW_TEXTURE_FILTER_2:
g_settings.video.second_pass_smooth = 1;
break;
case S_DEF_OVERSCAN:
g_extern.console.screen.overscan_amount = 0.0f;
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
break;
case S_DEF_ROTATION:
g_extern.console.screen.orientation = ORIENTATION_NORMAL;
break;
case S_DEF_THROTTLE:
if(!g_extern.system.force_nonblock)
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE);
break;
case S_DEF_TRIPLE_BUFFERING:
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE);
break;
case S_DEF_SAVE_STATE:
g_extern.state_slot = 0;
break;
case S_DEF_SCALE_ENABLED:
g_settings.video.render_to_texture = true;
g_settings.video.fbo.scale_x = 2.0f;
g_settings.video.fbo.scale_y = 2.0f;
break;
case S_DEF_SCALE_FACTOR:
g_settings.video.fbo.scale_x = 2.0f;
g_settings.video.fbo.scale_y = 2.0f;
break;
case S_DEF_REFRESH_RATE:
#if defined(RARCH_CONSOLE)
g_settings.video.refresh_rate = 59.92;
#else
g_settings.video.refresh_rate = 59.95;
#endif
break;
case S_DEF_INFO_DEBUG_MSG:
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW);
break;
case S_DEF_INFO_MSG:
g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW);
break;
default:
RARCH_WARN("menu_settings_set_default: unhandled action.\n");
}
}
void menu_settings_msg(unsigned setting, unsigned delay)
{
char str[PATH_MAX], tmp[PATH_MAX];
char str[PATH_MAX];
msg_queue_clear(g_extern.msg_queue);
(void)tmp;
switch(setting)
{
case S_MSG_CHANGE_CONTROLS:
snprintf(str, sizeof(str), "INFO - Press LEFT/RIGHT to change the controls, and press\n[RetroPad Start] to reset a button to default values.");
break;
case S_MSG_LOADING_ROM:
fill_pathname_base(tmp, g_extern.fullpath, sizeof(tmp));
snprintf(str, sizeof(str), "INFO - Loading %s...", tmp);
{
char tmp[PATH_MAX];
fill_pathname_base(tmp, g_extern.fullpath, sizeof(tmp));
snprintf(str, sizeof(str), "INFO - Loading %s...", g_extern.fullpath);
}
break;
case S_MSG_DIR_LOADING_ERROR:
strlcpy(str, "ERROR - Failed to open directory.", sizeof(str));
@ -249,7 +50,7 @@ void menu_settings_msg(unsigned setting, unsigned delay)
strlcpy(str, "TODO - Not yet implemented.", sizeof(str));
break;
case S_MSG_RESIZE_SCREEN:
snprintf(str, sizeof(str), "INFO - Resize the screen by moving around the two analog sticks.\nPress [RetroPad X] to reset to default values, and [RetroPad A] to go back.\nTo select the resized screen mode, set Aspect Ratio to: 'Custom'.");
snprintf(str, sizeof(str), "INFO - Resize the screen by moving around the two analog sticks.\n");
break;
case S_MSG_RESTART_RARCH:
strlcpy(str, "INFO - You need to restart RetroArch.", sizeof(str));

View File

@ -17,55 +17,6 @@
#ifndef CONSOLE_SETTINGS_H
#define CONSOLE_SETTINGS_H
enum
{
S_ASPECT_RATIO_DECREMENT = 0,
S_ASPECT_RATIO_INCREMENT,
S_AUDIO_MUTE,
S_AUDIO_CONTROL_RATE_DECREMENT,
S_AUDIO_CONTROL_RATE_INCREMENT,
S_FRAME_ADVANCE,
S_HW_TEXTURE_FILTER,
S_HW_TEXTURE_FILTER_2,
S_OVERSCAN_DECREMENT,
S_OVERSCAN_INCREMENT,
S_RESOLUTION_PREVIOUS,
S_RESOLUTION_NEXT,
S_ROTATION_DECREMENT,
S_ROTATION_INCREMENT,
S_REWIND,
S_SAVESTATE_DECREMENT,
S_SAVESTATE_INCREMENT,
S_SCALE_ENABLED,
S_SCALE_FACTOR_DECREMENT,
S_SCALE_FACTOR_INCREMENT,
S_THROTTLE,
S_TRIPLE_BUFFERING,
S_REFRESH_RATE_DECREMENT,
S_REFRESH_RATE_INCREMENT,
S_INFO_DEBUG_MSG_TOGGLE,
S_INFO_MSG_TOGGLE,
};
enum
{
S_DEF_ASPECT_RATIO = 0,
S_DEF_AUDIO_MUTE,
S_DEF_AUDIO_CONTROL_RATE,
S_DEF_HW_TEXTURE_FILTER,
S_DEF_HW_TEXTURE_FILTER_2,
S_DEF_OVERSCAN,
S_DEF_ROTATION,
S_DEF_THROTTLE,
S_DEF_TRIPLE_BUFFERING,
S_DEF_SAVE_STATE,
S_DEF_SCALE_ENABLED,
S_DEF_SCALE_FACTOR,
S_DEF_REFRESH_RATE,
S_DEF_INFO_DEBUG_MSG,
S_DEF_INFO_MSG,
};
enum
{
S_MSG_CHANGE_CONTROLS = 0,
@ -93,10 +44,7 @@ enum
S_LBL_REWIND_GRANULARITY,
};
void menu_settings_set(unsigned setting);
void menu_settings_set_default(unsigned setting);
void menu_settings_msg(unsigned setting, unsigned delay);
void menu_settings_create_menu_item_label(char * str, unsigned setting, size_t size);
#endif

View File

@ -619,7 +619,7 @@ static int rgui_settings_toggle_setting(unsigned setting, rgui_action_t action,
action == RGUI_ACTION_LEFT ||
action == RGUI_ACTION_RIGHT)
{
menu_settings_set(S_REWIND);
settings_set(1ULL < S_REWIND);
if (g_settings.rewind_enable)
rarch_init_rewind();
}
@ -652,11 +652,11 @@ static int rgui_settings_toggle_setting(unsigned setting, rgui_action_t action,
return -1;
}
else if (action == RGUI_ACTION_START)
menu_settings_set_default(S_DEF_SAVE_STATE);
settings_set(1ULL << S_DEF_SAVE_STATE);
else if (action == RGUI_ACTION_LEFT)
menu_settings_set(S_SAVESTATE_DECREMENT);
settings_set(1ULL << S_SAVESTATE_DECREMENT);
else if (action == RGUI_ACTION_RIGHT)
menu_settings_set(S_SAVESTATE_INCREMENT);
settings_set(1ULL << S_SAVESTATE_INCREMENT);
break;
#ifdef HAVE_SCREENSHOTS
case RGUI_SETTINGS_SCREENSHOT:
@ -693,9 +693,9 @@ static int rgui_settings_toggle_setting(unsigned setting, rgui_action_t action,
break;
case RGUI_SETTINGS_VIDEO_FILTER:
if (action == RGUI_ACTION_START)
menu_settings_set_default(S_DEF_HW_TEXTURE_FILTER);
settings_set(1ULL << S_DEF_HW_TEXTURE_FILTER);
else
menu_settings_set(S_HW_TEXTURE_FILTER);
settings_set(1ULL << S_HW_TEXTURE_FILTER);
if (driver.video_poke->set_filtering)
driver.video_poke->set_filtering(driver.video_data, 1, g_settings.video.smooth);
@ -767,11 +767,11 @@ static int rgui_settings_toggle_setting(unsigned setting, rgui_action_t action,
break;
case RGUI_SETTINGS_VIDEO_ASPECT_RATIO:
if (action == RGUI_ACTION_START)
menu_settings_set_default(S_DEF_ASPECT_RATIO);
settings_set(1ULL << S_DEF_ASPECT_RATIO);
else if (action == RGUI_ACTION_LEFT)
menu_settings_set(S_ASPECT_RATIO_DECREMENT);
settings_set(1ULL << S_ASPECT_RATIO_DECREMENT);
else if (action == RGUI_ACTION_RIGHT)
menu_settings_set(S_ASPECT_RATIO_INCREMENT);
settings_set(1ULL << S_ASPECT_RATIO_INCREMENT);
if (driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
@ -779,53 +779,53 @@ static int rgui_settings_toggle_setting(unsigned setting, rgui_action_t action,
case RGUI_SETTINGS_VIDEO_ROTATION:
if (action == RGUI_ACTION_START)
{
menu_settings_set_default(S_DEF_AUDIO_CONTROL_RATE);
settings_set(1ULL << S_DEF_AUDIO_CONTROL_RATE);
video_set_rotation_func(g_extern.console.screen.orientation);
}
else if (action == RGUI_ACTION_LEFT)
{
menu_settings_set(S_ROTATION_DECREMENT);
settings_set(1ULL << S_ROTATION_DECREMENT);
video_set_rotation_func(g_extern.console.screen.orientation);
}
else if (action == RGUI_ACTION_RIGHT)
{
menu_settings_set(S_ROTATION_INCREMENT);
settings_set(1ULL << S_ROTATION_INCREMENT);
video_set_rotation_func(g_extern.console.screen.orientation);
}
break;
case RGUI_SETTINGS_VIDEO_OVERSCAN:
if (action == RGUI_ACTION_START)
{
menu_settings_set_default(S_DEF_OVERSCAN);
settings_set(1ULL << S_DEF_OVERSCAN);
if (driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(driver.video_data);
}
else if (action == RGUI_ACTION_LEFT)
{
menu_settings_set(S_OVERSCAN_DECREMENT);
settings_set(1ULL << S_OVERSCAN_DECREMENT);
if (driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(driver.video_data);
}
else if (action == RGUI_ACTION_RIGHT)
{
menu_settings_set(S_OVERSCAN_INCREMENT);
settings_set(1ULL << S_OVERSCAN_INCREMENT);
if (driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(driver.video_data);
}
break;
case RGUI_SETTINGS_AUDIO_MUTE:
if (action == RGUI_ACTION_START)
menu_settings_set_default(S_DEF_AUDIO_MUTE);
settings_set(1ULL << S_DEF_AUDIO_MUTE);
else
menu_settings_set(S_AUDIO_MUTE);
settings_set(1ULL << S_AUDIO_MUTE);
break;
case RGUI_SETTINGS_AUDIO_CONTROL_RATE:
if (action == RGUI_ACTION_START)
menu_settings_set_default(S_DEF_AUDIO_CONTROL_RATE);
settings_set(1ULL << S_DEF_AUDIO_CONTROL_RATE);
else if (action == RGUI_ACTION_LEFT)
menu_settings_set(S_AUDIO_CONTROL_RATE_DECREMENT);
settings_set(1ULL << S_AUDIO_CONTROL_RATE_DECREMENT);
else if (action == RGUI_ACTION_RIGHT)
menu_settings_set(S_AUDIO_CONTROL_RATE_INCREMENT);
settings_set(1ULL << S_AUDIO_CONTROL_RATE_INCREMENT);
break;
case RGUI_SETTINGS_RESAMPLER_TYPE:
{

View File

@ -1335,9 +1335,9 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
#ifdef __CELLOS_LV2__
case SETTING_CHANGE_RESOLUTION:
if(input & (1ULL << RMENU_DEVICE_NAV_RIGHT))
menu_settings_set(S_RESOLUTION_NEXT);
settings_set(1ULL << S_RESOLUTION_NEXT);
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
menu_settings_set(S_RESOLUTION_PREVIOUS);
settings_set(1ULL << S_RESOLUTION_PREVIOUS);
if(input & (1ULL << RMENU_DEVICE_NAV_B))
{
if (g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx] == CELL_VIDEO_OUT_RESOLUTION_576)
@ -1501,21 +1501,21 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
case SETTING_KEEP_ASPECT_RATIO:
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
{
menu_settings_set(S_ASPECT_RATIO_DECREMENT);
settings_set(1ULL << S_ASPECT_RATIO_DECREMENT);
if (driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
}
if(input & (1ULL << RMENU_DEVICE_NAV_RIGHT))
{
menu_settings_set(S_ASPECT_RATIO_INCREMENT);
settings_set(1ULL << S_ASPECT_RATIO_INCREMENT);
if (driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set_default(S_DEF_ASPECT_RATIO);
settings_set(1ULL << S_DEF_ASPECT_RATIO);
if (driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
@ -1524,14 +1524,14 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
case SETTING_HW_TEXTURE_FILTER:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_HW_TEXTURE_FILTER);
settings_set(1ULL << S_HW_TEXTURE_FILTER);
if (driver.video_poke->set_filtering)
driver.video_poke->set_filtering(driver.video_data, 1, g_settings.video.smooth);
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set(S_DEF_HW_TEXTURE_FILTER);
settings_set(1ULL << S_DEF_HW_TEXTURE_FILTER);
if (driver.video_poke->set_filtering)
driver.video_poke->set_filtering(driver.video_data, 1, g_settings.video.smooth);
@ -1541,14 +1541,14 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
case SETTING_HW_TEXTURE_FILTER_2:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_HW_TEXTURE_FILTER_2);
settings_set(1ULL << S_HW_TEXTURE_FILTER_2);
if (driver.video_poke->set_filtering)
driver.video_poke->set_filtering(driver.video_data, 2, g_settings.video.second_pass_smooth);
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set(S_DEF_HW_TEXTURE_FILTER_2);
settings_set(1ULL << S_DEF_HW_TEXTURE_FILTER_2);
if (driver.video_poke->set_filtering)
driver.video_poke->set_filtering(driver.video_data, 2, g_settings.video.second_pass_smooth);
@ -1557,7 +1557,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
case SETTING_SCALE_ENABLED:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_SCALE_ENABLED);
settings_set(1ULL << S_SCALE_ENABLED);
if (driver.video_poke->set_fbo_state)
{
@ -1569,7 +1569,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set_default(S_DEF_SCALE_ENABLED);
settings_set(1ULL << S_DEF_SCALE_ENABLED);
if (driver.video_poke->set_fbo_state)
driver.video_poke->set_fbo_state(driver.video_data, FBO_REINIT);
@ -1584,7 +1584,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
if(should_decrement)
{
menu_settings_set(S_SCALE_FACTOR_DECREMENT);
settings_set(1ULL << S_SCALE_FACTOR_DECREMENT);
if (driver.video_poke->set_fbo_state)
driver.video_poke->set_fbo_state(driver.video_data, FBO_REINIT);
@ -1598,7 +1598,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
bool should_increment = g_settings.video.fbo.scale_x < MAX_SCALING_FACTOR;
if(should_increment)
{
menu_settings_set(S_SCALE_FACTOR_INCREMENT);
settings_set(1ULL << S_SCALE_FACTOR_INCREMENT);
if (driver.video_poke->set_fbo_state)
driver.video_poke->set_fbo_state(driver.video_data, FBO_REINIT);
@ -1607,7 +1607,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set_default(S_DEF_SCALE_FACTOR);
settings_set(1ULL << S_DEF_SCALE_FACTOR);
if (driver.video_poke->set_fbo_state)
driver.video_poke->set_fbo_state(driver.video_data, FBO_REINIT);
@ -1644,21 +1644,21 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
case SETTING_HW_OVERSCAN_AMOUNT:
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
{
menu_settings_set(S_OVERSCAN_DECREMENT);
settings_set(1ULL << S_OVERSCAN_DECREMENT);
if (driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(driver.video_data);
}
if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_OVERSCAN_INCREMENT);
settings_set(1ULL << S_OVERSCAN_INCREMENT);
if (driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(driver.video_data);
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set_default(S_DEF_OVERSCAN);
settings_set(1ULL << S_DEF_OVERSCAN);
if (driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(driver.video_data);
@ -1667,17 +1667,17 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
case SETTING_REFRESH_RATE:
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
{
menu_settings_set(S_REFRESH_RATE_DECREMENT);
settings_set(1ULL << S_REFRESH_RATE_DECREMENT);
driver_set_monitor_refresh_rate(g_settings.video.refresh_rate);
}
if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_REFRESH_RATE_INCREMENT);
settings_set(1ULL << S_REFRESH_RATE_INCREMENT);
driver_set_monitor_refresh_rate(g_settings.video.refresh_rate);
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set_default(S_DEF_REFRESH_RATE);
settings_set(1ULL << S_DEF_REFRESH_RATE);
driver_set_monitor_refresh_rate(g_settings.video.refresh_rate);
}
break;
@ -1686,7 +1686,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
{
if (!(g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_PAL_VSYNC_BLOCK)))
{
menu_settings_set(S_THROTTLE);
settings_set(1ULL << S_THROTTLE);
device_ptr->ctx_driver->swap_interval((g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE)) ? true : false);
}
}
@ -1694,7 +1694,7 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
{
if (!(g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_PAL_VSYNC_BLOCK)))
{
menu_settings_set_default(S_DEF_THROTTLE);
settings_set(1ULL << S_DEF_THROTTLE);
device_ptr->ctx_driver->swap_interval((g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE)) ? true : false);
}
}
@ -1702,12 +1702,12 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
case SETTING_TRIPLE_BUFFERING:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_TRIPLE_BUFFERING);
settings_set(1ULL << S_TRIPLE_BUFFERING);
driver.video->restart();
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set_default(S_DEF_TRIPLE_BUFFERING);
settings_set(1ULL << S_DEF_TRIPLE_BUFFERING);
if(!(g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE)))
driver.video->restart();
@ -1799,28 +1799,28 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
break;
case SETTING_EMU_CURRENT_SAVE_STATE_SLOT:
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
menu_settings_set(S_SAVESTATE_DECREMENT);
settings_set(1ULL << S_SAVESTATE_DECREMENT);
if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
menu_settings_set(S_SAVESTATE_INCREMENT);
settings_set(1ULL << S_SAVESTATE_INCREMENT);
if(input & (1ULL << RMENU_DEVICE_NAV_START))
menu_settings_set_default(S_DEF_SAVE_STATE);
settings_set(1ULL << S_DEF_SAVE_STATE);
break;
case SETTING_EMU_SHOW_DEBUG_INFO_MSG:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
menu_settings_set(S_INFO_DEBUG_MSG_TOGGLE);
settings_set(1ULL << S_INFO_DEBUG_MSG_TOGGLE);
if(input & (1ULL << RMENU_DEVICE_NAV_START))
menu_settings_set_default(S_DEF_INFO_DEBUG_MSG);
settings_set(1ULL << S_DEF_INFO_DEBUG_MSG);
break;
case SETTING_EMU_SHOW_INFO_MSG:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
menu_settings_set(S_INFO_MSG_TOGGLE);
settings_set(1ULL << S_INFO_MSG_TOGGLE);
if(input & (1ULL << RMENU_DEVICE_NAV_START))
menu_settings_set_default(S_DEF_INFO_MSG);
settings_set(1ULL << S_DEF_INFO_MSG);
break;
case SETTING_EMU_REWIND_ENABLED:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_REWIND);
settings_set(1ULL << S_REWIND);
if (g_settings.rewind_enable)
rarch_init_rewind();
@ -1909,10 +1909,10 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
break;
case SETTING_EMU_AUDIO_MUTE:
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
menu_settings_set(S_AUDIO_MUTE);
settings_set(1ULL << S_AUDIO_MUTE);
if(input & (1ULL << RMENU_DEVICE_NAV_START))
menu_settings_set_default(S_DEF_AUDIO_MUTE);
settings_set(1ULL << S_DEF_AUDIO_MUTE);
break;
#ifdef _XBOX1
case SETTING_EMU_AUDIO_SOUND_VOLUME_LEVEL:
@ -2934,19 +2934,19 @@ int ingame_menu(void *data, void *state)
case MENU_ITEM_ORIENTATION:
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
{
menu_settings_set(S_ROTATION_DECREMENT);
settings_set(1ULL << S_ROTATION_DECREMENT);
driver.video->set_rotation(NULL, g_extern.console.screen.orientation);
}
if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
{
menu_settings_set(S_ROTATION_INCREMENT);
settings_set(1ULL << S_ROTATION_INCREMENT);
driver.video->set_rotation(NULL, g_extern.console.screen.orientation);
}
if(input & (1ULL << RMENU_DEVICE_NAV_START))
{
menu_settings_set_default(S_DEF_ROTATION);
settings_set(1ULL << S_DEF_ROTATION);
driver.video->set_rotation(NULL, g_extern.console.screen.orientation);
}
strlcpy(strw_buffer, "Change orientation of the screen.", sizeof(strw_buffer));
@ -2966,7 +2966,7 @@ int ingame_menu(void *data, void *state)
{
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
menu_settings_set(S_FRAME_ADVANCE);
settings_set(1ULL << S_FRAME_ADVANCE);
menu_idx = MENU_ITEM_FRAME_ADVANCE;
return -1;
}

View File

@ -679,7 +679,7 @@ HRESULT CRetroArchSettings::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
switch(current_index)
{
case SETTING_EMU_REWIND_ENABLED:
menu_settings_set(S_REWIND);
settings_set(1ULL << S_REWIND);
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF");
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
@ -810,7 +810,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
switch(current_index)
{
case SETTING_EMU_REWIND_ENABLED:
menu_settings_set(S_REWIND);
settings_set(1ULL << S_REWIND);
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF");
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
@ -882,7 +882,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
{
if((g_settings.video.fbo.scale_x > MIN_SCALING_FACTOR))
{
menu_settings_set(S_SCALE_FACTOR_DECREMENT);
settings_set(1ULL << S_SCALE_FACTOR_DECREMENT);
if (driver.video_poke->set_fbo_state)
{
@ -961,7 +961,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
m_settingslist.SetText(SETTING_GAMMA_CORRECTION_ENABLED, g_extern.console.screen.gamma_correction ? L"Gamma correction: ON" : L"Gamma correction: OFF");
break;
case SETTING_EMU_REWIND_ENABLED:
menu_settings_set(S_REWIND);
settings_set(1ULL << S_REWIND);
m_settingslist.SetText(SETTING_EMU_REWIND_ENABLED, g_settings.rewind_enable ? L"Rewind: ON" : L"Rewind: OFF");
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
@ -994,7 +994,7 @@ HRESULT CRetroArchSettings::OnControlNavigate(XUIMessageControlNavigate *pContro
{
if((g_settings.video.fbo.scale_x < MAX_SCALING_FACTOR))
{
menu_settings_set(S_SCALE_FACTOR_INCREMENT);
settings_set(1ULL << S_SCALE_FACTOR_INCREMENT);
if (driver.video_poke->set_fbo_state)
driver.video_poke->set_fbo_state(driver.video_data, FBO_REINIT);
@ -1091,11 +1091,11 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
m_quickmenulist.SetText(MENU_XUI_ITEM_SAVE_STATE, strw_buffer);
break;
case MENU_XUI_ITEM_ASPECT_RATIO:
menu_settings_set(S_ASPECT_RATIO_DECREMENT);
settings_set(1ULL << S_ASPECT_RATIO_DECREMENT);
aspectratio_changed = true;
break;
case MENU_XUI_ITEM_ORIENTATION:
menu_settings_set(S_ROTATION_DECREMENT);
settings_set(1ULL << S_ROTATION_DECREMENT);
menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
m_quickmenulist.SetText(MENU_XUI_ITEM_ORIENTATION, strw_buffer);
driver.video->set_rotation(driver.video_data, g_extern.console.screen.orientation);
@ -1116,11 +1116,11 @@ HRESULT CRetroArchQuickMenu::OnControlNavigate(XUIMessageControlNavigate *pContr
m_quickmenulist.SetText(MENU_XUI_ITEM_SAVE_STATE, strw_buffer);
break;
case MENU_XUI_ITEM_ASPECT_RATIO:
menu_settings_set(S_ASPECT_RATIO_INCREMENT);
settings_set(1ULL << S_ASPECT_RATIO_INCREMENT);
aspectratio_changed = true;
break;
case MENU_XUI_ITEM_ORIENTATION:
menu_settings_set(S_ROTATION_INCREMENT);
settings_set(1ULL << S_ROTATION_INCREMENT);
menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
m_quickmenulist.SetText(MENU_XUI_ITEM_ORIENTATION, strw_buffer);
driver.video->set_rotation(driver.video_data, g_extern.console.screen.orientation);
@ -1188,14 +1188,14 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
}
break;
case MENU_XUI_ITEM_ASPECT_RATIO:
menu_settings_set_default(S_DEF_ASPECT_RATIO);
settings_set(1ULL << S_DEF_ASPECT_RATIO);
if (driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ASPECT_RATIO, sizeof(strw_buffer));
m_quickmenulist.SetText(MENU_XUI_ITEM_ASPECT_RATIO, strw_buffer);
break;
case MENU_XUI_ITEM_ORIENTATION:
menu_settings_set_default(S_DEF_ROTATION);
settings_set(1ULL << S_DEF_ROTATION);
menu_settings_create_menu_item_label_w(strw_buffer, S_LBL_ROTATION, sizeof(strw_buffer));
m_quickmenulist.SetText(MENU_XUI_ITEM_ORIENTATION, strw_buffer);
driver.video->set_rotation(driver.video_data, g_extern.console.screen.orientation);
@ -1213,7 +1213,7 @@ HRESULT CRetroArchQuickMenu::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
if (g_extern.main_is_init)
{
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
menu_settings_set(S_FRAME_ADVANCE);
settings_set(1ULL << S_FRAME_ADVANCE);
process_input_ret = -1;
}
break;

View File

@ -290,7 +290,6 @@ static void get_environment_settings(int argc, char *argv[])
snprintf(default_paths.system_dir, sizeof(default_paths.system_dir), "%s/system", default_paths.core_dir);
/* now we fill in all the variables */
snprintf(default_paths.border_file, sizeof(default_paths.border_file), "%s/borders/Centered-1080p/mega-man-2.png", default_paths.core_dir);
snprintf(default_paths.menu_border_file, sizeof(default_paths.menu_border_file), "%s/borders/Menu/main-menu_1080p.png", default_paths.core_dir);
snprintf(default_paths.cgp_dir, sizeof(default_paths.cgp_dir), "%s/presets", default_paths.core_dir);
snprintf(default_paths.input_presets_dir, sizeof(default_paths.input_presets_dir), "%s/input", default_paths.cgp_dir);

View File

@ -63,7 +63,6 @@ static void get_environment_settings(int argc, char *argv[])
snprintf(default_paths.system_dir, sizeof(default_paths.system_dir), "%s/system", default_paths.core_dir);
/* now we fill in all the variables */
snprintf(default_paths.border_file, sizeof(default_paths.border_file), "%s/borders/Centered-1080p/mega-man-2.png", default_paths.core_dir);
snprintf(default_paths.menu_border_file, sizeof(default_paths.menu_border_file), "%s/borders/Menu/main-menu.png", default_paths.core_dir);
snprintf(default_paths.cgp_dir, sizeof(default_paths.cgp_dir), "%s/presets", default_paths.core_dir);
snprintf(default_paths.input_presets_dir, sizeof(default_paths.input_presets_dir), "%s/input", default_paths.cgp_dir);

View File

@ -635,12 +635,58 @@ struct rarch_main_wrap
bool verbose;
};
enum
{
S_ASPECT_RATIO_DECREMENT = 0,
S_ASPECT_RATIO_INCREMENT,
S_AUDIO_MUTE,
S_AUDIO_CONTROL_RATE_DECREMENT,
S_AUDIO_CONTROL_RATE_INCREMENT,
S_FRAME_ADVANCE,
S_HW_TEXTURE_FILTER,
S_HW_TEXTURE_FILTER_2,
S_OVERSCAN_DECREMENT,
S_OVERSCAN_INCREMENT,
S_RESOLUTION_PREVIOUS,
S_RESOLUTION_NEXT,
S_ROTATION_DECREMENT,
S_ROTATION_INCREMENT,
S_REWIND,
S_SAVESTATE_DECREMENT,
S_SAVESTATE_INCREMENT,
S_SCALE_ENABLED,
S_SCALE_FACTOR_DECREMENT,
S_SCALE_FACTOR_INCREMENT,
S_THROTTLE,
S_TRIPLE_BUFFERING,
S_REFRESH_RATE_DECREMENT,
S_REFRESH_RATE_INCREMENT,
S_INFO_DEBUG_MSG_TOGGLE,
S_INFO_MSG_TOGGLE,
S_DEF_ASPECT_RATIO,
S_DEF_AUDIO_MUTE,
S_DEF_AUDIO_CONTROL_RATE,
S_DEF_HW_TEXTURE_FILTER,
S_DEF_HW_TEXTURE_FILTER_2,
S_DEF_OVERSCAN,
S_DEF_ROTATION,
S_DEF_THROTTLE,
S_DEF_TRIPLE_BUFFERING,
S_DEF_SAVE_STATE,
S_DEF_SCALE_ENABLED,
S_DEF_SCALE_FACTOR,
S_DEF_REFRESH_RATE,
S_DEF_INFO_DEBUG_MSG,
S_DEF_INFO_MSG,
};
// Public functions
void config_load(void);
void config_set_defaults(void);
const char *config_get_default_video(void);
const char *config_get_default_audio(void);
const char *config_get_default_input(void);
void settings_set(uint64_t settings);
#include "conf/config_file.h"
bool config_load_file(const char *path);

View File

@ -282,13 +282,7 @@ void config_set_defaults(void)
strlcpy(g_extern.console.menu_texture_path, default_paths.menu_border_file, sizeof(g_extern.console.menu_texture_path));
#endif
#if defined(__CELLOS_LV2) || defined(_XBOX360)
g_settings.video.aspect_ratio_idx = ASPECT_RATIO_16_9;
#elif defined(GEKKO) || defined(_XBOX1)
g_settings.video.aspect_ratio_idx = ASPECT_RATIO_4_3;
#else
g_settings.video.aspect_ratio_idx = 0;
#endif
g_settings.video.aspect_ratio_idx = aspect_ratio_idx;
g_extern.state_slot = 0;
g_extern.audio_data.mute = 0;
g_extern.verbose = true;
@ -1341,3 +1335,227 @@ bool config_save_keybinds(const char *path)
return true;
}
void settings_set(uint64_t settings)
{
if (settings & (1ULL << S_ASPECT_RATIO_DECREMENT))
{
if(g_settings.video.aspect_ratio_idx > 0)
g_settings.video.aspect_ratio_idx--;
}
if (settings & (1ULL << S_ASPECT_RATIO_INCREMENT))
{
if(g_settings.video.aspect_ratio_idx < LAST_ASPECT_RATIO)
g_settings.video.aspect_ratio_idx++;
}
if (settings & (1ULL << S_AUDIO_MUTE))
g_extern.audio_data.mute = !g_extern.audio_data.mute;
if (settings & (1ULL << S_AUDIO_CONTROL_RATE_DECREMENT))
{
if (g_settings.audio.rate_control_delta > 0.0)
g_settings.audio.rate_control_delta -= 0.001;
if (g_settings.audio.rate_control_delta == 0.0)
g_settings.audio.rate_control = false;
else
g_settings.audio.rate_control = true;
}
if (settings & (1ULL << S_AUDIO_CONTROL_RATE_INCREMENT))
{
if (g_settings.audio.rate_control_delta < 0.2)
g_settings.audio.rate_control_delta += 0.001;
g_settings.audio.rate_control = true;
}
if (settings & (1ULL << S_FRAME_ADVANCE))
{
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
g_extern.lifecycle_mode_state |= (1ULL << MODE_GAME);
}
if (settings & (1ULL << S_HW_TEXTURE_FILTER))
g_settings.video.smooth = !g_settings.video.smooth;
if (settings & (1ULL << S_HW_TEXTURE_FILTER_2))
g_settings.video.second_pass_smooth = !g_settings.video.second_pass_smooth;
if (settings & (1ULL << S_OVERSCAN_DECREMENT))
{
g_extern.console.screen.overscan_amount -= 0.01f;
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
if(g_extern.console.screen.overscan_amount == 0.0f)
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
}
if (settings & (1ULL << S_OVERSCAN_INCREMENT))
{
g_extern.console.screen.overscan_amount += 0.01f;
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
if(g_extern.console.screen.overscan_amount == 0.0f)
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
}
if (settings & (1ULL << S_RESOLUTION_PREVIOUS))
{
if (g_extern.console.screen.resolutions.current.idx)
{
g_extern.console.screen.resolutions.current.idx--;
g_extern.console.screen.resolutions.current.id =
g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx];
}
}
if (settings & (1ULL << S_RESOLUTION_NEXT))
{
if (g_extern.console.screen.resolutions.current.idx + 1 <
g_extern.console.screen.resolutions.count)
{
g_extern.console.screen.resolutions.current.idx++;
g_extern.console.screen.resolutions.current.id =
g_extern.console.screen.resolutions.list[g_extern.console.screen.resolutions.current.idx];
}
}
if (settings & (1ULL << S_ROTATION_DECREMENT))
{
if(g_extern.console.screen.orientation > 0)
g_extern.console.screen.orientation--;
}
if (settings & (1ULL << S_ROTATION_INCREMENT))
{
if(g_extern.console.screen.orientation < LAST_ORIENTATION)
g_extern.console.screen.orientation++;
}
if (settings & (1ULL << S_REWIND))
g_settings.rewind_enable = !g_settings.rewind_enable;
if (settings & (1ULL << S_SAVESTATE_DECREMENT))
{
if(g_extern.state_slot != 0)
g_extern.state_slot--;
}
if (settings & (1ULL << S_SAVESTATE_INCREMENT))
g_extern.state_slot++;
if (settings & (1ULL << S_SCALE_ENABLED))
g_settings.video.render_to_texture = !g_settings.video.render_to_texture;
if (settings & (1ULL << S_SCALE_FACTOR_DECREMENT))
{
g_settings.video.fbo.scale_x -= 1.0f;
g_settings.video.fbo.scale_y -= 1.0f;
}
if (settings & (1ULL << S_SCALE_FACTOR_INCREMENT))
{
g_settings.video.fbo.scale_x += 1.0f;
g_settings.video.fbo.scale_y += 1.0f;
}
if (settings & (1ULL << S_THROTTLE))
{
if(!g_extern.system.force_nonblock)
{
if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_THROTTLE_ENABLE))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_THROTTLE_ENABLE);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE);
}
}
if (settings & (1ULL << S_TRIPLE_BUFFERING))
{
if (g_extern.lifecycle_mode_state & (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE);
}
if (settings & (1ULL << S_REFRESH_RATE_DECREMENT))
g_settings.video.refresh_rate -= 0.01f;
if (settings & (1ULL << S_REFRESH_RATE_INCREMENT))
g_settings.video.refresh_rate += 0.01f;
if (settings & (1ULL << S_INFO_DEBUG_MSG_TOGGLE))
{
if (g_extern.lifecycle_mode_state & (1ULL << MODE_FPS_DRAW))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_FPS_DRAW);
}
if (settings & (1ULL << S_INFO_MSG_TOGGLE))
{
if (g_extern.lifecycle_mode_state & (1ULL << MODE_INFO_DRAW))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_INFO_DRAW);
else
g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW);
}
if (settings & (1ULL << S_DEF_ASPECT_RATIO))
g_settings.video.aspect_ratio_idx = aspect_ratio_idx;
if (settings & (1ULL << S_DEF_AUDIO_MUTE))
g_extern.audio_data.mute = false;
if (settings & (1ULL << S_DEF_AUDIO_CONTROL_RATE))
{
g_settings.audio.rate_control_delta = rate_control_delta;
g_settings.audio.rate_control = rate_control;
}
if (settings & (1ULL << S_DEF_HW_TEXTURE_FILTER))
g_settings.video.smooth = video_smooth;
if (settings & (1ULL << S_DEF_HW_TEXTURE_FILTER_2))
g_settings.video.second_pass_smooth = second_pass_smooth;
if (settings & (1ULL << S_DEF_OVERSCAN))
{
g_extern.console.screen.overscan_amount = 0.0f;
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_VIDEO_OVERSCAN_ENABLE);
}
if (settings & (1ULL << S_DEF_ROTATION))
g_extern.console.screen.orientation = ORIENTATION_NORMAL;
if (settings & (1ULL << S_DEF_THROTTLE))
{
if(!g_extern.system.force_nonblock)
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_THROTTLE_ENABLE);
}
if (settings & (1ULL << S_DEF_TRIPLE_BUFFERING))
g_extern.lifecycle_mode_state |= (1ULL << MODE_VIDEO_TRIPLE_BUFFERING_ENABLE);
if (settings & (1ULL << S_DEF_SAVE_STATE))
g_extern.state_slot = 0;
if (settings & (1ULL << S_DEF_SCALE_ENABLED))
{
g_settings.video.render_to_texture = render_to_texture;
g_settings.video.fbo.scale_x = fbo_scale_x;
g_settings.video.fbo.scale_y = fbo_scale_y;
}
if (settings & (1ULL << S_DEF_SCALE_FACTOR))
{
g_settings.video.fbo.scale_x = fbo_scale_x;
g_settings.video.fbo.scale_y = fbo_scale_y;
}
if (settings & (1ULL << S_DEF_REFRESH_RATE))
g_settings.video.refresh_rate = refresh_rate;
if (settings & (1ULL << S_DEF_INFO_DEBUG_MSG))
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_FPS_DRAW);
if (settings & (1ULL << S_DEF_INFO_MSG))
g_extern.lifecycle_mode_state |= (1ULL << MODE_INFO_DRAW);
}