From ae800e6f3a642be360e301313701f19356460b98 Mon Sep 17 00:00:00 2001 From: ykeara Date: Fri, 12 Apr 2019 17:46:10 -0500 Subject: [PATCH] save brightness OverlaySettings --- src/tabcontrollers/VideoTabController.cpp | 52 ++++++++++++----------- src/tabcontrollers/VideoTabController.h | 26 +++++++++--- 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/src/tabcontrollers/VideoTabController.cpp b/src/tabcontrollers/VideoTabController.cpp index 1fef2d6..35c188d 100644 --- a/src/tabcontrollers/VideoTabController.cpp +++ b/src/tabcontrollers/VideoTabController.cpp @@ -8,10 +8,9 @@ namespace advsettings { void VideoTabController::initStage1() { - //reloadVideoConfig(); + } -//TODO args void VideoTabController::initStage2(OverlayController* var_parent, QQuickWindow* var_widget) { @@ -25,21 +24,18 @@ namespace advsettings notifKey.c_str(), notifKey.c_str(), &m_brightnessNotificationOverlayHandle); if (overlayError == vr::VROverlayError_None) { - constexpr auto notificationIconFilename - = "/res/img/video/dimmer.png"; const auto notifIconPath - = paths::binaryDirectoryFindFile(notificationIconFilename); + = paths::binaryDirectoryFindFile(video_keys::k_brightnessOverlayFilename); if (notifIconPath.has_value()) { vr::VROverlay()->SetOverlayFromFile(m_brightnessNotificationOverlayHandle, notifIconPath->c_str()); vr::VROverlay()->SetOverlayWidthInMeters( - m_brightnessNotificationOverlayHandle, 1.0f); - //Places the "overlay just past eye sight 1mx1m + m_brightnessNotificationOverlayHandle, k_overlayWidth); vr::HmdMatrix34_t notificationTransform = { { { 1.0f, 0.0f, 0.0f, 0.00f }, { 0.0f, 1.0f, 0.0f, 0.00f }, - { 0.0f, 0.0f, 1.0f, -0.15f } } }; + { 0.0f, 0.0f, 1.0f, k_hmdDistance } } }; vr::VROverlay()->SetOverlayTransformTrackedDeviceRelative( m_brightnessNotificationOverlayHandle, vr::k_unTrackedDeviceIndex_Hmd, @@ -48,7 +44,7 @@ namespace advsettings else { LOG(ERROR) << "Could not find notification icon \"" - << notificationIconFilename << "\""; + << video_keys::k_brightnessOverlayFilename << "\""; } } else @@ -57,7 +53,8 @@ namespace advsettings << vr::VROverlay()->GetOverlayErrorNameFromEnum( overlayError); } - //emit defaultProfileDisplay(); + + reloadVideoConfig(); } void VideoTabController::eventLoopTick() @@ -65,35 +62,35 @@ namespace advsettings } - /*void VideoTabController::reloadVideoConfig() { - //Others Use Mutex needed? + void VideoTabController::reloadVideoConfig() { auto settings = OverlayController::appSettings(); settings->beginGroup(getSettingsName()); - - //TODO might need emit params - setBrightnessEnabled(settings->value("brightnessEnabled", false).toBool()); - setBrightnessLevel(settings->value("brightnessValue", 100).toFloat()); + setBrightnessEnabled(settings->value("brightnessEnabled", false).toBool(), true); + m_opacityValue = settings->value("opacityValue", 0.0f).toFloat(); + setBrightnessValue(settings->value("brightnessValue", 1.0f).toFloat(), true); settings->endGroup(); } - */ + - /* + void VideoTabController::saveVideoConfig() { auto settings = OverlayController::appSettings(); settings->beginGroup(getSettingsName()); - settings->setValue("brightnessEnabled", brightnessEnabled()); + settings->setValue("opacityValue", opacityValue()); settings->setValue("brightnessValue", brightnessValue()); - } - void VideoTabController::saveVideoConfig() { + settings->endGroup(); } - */ + + float VideoTabController::opacityValue() const { + return m_opacityValue; + } float VideoTabController::brightnessValue() const { - return (1.0f - m_opacityValue); + return m_brightnessValue; } bool VideoTabController::brightnessEnabled() const @@ -111,15 +108,17 @@ namespace advsettings if(getBrightnessOverlayHandle() != vr::k_ulOverlayHandleInvalid) { vr::VROverlay()->ShowOverlay(getBrightnessOverlayHandle()); - LOG(INFO) << "overlay is on"; + LOG(INFO) << "Brightness Overlay toggled on"; } } else { if (getBrightnessOverlayHandle() != vr::k_ulOverlayHandleInvalid) { vr::VROverlay()->HideOverlay(getBrightnessOverlayHandle()); + LOG(INFO) << "Brightness Overlay toggled off"; } } + saveVideoConfig(); if (notify) { emit brightnessEnabledChanged(value); @@ -135,14 +134,17 @@ namespace advsettings if (realvalue != m_opacityValue) { - m_opacityValue = realvalue; + m_brightnessValue = percvalue; if (realvalue <= 1.0f && realvalue >= 0.0f) { + m_opacityValue = realvalue; vr::VROverlayError overlayError = vr::VROverlay()->SetOverlayAlpha(m_brightnessNotificationOverlayHandle, realvalue); if (overlayError != vr::VROverlayError_None) { LOG(ERROR) << "Could not set alpha: " << vr::VROverlay()->GetOverlayErrorNameFromEnum( overlayError); } + //only saves if opacity Value is valid. [1-0] + saveVideoConfig(); } else { LOG(WARNING) << "alpha value is invalid setting to 1.0"; diff --git a/src/tabcontrollers/VideoTabController.h b/src/tabcontrollers/VideoTabController.h index ec80be6..ced71d7 100644 --- a/src/tabcontrollers/VideoTabController.h +++ b/src/tabcontrollers/VideoTabController.h @@ -5,11 +5,16 @@ #include #include #include -//#include "../overlaycontroller.h" class QQuickWindow; +namespace video_keys { + + constexpr auto k_brightnessOverlayFilename = "/res/img/video/dimmer.png"; + +}//namespace video_keys + namespace advsettings { // forward declaration class OverlayController; @@ -23,18 +28,23 @@ namespace advsettings { setBrightnessValue NOTIFY brightnessValueChanged) private: - //TODO - //constexpr auto notificationBrightnessFilename + + // how far away the overlay is, any OVERLAY closer will not be dimmed. + const float k_hmdDistance = -0.15f; + // how wide overlay is, Increase this value if edges of view are not dimmed. + const float k_overlayWidth = 1.0f; OverlayController * parent; QQuickWindow* widget; vr::VROverlayHandle_t m_brightnessNotificationOverlayHandle = vr::k_ulOverlayHandleInvalid; float m_opacityValue = 0.0f; + float m_brightnessValue = 1.0f; bool m_brightnessEnabled = false; - //void reloadVideoConfig(); - //void saveVideoConfig(); + + void reloadVideoConfig(); + void saveVideoConfig(); QString getSettingsName(){ @@ -48,6 +58,10 @@ namespace advsettings { public: + + + float opacityValue() const; + //inverse of brightnessValue float brightnessValue() const; bool brightnessEnabled() const; @@ -66,4 +80,4 @@ namespace advsettings { void brightnessValueChanged(float value); }; -}// namespace \ No newline at end of file +}// namespace advsettings \ No newline at end of file