@@ -188,16 +188,30 @@ def load_settings_cached(self):
188188 if self .scanqr_mode :
189189 print ("loading scanqr settings..." )
190190 if not self .scanqr_prefs :
191- self .scanqr_prefs = SharedPreferences (self .PACKAGE , filename = self .SCANQR_CONFIG )
192- self .width = self .scanqr_prefs .get_int ("resolution_width" , CameraSettingsActivity .DEFAULT_SCANQR_WIDTH )
193- self .height = self .scanqr_prefs .get_int ("resolution_height" , CameraSettingsActivity .DEFAULT_SCANQR_HEIGHT )
194- self .colormode = self .scanqr_prefs .get_bool ("colormode" , CameraSettingsActivity .DEFAULT_SCANQR_COLORMODE )
191+ # Merge common and scanqr-specific defaults
192+ scanqr_defaults = {}
193+ scanqr_defaults .update (CameraSettingsActivity .COMMON_DEFAULTS )
194+ scanqr_defaults .update (CameraSettingsActivity .SCANQR_DEFAULTS )
195+ self .scanqr_prefs = SharedPreferences (
196+ self .PACKAGE ,
197+ filename = self .SCANQR_CONFIG ,
198+ defaults = scanqr_defaults
199+ )
200+ # Defaults come from constructor, no need to pass them here
201+ self .width = self .scanqr_prefs .get_int ("resolution_width" )
202+ self .height = self .scanqr_prefs .get_int ("resolution_height" )
203+ self .colormode = self .scanqr_prefs .get_bool ("colormode" )
195204 else :
196205 if not self .prefs :
197- self .prefs = SharedPreferences (self .PACKAGE )
198- self .width = self .prefs .get_int ("resolution_width" , CameraSettingsActivity .DEFAULT_WIDTH )
199- self .height = self .prefs .get_int ("resolution_height" , CameraSettingsActivity .DEFAULT_HEIGHT )
200- self .colormode = self .prefs .get_bool ("colormode" , CameraSettingsActivity .DEFAULT_COLORMODE )
206+ # Merge common and normal-specific defaults
207+ normal_defaults = {}
208+ normal_defaults .update (CameraSettingsActivity .COMMON_DEFAULTS )
209+ normal_defaults .update (CameraSettingsActivity .NORMAL_DEFAULTS )
210+ self .prefs = SharedPreferences (self .PACKAGE , defaults = normal_defaults )
211+ # Defaults come from constructor, no need to pass them here
212+ self .width = self .prefs .get_int ("resolution_width" )
213+ self .height = self .prefs .get_int ("resolution_height" )
214+ self .colormode = self .prefs .get_bool ("colormode" )
201215
202216 def update_preview_image (self ):
203217 self .image_dsc = lv .image_dsc_t ({
@@ -467,93 +481,95 @@ def apply_camera_settings(self, prefs, cam, use_webcam):
467481
468482 try :
469483 # Basic image adjustments
470- brightness = prefs .get_int ("brightness" , CameraSettingsActivity . DEFAULTS . get ( "brightness" ) )
484+ brightness = prefs .get_int ("brightness" )
471485 cam .set_brightness (brightness )
472486
473- contrast = prefs .get_int ("contrast" , 0 )
487+ contrast = prefs .get_int ("contrast" )
474488 cam .set_contrast (contrast )
475489
476- saturation = prefs .get_int ("saturation" , 0 )
490+ saturation = prefs .get_int ("saturation" )
477491 cam .set_saturation (saturation )
478-
492+
479493 # Orientation
480- hmirror = prefs .get_bool ("hmirror" , False )
494+ hmirror = prefs .get_bool ("hmirror" )
481495 cam .set_hmirror (hmirror )
482-
483- vflip = prefs .get_bool ("vflip" , True )
496+
497+ vflip = prefs .get_bool ("vflip" )
484498 cam .set_vflip (vflip )
485-
499+
486500 # Special effect
487- special_effect = prefs .get_int ("special_effect" , 0 )
501+ special_effect = prefs .get_int ("special_effect" )
488502 cam .set_special_effect (special_effect )
489-
503+
490504 # Exposure control (apply master switch first, then manual value)
491- exposure_ctrl = prefs .get_bool ("exposure_ctrl" , True )
505+ exposure_ctrl = prefs .get_bool ("exposure_ctrl" )
492506 cam .set_exposure_ctrl (exposure_ctrl )
493-
507+
494508 if not exposure_ctrl :
495- aec_value = prefs .get_int ("aec_value" , 300 )
509+ aec_value = prefs .get_int ("aec_value" )
496510 cam .set_aec_value (aec_value )
497-
498- ae_level = prefs .get_int ("ae_level" , 2 if self .scanqr_mode else 0 )
511+
512+ # Mode-specific default comes from constructor
513+ ae_level = prefs .get_int ("ae_level" )
499514 cam .set_ae_level (ae_level )
500-
501- aec2 = prefs .get_bool ("aec2" , False )
515+
516+ aec2 = prefs .get_bool ("aec2" )
502517 cam .set_aec2 (aec2 )
503518
504519 # Gain control (apply master switch first, then manual value)
505- gain_ctrl = prefs .get_bool ("gain_ctrl" , True )
520+ gain_ctrl = prefs .get_bool ("gain_ctrl" )
506521 cam .set_gain_ctrl (gain_ctrl )
507-
522+
508523 if not gain_ctrl :
509- agc_gain = prefs .get_int ("agc_gain" , 0 )
524+ agc_gain = prefs .get_int ("agc_gain" )
510525 cam .set_agc_gain (agc_gain )
511-
512- gainceiling = prefs .get_int ("gainceiling" , 0 )
526+
527+ gainceiling = prefs .get_int ("gainceiling" )
513528 cam .set_gainceiling (gainceiling )
514-
529+
515530 # White balance (apply master switch first, then mode)
516- whitebal = prefs .get_bool ("whitebal" , True )
531+ whitebal = prefs .get_bool ("whitebal" )
517532 cam .set_whitebal (whitebal )
518-
533+
519534 if not whitebal :
520- wb_mode = prefs .get_int ("wb_mode" , 0 )
535+ wb_mode = prefs .get_int ("wb_mode" )
521536 cam .set_wb_mode (wb_mode )
522-
523- awb_gain = prefs .get_bool ("awb_gain" , True )
537+
538+ awb_gain = prefs .get_bool ("awb_gain" )
524539 cam .set_awb_gain (awb_gain )
525540
526541 # Sensor-specific settings (try/except for unsupported sensors)
527542 try :
528- sharpness = prefs .get_int ("sharpness" , 0 )
543+ sharpness = prefs .get_int ("sharpness" )
529544 cam .set_sharpness (sharpness )
530545 except :
531546 pass # Not supported on OV2640?
532-
547+
533548 try :
534- denoise = prefs .get_int ("denoise" , 0 )
549+ denoise = prefs .get_int ("denoise" )
535550 cam .set_denoise (denoise )
536551 except :
537552 pass # Not supported on OV2640?
538-
553+
539554 # Advanced corrections
540- colorbar = prefs .get_bool ("colorbar" , False )
555+ colorbar = prefs .get_bool ("colorbar" )
541556 cam .set_colorbar (colorbar )
542-
543- dcw = prefs .get_bool ("dcw" , True )
557+
558+ dcw = prefs .get_bool ("dcw" )
544559 cam .set_dcw (dcw )
545-
546- bpc = prefs .get_bool ("bpc" , False )
560+
561+ bpc = prefs .get_bool ("bpc" )
547562 cam .set_bpc (bpc )
548-
549- wpc = prefs .get_bool ("wpc" , True )
563+
564+ wpc = prefs .get_bool ("wpc" )
550565 cam .set_wpc (wpc )
551-
552- raw_gma = prefs .get_bool ("raw_gma" , False if self .scanqr_mode else True )
566+
567+ # Mode-specific default comes from constructor
568+ raw_gma = prefs .get_bool ("raw_gma" )
553569 print (f"applying raw_gma: { raw_gma } " )
554570 cam .set_raw_gma (raw_gma )
555-
556- lenc = prefs .get_bool ("lenc" , True )
571+
572+ lenc = prefs .get_bool ("lenc" )
557573 cam .set_lenc (lenc )
558574
559575 # JPEG quality (only relevant for JPEG format)
0 commit comments