From 21238048a32446b5e2ca1d195a6a951b840942fa Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 17 May 2013 23:26:11 +0200 Subject: [PATCH] (RGUI) Add opacity overlay setting --- frontend/menu/menu_common.h | 1 + frontend/menu/rgui.c | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index f02121290b..f703adc2e3 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -166,6 +166,7 @@ typedef enum #ifdef HAVE_OVERLAY RGUI_SETTINGS_OVERLAY_PRESET, + RGUI_SETTINGS_OVERLAY_OPACITY, #endif RGUI_SETTINGS_BIND_PLAYER, RGUI_SETTINGS_BIND_DEVICE, diff --git a/frontend/menu/rgui.c b/frontend/menu/rgui.c index c4d9a15cc5..f0441ebc8a 100644 --- a/frontend/menu/rgui.c +++ b/frontend/menu/rgui.c @@ -649,6 +649,15 @@ static void render_text(rgui_handle_t *rgui) case RGUI_SETTINGS_OPTIONS: strlcpy(type_str, "...", sizeof(type_str)); break; +#ifdef HAVE_OVERLAY + case RGUI_SETTINGS_OVERLAY_OPACITY: + { + char number[10]; + snprintf(number, sizeof(number), "%.3f", g_settings.input.overlay_opacity); + strlcpy(type_str, number, sizeof(type_str)); + } + break; +#endif case RGUI_SETTINGS_BIND_PLAYER: { char number[10]; @@ -1009,6 +1018,40 @@ static int rgui_settings_toggle_setting(rgui_handle_t *rgui, unsigned setting, r break; } break; + case RGUI_SETTINGS_OVERLAY_OPACITY: + { + bool changed = false; + switch (action) + { + case RGUI_ACTION_LEFT: + if (g_settings.input.overlay_opacity > 0.0f) + { + g_settings.input.overlay_opacity -= 0.01f; + changed = true; + } + break; + case RGUI_ACTION_RIGHT: + case RGUI_ACTION_OK: + if (g_settings.input.overlay_opacity < 1.0f) + { + g_settings.input.overlay_opacity += 0.01f; + changed = true; + } + break; + case RGUI_ACTION_START: + g_settings.input.overlay_opacity = 1.0f; + changed = true; + break; + + default: + break; + } + + if (changed && driver.overlay) + input_overlay_set_alpha_mod(driver.overlay, + g_settings.input.overlay_opacity); + } + break; #endif // controllers case RGUI_SETTINGS_BIND_PLAYER: @@ -1757,6 +1800,7 @@ static void rgui_settings_controller_populate_entries(rgui_handle_t *rgui) rgui_list_clear(rgui->selection_buf); #ifdef HAVE_OVERLAY rgui_list_push(rgui->selection_buf, "Overlay Preset", RGUI_SETTINGS_OVERLAY_PRESET, 0); + rgui_list_push(rgui->selection_buf, "Overlay Opacity", RGUI_SETTINGS_OVERLAY_OPACITY, 0); #endif rgui_list_push(rgui->selection_buf, "Player", RGUI_SETTINGS_BIND_PLAYER, 0); rgui_list_push(rgui->selection_buf, "Device", RGUI_SETTINGS_BIND_DEVICE, 0);