From cf7f4e9a2d91a43fa9d07557bded4a347c2f37c7 Mon Sep 17 00:00:00 2001 From: BlackMark Date: Mon, 6 Jul 2020 20:12:37 +0200 Subject: [PATCH] Move useful helper functions to utils --- AdaptiveBrightness/main_window.cpp | 20 +++----------------- AdaptiveBrightness/monitor.hpp | 6 ------ AdaptiveBrightness/monitor_win.cpp | 5 +++-- AdaptiveBrightness/utils.hpp | 26 ++++++++++++++++++++++++++ 4 files changed, 32 insertions(+), 25 deletions(-) create mode 100644 AdaptiveBrightness/utils.hpp diff --git a/AdaptiveBrightness/main_window.cpp b/AdaptiveBrightness/main_window.cpp index da0dd22..489f143 100644 --- a/AdaptiveBrightness/main_window.cpp +++ b/AdaptiveBrightness/main_window.cpp @@ -4,6 +4,7 @@ #include #include "log_tr.hpp" +#include "utils.hpp" MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), m_currentIcon(0), m_visibility(true) { @@ -56,21 +57,6 @@ MainWindow::~MainWindow() qDebug(ltr("Destroying main window")); } -namespace { - -template -struct array_size; - -template -struct array_size> { - static constexpr auto value = N; -}; - -template -inline constexpr auto array_size_v = array_size::value; - -} // namespace - void MainWindow::loadIcons() { qDebug(ltr("Loading icons")); @@ -81,7 +67,7 @@ void MainWindow::loadIcons() ":/AdaptiveBrightness/resources/nosense_6.ico", ":/AdaptiveBrightness/resources/nosense_7.ico", ":/AdaptiveBrightness/resources/nosense_8.ico", }; - static_assert(NO_SENSOR_ICON_PATHS.size() == array_size_v, "Number of paths does not match number of icons"); + static_assert(NO_SENSOR_ICON_PATHS.size() == utils::array_size_v, "Number of paths does not match number of icons"); constexpr auto SENSOR_ICON_PATHS = std::array{ ":/AdaptiveBrightness/resources/sense_0.ico", ":/AdaptiveBrightness/resources/sense_1.ico", ":/AdaptiveBrightness/resources/sense_2.ico", @@ -89,7 +75,7 @@ void MainWindow::loadIcons() ":/AdaptiveBrightness/resources/sense_6.ico", ":/AdaptiveBrightness/resources/sense_7.ico", ":/AdaptiveBrightness/resources/sense_8.ico", }; - static_assert(SENSOR_ICON_PATHS.size() == array_size_v, "Number of paths does not match number of icons"); + static_assert(SENSOR_ICON_PATHS.size() == utils::array_size_v, "Number of paths does not match number of icons"); constexpr auto ERROR_ICON_PATH = ":/AdaptiveBrightness/resources/error.ico"; diff --git a/AdaptiveBrightness/monitor.hpp b/AdaptiveBrightness/monitor.hpp index f887557..1da0f62 100644 --- a/AdaptiveBrightness/monitor.hpp +++ b/AdaptiveBrightness/monitor.hpp @@ -45,12 +45,6 @@ class Monitor { Monitor(HMONITOR hMonitor, PHYSICAL_MONITOR physicalMonitor); bool hasBrightnessCapability() const; - - template - auto map(InType value, InType inMin, InType inMax, OutType outMin, OutType outMax) - { - return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin; - } }; #endif diff --git a/AdaptiveBrightness/monitor_win.cpp b/AdaptiveBrightness/monitor_win.cpp index ff98e77..4b06596 100644 --- a/AdaptiveBrightness/monitor_win.cpp +++ b/AdaptiveBrightness/monitor_win.cpp @@ -13,6 +13,7 @@ #include "get_last_error.hpp" #include "log_tr.hpp" + #include "utils.hpp" Monitor::Monitor(HMONITOR hMonitor, PHYSICAL_MONITOR physicalMonitor) : m_hMonitor(hMonitor) @@ -52,7 +53,7 @@ bool Monitor::setBrightness(float percentage) return false; } - const auto mappedBrightness = map(percentage, 0.f, 1.f, m_brightnessRange->first, m_brightnessRange->second); + const auto mappedBrightness = utils::map(percentage, 0.f, 1.f, m_brightnessRange->first, m_brightnessRange->second); const auto newBrightness = std::clamp(std::round(mappedBrightness), m_brightnessRange->first, m_brightnessRange->second); if(!SetMonitorBrightness(m_physicalMonitor.handle, newBrightness)) { @@ -98,7 +99,7 @@ float Monitor::getBrightness() m_brightnessRange = std::pair{minBrightness, maxBrightness}; m_errorOccurred = false; - return std::clamp(map(brightness, minBrightness, maxBrightness, 0.f, 1.f), 0.f, 1.f); + return std::clamp(utils::map(brightness, minBrightness, maxBrightness, 0.f, 1.f), 0.f, 1.f); } Monitor::operator bool() const diff --git a/AdaptiveBrightness/utils.hpp b/AdaptiveBrightness/utils.hpp new file mode 100644 index 0000000..918b2d0 --- /dev/null +++ b/AdaptiveBrightness/utils.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include + +#include + +namespace utils { + +template +auto map(InType value, InType inMin, InType inMax, OutType outMin, OutType outMax) +{ + return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin; +} + +template +struct array_size; + +template +struct array_size> { + static constexpr auto value = N; +}; + +template +inline constexpr auto array_size_v = array_size::value; + +} // namespace utils