From 9ef0dea80ef67d739c11cd3d88f12250ddecf612 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 26 Apr 2022 18:58:49 +0200 Subject: tracker/trackhat: merge gain/exposure sliders --- tracker-trackhat/settings.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'tracker-trackhat/settings.cpp') diff --git a/tracker-trackhat/settings.cpp b/tracker-trackhat/settings.cpp index f9a866bf..0ecca16d 100644 --- a/tracker-trackhat/settings.cpp +++ b/tracker-trackhat/settings.cpp @@ -7,6 +7,14 @@ namespace trackhat_impl { trackhat_settings::trackhat_settings() : opts{"tracker-trackhat"} { } +int trackhat_settings::effective_exposure() const +{ + return std::clamp((int)*exposure, min_exposure, max_exposure); +} +int trackhat_settings::effective_gain() const +{ + return min_gain + std::clamp((int)*exposure - max_exposure, 0, max_gain - min_gain); +} void setting_receiver::settings_changed() { @@ -80,12 +88,12 @@ void trackhat_camera::set_pt_options() bool trackhat_camera::init_regs() { - auto exp = (uint8_t)t.exposure; + auto exp = (uint8_t)t.effective_exposure(); auto exp2 = (uint8_t)(exp == 0xff ? 0xf0 : 0xff); auto thres = (uint8_t)t.threshold; auto thres2 = (uint8_t)3; - auto gain = (uint8_t)((int)*t.gain); + auto gain = (uint8_t)t.effective_gain(); auto gain_c = (uint8_t)(gain/0x10); gain %= 0x10; gain_c %= 4; -- cgit v1.2.3