(Xbox 1 RMenu) Add sound volume level setting

This commit is contained in:
twinaphex 2012-08-22 16:59:12 +02:00
parent f921744ab4
commit eca2c09fdd
6 changed files with 45 additions and 8 deletions

View File

@ -354,11 +354,14 @@ static void *dsound_init(const char *device, unsigned rate, unsigned latency)
IDirectSoundBuffer_SetVolume(ds->dsb, DSBVOLUME_MAX);
#ifdef _XBOX
dsmb.dwMixBinCount = 8;
dsmb.lpMixBinVolumePairs = dsmbvp;
IDirectSoundBuffer_SetHeadroom(ds->dsb, DSBHEADROOM_MIN);
IDirectSoundBuffer_SetMixBins(ds->dsb, &dsmb);
if(g_console.sound_volume_level == 1)
{
dsmb.dwMixBinCount = 8;
dsmb.lpMixBinVolumePairs = dsmbvp;
IDirectSoundBuffer_SetHeadroom(ds->dsb, DSBHEADROOM_MIN);
IDirectSoundBuffer_SetMixBins(ds->dsb, &dsmb);
}
#endif
IDirectSoundBuffer_SetCurrentPosition(ds->dsb, 0);

View File

@ -104,7 +104,8 @@ void rarch_config_load(const char * conf_name, const char * libretro_dir_path, c
#endif
CONFIG_GET_BOOL_CONSOLE(gamma_correction, "gamma_correction");
#ifdef _XBOX1
CONFIG_GET_INT_CONSOLE(flicker_filter, "fliker_filter");
CONFIG_GET_INT_CONSOLE(flicker_filter, "flicker_filter");
CONFIG_GET_INT_CONSOLE(sound_volume_level, "sound_volume_level");
#endif
CONFIG_GET_BOOL_CONSOLE(soft_display_filter_enable, "soft_display_filter_enable");
CONFIG_GET_STRING_CONSOLE(default_rom_startup_dir, "default_rom_startup_dir");
@ -167,6 +168,7 @@ void rarch_config_save(const char * conf_name)
config_set_bool(conf, "soft_display_filter_enable", g_console.soft_display_filter_enable);
#ifdef _XBOX1
config_set_int(conf, "flicker_filter", g_console.flicker_filter);
config_set_int(conf, "sound_volume_level", g_console.sound_volume_level);
#endif
config_set_bool(conf, "throttle_enable", g_console.throttle_enable);
config_set_bool(conf, "triple_buffering_enable", g_console.triple_buffering_enable);

View File

@ -416,6 +416,7 @@ void rarch_settings_set_default (const input_driver_t *input)
g_console.gamma_correction = DEFAULT_GAMMA;
#ifdef _XBOX1
g_console.flicker_filter = 1;
g_console.sound_volume_level = 0;
#endif
g_console.soft_display_filter_enable = true;
#ifdef HAVE_ZLIB

View File

@ -358,10 +358,20 @@ static void populate_setting_item(unsigned i, item *current_item)
snprintf(current_item->text, sizeof(current_item->text), "Mute Audio");
snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_extern.audio_data.mute ? "ON" : "OFF");
if(g_extern.audio_data.mute)
snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Audio Mute] feature is set to 'ON'. The game audio will be muted.");
snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Audio Mute] is set to 'ON'. The game audio will be muted.");
else
snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Audio Mute] feature is set to 'OFF'.");
snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Audio Mute] is set to 'OFF'.");
break;
#ifdef _XBOX1
case SETTING_EMU_AUDIO_SOUND_VOLUME_LEVEL:
snprintf(current_item->text, sizeof(current_item->text), "Volume Level");
snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.sound_volume_level ? "Loud" : "Normal");
if(g_extern.audio_data.mute)
snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Volume Level] is set to 'Loud'");
else
snprintf(current_item->comment, sizeof(current_item->comment), "INFO - [Volume Level' is set to 'Normal'.");
break;
#endif
case SETTING_ENABLE_CUSTOM_BGM:
snprintf(current_item->text, sizeof(current_item->text), "Custom BGM Option");
snprintf(current_item->setting_text, sizeof(current_item->setting_text), g_console.custom_bgm_enable ? "ON" : "OFF");
@ -1314,6 +1324,23 @@ static void set_setting_action(menu *current_menu, unsigned switchvalue, uint64_
if(input & (1 << RMENU_DEVICE_NAV_START))
rarch_settings_default(S_DEF_AUDIO_MUTE);
break;
#ifdef _XBOX1
case SETTING_EMU_AUDIO_SOUND_VOLUME_LEVEL:
if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)))
{
g_console.sound_volume_level = !g_console.sound_volume_level;
if(g_console.info_msg_enable)
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
}
if(input & (1 << RMENU_DEVICE_NAV_START))
{
g_console.sound_volume_level = 0;
if(g_console.info_msg_enable)
rarch_settings_msg(S_MSG_RESTART_RARCH, S_DELAY_180);
}
break;
#endif
case SETTING_ENABLE_CUSTOM_BGM:
if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)))
{

View File

@ -166,6 +166,9 @@ enum
SETTING_EMU_DEFAULT_ALL,
SETTING_EMU_REWIND_ENABLED,
SETTING_EMU_VIDEO_DEFAULT_ALL,
#ifdef _XBOX1
SETTING_EMU_AUDIO_SOUND_VOLUME_LEVEL,
#endif
SETTING_EMU_AUDIO_MUTE,
SETTING_EMU_AUDIO_DEFAULT_ALL,
SETTING_PATH_DEFAULT_ROM_DIRECTORY,

View File

@ -214,6 +214,7 @@ struct console_settings
#endif
#ifdef _XBOX1
unsigned flicker_filter;
unsigned sound_volume_level;
#endif
bool soft_display_filter_enable;
bool initialize_rarch_enable;