diff --git a/src/platform/qt/InputController.cpp b/src/platform/qt/InputController.cpp index 481465c0e..134dfbe17 100644 --- a/src/platform/qt/InputController.cpp +++ b/src/platform/qt/InputController.cpp @@ -10,6 +10,7 @@ #include "GamepadButtonEvent.h" #include "InputProfile.h" #include "LogController.h" +#include "utils.h" #include #include @@ -733,7 +734,7 @@ void InputController::decreaseLuminanceLevel() { void InputController::setLuminanceLevel(int level) { int value = 0x16; - level = std::max(0, std::min(10, level)); + level = clamp(level, 0, 10); if (level > 0) { value += GBA_LUX_LEVELS[level - 1]; } diff --git a/src/platform/qt/MemoryModel.cpp b/src/platform/qt/MemoryModel.cpp index ab21408d0..e58ec4574 100644 --- a/src/platform/qt/MemoryModel.cpp +++ b/src/platform/qt/MemoryModel.cpp @@ -9,6 +9,7 @@ #include "CoreController.h" #include "LogController.h" #include "VFileDevice.h" +#include "utils.h" #include #include @@ -628,11 +629,7 @@ void MemoryModel::keyPressEvent(QKeyEvent* event) { } void MemoryModel::boundsCheck() { - if (m_top < 0) { - m_top = 0; - } else if (m_top > (m_size >> 4) + 1 - viewport()->size().height() / m_cellHeight) { - m_top = (m_size >> 4) + 1 - viewport()->size().height() / m_cellHeight; - } + m_top = clamp(m_top, 0, static_cast(m_size >> 4) + 1 - viewport()->size().height() / m_cellHeight); } bool MemoryModel::isInSelection(uint32_t address) { diff --git a/src/platform/qt/SensorView.cpp b/src/platform/qt/SensorView.cpp index 54c49cc2c..ba8f87da2 100644 --- a/src/platform/qt/SensorView.cpp +++ b/src/platform/qt/SensorView.cpp @@ -8,6 +8,7 @@ #include "CoreController.h" #include "GamepadAxisEvent.h" #include "InputController.h" +#include "utils.h" #include #include @@ -129,7 +130,7 @@ void SensorView::updateSensors() { } void SensorView::setLuminanceValue(int value) { - value = std::max(0, std::min(value, 255)); + value = clamp(value, 0, 255); if (m_input) { m_input->setLuminanceValue(value); } diff --git a/src/platform/qt/utils.h b/src/platform/qt/utils.h index 31a883a51..dfab510ed 100644 --- a/src/platform/qt/utils.h +++ b/src/platform/qt/utils.h @@ -11,6 +11,8 @@ #include #include +#include + namespace QGBA { QString niceSizeFormat(size_t filesize); @@ -45,4 +47,13 @@ inline QRect clampSize(const QSize& ref, const QSize& size, bool aspectRatio, bo return QRect(origin, ds); } +#if __cplusplus >= 201703L +using std::clamp; +#else +template +constexpr const T& clamp(const T& v, const T& lo, const T& hi) { + return std::max(lo, std::min(hi, v)); +} +#endif + }