diff --git a/internal_filesystem/lib/mpos/camera_manager.py b/internal_filesystem/lib/mpos/camera_manager.py index fbd7a4d6..9460ae5c 100644 --- a/internal_filesystem/lib/mpos/camera_manager.py +++ b/internal_filesystem/lib/mpos/camera_manager.py @@ -262,100 +262,122 @@ class CameraManager: try: # Basic image adjustments brightness = prefs.get_int("brightness") - cam.set_brightness(brightness) + if brightness is not None: + cam.set_brightness(brightness) contrast = prefs.get_int("contrast") - cam.set_contrast(contrast) + if contrast is not None: + cam.set_contrast(contrast) saturation = prefs.get_int("saturation") - cam.set_saturation(saturation) + if saturation is not None: + cam.set_saturation(saturation) # Orientation hmirror = prefs.get_bool("hmirror") - cam.set_hmirror(hmirror) + if hmirror is not None: + cam.set_hmirror(hmirror) vflip = prefs.get_bool("vflip") - cam.set_vflip(vflip) + if vflip is not None: + cam.set_vflip(vflip) # Special effect special_effect = prefs.get_int("special_effect") - cam.set_special_effect(special_effect) + if special_effect is not None: + cam.set_special_effect(special_effect) # Exposure control (apply master switch first, then manual value) exposure_ctrl = prefs.get_bool("exposure_ctrl") - cam.set_exposure_ctrl(exposure_ctrl) - - if not exposure_ctrl: + if exposure_ctrl is not None: + cam.set_exposure_ctrl(exposure_ctrl) + else: aec_value = prefs.get_int("aec_value") - cam.set_aec_value(aec_value) + if aec_value is not None: + cam.set_aec_value(aec_value) # Mode-specific default comes from constructor ae_level = prefs.get_int("ae_level") - cam.set_ae_level(ae_level) + if ae_level is not None: + cam.set_ae_level(ae_level) aec2 = prefs.get_bool("aec2") - cam.set_aec2(aec2) + if aec2 is not None: + cam.set_aec2(aec2) # Gain control (apply master switch first, then manual value) gain_ctrl = prefs.get_bool("gain_ctrl") - cam.set_gain_ctrl(gain_ctrl) - - if not gain_ctrl: + if gain_ctrl is not None: + cam.set_gain_ctrl(gain_ctrl) + else: agc_gain = prefs.get_int("agc_gain") - cam.set_agc_gain(agc_gain) + if agc_gain is None: + cam.set_agc_gain(agc_gain) gainceiling = prefs.get_int("gainceiling") - cam.set_gainceiling(gainceiling) + if gainceiling is not None: + cam.set_gainceiling(gainceiling) # White balance (apply master switch first, then mode) whitebal = prefs.get_bool("whitebal") - cam.set_whitebal(whitebal) - - if not whitebal: + if whitebal is not None: + cam.set_whitebal(whitebal) + else: wb_mode = prefs.get_int("wb_mode") - cam.set_wb_mode(wb_mode) + if wb_mode is not None: + cam.set_wb_mode(wb_mode) awb_gain = prefs.get_bool("awb_gain") - cam.set_awb_gain(awb_gain) + if awb_gain is not None: + cam.set_awb_gain(awb_gain) # Sensor-specific settings (try/except for unsupported sensors) try: sharpness = prefs.get_int("sharpness") - cam.set_sharpness(sharpness) + if sharpness is not None: + cam.set_sharpness(sharpness) except: pass # Not supported on OV2640? try: denoise = prefs.get_int("denoise") - cam.set_denoise(denoise) + if denoise is not None: + cam.set_denoise(denoise) except: pass # Not supported on OV2640? # Advanced corrections colorbar = prefs.get_bool("colorbar") - cam.set_colorbar(colorbar) + if colorbar is not None: + cam.set_colorbar(colorbar) dcw = prefs.get_bool("dcw") - cam.set_dcw(dcw) + if dcw is not None: + cam.set_dcw(dcw) bpc = prefs.get_bool("bpc") - cam.set_bpc(bpc) + if bpc is not None: + cam.set_bpc(bpc) wpc = prefs.get_bool("wpc") - cam.set_wpc(wpc) + if wpc is not None: + cam.set_wpc(wpc) # Mode-specific default comes from constructor raw_gma = prefs.get_bool("raw_gma") - print(f"applying raw_gma: {raw_gma}") - cam.set_raw_gma(raw_gma) + if raw_gma is not None: + print(f"applying raw_gma: {raw_gma}") + cam.set_raw_gma(raw_gma) lenc = prefs.get_bool("lenc") - cam.set_lenc(lenc) + if lenc is not None: + cam.set_lenc(lenc) # JPEG quality (only relevant for JPEG format) #try: # quality = prefs.get_int("quality", 85) - # cam.set_quality(quality) + # if quality is not None: + # cam.set_quality(quality) #except: # pass # Not in JPEG mode