(GX) Add resampler options to RGUI

This commit is contained in:
twinaphex 2013-02-08 18:36:47 +01:00
parent 4fdbd7deec
commit 3db9f488b0
2 changed files with 44 additions and 0 deletions

View File

@ -463,6 +463,14 @@ static void render_text(rgui_handle_t *rgui)
case RGUI_SETTINGS_AUDIO_CONTROL_RATE:
snprintf(type_str, sizeof(type_str), "%.3f", g_settings.audio.rate_control_delta);
break;
case RGUI_SETTINGS_RESAMPLER_TYPE:
#ifdef HAVE_SINC
if (strstr(g_settings.audio.resampler, "sinc"))
snprintf(type_str, sizeof(type_str), "Sinc");
else
#endif
snprintf(type_str, sizeof(type_str), "Hermite");
break;
case RGUI_SETTINGS_SRAM_DIR:
snprintf(type_str, sizeof(type_str), (g_extern.lifecycle_mode_state & (1ULL << MODE_LOAD_GAME_SRAM_DIR_ENABLE)) ? "ON" : "OFF");
break;
@ -750,6 +758,40 @@ static int rgui_settings_toggle_setting(rgui_file_type_t setting, rgui_action_t
else if (action == RGUI_ACTION_RIGHT)
rmenu_settings_set(S_AUDIO_CONTROL_RATE_INCREMENT);
break;
case RGUI_SETTINGS_RESAMPLER_TYPE:
{
bool changed = false;
if (action == RGUI_ACTION_START)
{
#ifdef HAVE_SINC
snprintf(g_settings.audio.resampler, sizeof(g_settings.audio.resampler), "sinc");
#else
snprintf(g_settings.audio.resampler, sizeof(g_settings.audio.resampler), "hermite");
#endif
changed = true;
}
else if (action == RGUI_ACTION_LEFT || action == RGUI_ACTION_RIGHT)
{
#ifdef HAVE_SINC
if( strstr(g_settings.audio.resampler, "hermite"))
snprintf(g_settings.audio.resampler, sizeof(g_settings.audio.resampler), "sinc");
else
#endif
snprintf(g_settings.audio.resampler, sizeof(g_settings.audio.resampler), "hermite");
changed = true;
}
if (g_extern.main_is_init && changed)
{
if (!rarch_resampler_realloc(&g_extern.audio_data.resampler_data, &g_extern.audio_data.resampler,
g_settings.audio.resampler))
{
RARCH_ERR("Failed to initialize resampler \"%s\".\n", g_settings.audio.resampler);
g_extern.audio_active = false;
}
}
}
break;
case RGUI_SETTINGS_SRAM_DIR:
if (action == RGUI_ACTION_START || action == RGUI_ACTION_LEFT)
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_LOAD_GAME_SRAM_DIR_ENABLE);
@ -879,6 +921,7 @@ static void rgui_settings_populate_entries(rgui_handle_t *rgui)
RGUI_MENU_ITEM("Rotation", RGUI_SETTINGS_VIDEO_ROTATION);
RGUI_MENU_ITEM("Mute Audio", RGUI_SETTINGS_AUDIO_MUTE);
RGUI_MENU_ITEM("Audio Control Rate", RGUI_SETTINGS_AUDIO_CONTROL_RATE);
RGUI_MENU_ITEM("Audio Resampler", RGUI_SETTINGS_RESAMPLER_TYPE);
RGUI_MENU_ITEM("SRAM Saves in \"sram\" Dir", RGUI_SETTINGS_SRAM_DIR);
RGUI_MENU_ITEM("State Saves in \"state\" Dir", RGUI_SETTINGS_STATE_DIR);
RGUI_MENU_ITEM("Core", RGUI_SETTINGS_CORE);

View File

@ -54,6 +54,7 @@ typedef enum
RGUI_SETTINGS_VIDEO_ROTATION,
RGUI_SETTINGS_AUDIO_MUTE,
RGUI_SETTINGS_AUDIO_CONTROL_RATE,
RGUI_SETTINGS_RESAMPLER_TYPE,
RGUI_SETTINGS_ZIP_EXTRACT,
RGUI_SETTINGS_SRAM_DIR,
RGUI_SETTINGS_STATE_DIR,