mirror of
https://github.com/libretro/RetroArch.git
synced 2024-10-07 14:23:29 +00:00
Add volume option.
There's a rudimentary volume option for XBOX1 there though ... Dunno what to do about that.
This commit is contained in:
parent
17559a3a18
commit
2be201ecf3
@ -1986,6 +1986,8 @@ void menu_populate_entries(void *data, unsigned menu_type)
|
||||
#endif
|
||||
#ifdef _XBOX1
|
||||
file_list_push(rgui->selection_buf, "Volume Level", RGUI_SETTINGS_AUDIO_VOLUME_LEVEL, 0);
|
||||
#else
|
||||
file_list_push(rgui->selection_buf, "Volume Level", RGUI_SETTINGS_AUDIO_VOLUME, 0);
|
||||
#endif
|
||||
#ifdef HAVE_RSOUND
|
||||
file_list_push(rgui->selection_buf, "RSound Server IP Address", RGUI_SETTINGS_RSOUND_SERVER_IP_ADDRESS, 0);
|
||||
|
@ -140,7 +140,8 @@ typedef enum
|
||||
RGUI_SETTINGS_RESTART_GAME,
|
||||
RGUI_SETTINGS_AUDIO_MUTE,
|
||||
RGUI_SETTINGS_AUDIO_CONTROL_RATE_DELTA,
|
||||
RGUI_SETTINGS_AUDIO_VOLUME_LEVEL,
|
||||
RGUI_SETTINGS_AUDIO_VOLUME_LEVEL, // XBOX1 only it seems. FIXME: Refactor this?
|
||||
RGUI_SETTINGS_AUDIO_VOLUME,
|
||||
RGUI_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE,
|
||||
RGUI_SETTINGS_RSOUND_SERVER_IP_ADDRESS,
|
||||
RGUI_SETTINGS_ZIP_EXTRACT,
|
||||
|
@ -536,6 +536,28 @@ int menu_set_settings(void *data, unsigned setting, unsigned action)
|
||||
g_settings.audio.rate_control = true;
|
||||
}
|
||||
break;
|
||||
case RGUI_SETTINGS_AUDIO_VOLUME:
|
||||
{
|
||||
float db_delta = 0.0f;
|
||||
if (action == RGUI_ACTION_START)
|
||||
{
|
||||
g_extern.audio_data.volume_db = 0.0f;
|
||||
g_extern.audio_data.volume_gain = 1.0f;
|
||||
}
|
||||
else if (action == RGUI_ACTION_LEFT)
|
||||
db_delta -= 1.0f;
|
||||
else if (action == RGUI_ACTION_RIGHT)
|
||||
db_delta += 1.0f;
|
||||
|
||||
if (db_delta != 0.0f)
|
||||
{
|
||||
g_extern.audio_data.volume_db += db_delta;
|
||||
g_extern.audio_data.volume_db = max(g_extern.audio_data.volume_db, -80.0f);
|
||||
g_extern.audio_data.volume_db = min(g_extern.audio_data.volume_db, 12.0f);
|
||||
g_extern.audio_data.volume_gain = db_to_gain(g_extern.audio_data.volume_db);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RGUI_SETTINGS_DEBUG_TEXT:
|
||||
if (action == RGUI_ACTION_START)
|
||||
g_settings.fps_show = false;
|
||||
@ -1881,6 +1903,9 @@ void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w,
|
||||
strlcpy(type_str, (g_extern.console.sound.volume_level) ? "Loud" : "Normal", type_str_size);
|
||||
break;
|
||||
#endif
|
||||
case RGUI_SETTINGS_AUDIO_VOLUME:
|
||||
snprintf(type_str, type_str_size, "%.1f dB", g_extern.audio_data.volume_db);
|
||||
break;
|
||||
case RGUI_SETTINGS_RSOUND_SERVER_IP_ADDRESS:
|
||||
strlcpy(type_str, g_settings.audio.device, type_str_size);
|
||||
break;
|
||||
|
@ -2669,10 +2669,8 @@ static void check_volume(void)
|
||||
db_change -= 0.5f;
|
||||
|
||||
g_extern.audio_data.volume_db += db_change;
|
||||
if (g_extern.audio_data.volume_db > 12.0f)
|
||||
g_extern.audio_data.volume_db = 12.0f;
|
||||
else if (g_extern.audio_data.volume_db < -80.0f)
|
||||
g_extern.audio_data.volume_db = -80.0f;
|
||||
g_extern.audio_data.volume_db = max(g_extern.audio_data.volume_db, -80.0f);
|
||||
g_extern.audio_data.volume_db = min(g_extern.audio_data.volume_db, 12.0f);
|
||||
|
||||
char msg[256];
|
||||
snprintf(msg, sizeof(msg), "Volume: %.1f dB", g_extern.audio_data.volume_db);
|
||||
|
Loading…
Reference in New Issue
Block a user