@@ -18,8 +18,8 @@ class CameraApp(Activity):
1818 CONFIGFILE = "config.json"
1919 SCANQR_CONFIG = "config_scanqr_mode.json"
2020
21- button_width = 60
22- button_height = 45
21+ button_width = 75
22+ button_height = 50
2323
2424 status_label_text = "No camera found."
2525 status_label_text_searching = "Searching QR codes...\n \n Hold still and try varying scan distance (10-25cm) and make the QR code big (4-12cm). Ensure proper lighting."
@@ -68,26 +68,18 @@ def onCreate(self):
6868 # Settings button
6969 settings_button = lv .button (self .main_screen )
7070 settings_button .set_size (self .button_width , self .button_height )
71- settings_button .align ( lv .ALIGN .TOP_RIGHT , 0 , self . button_height + 5 )
71+ settings_button .align_to ( close_button , lv .ALIGN .OUT_BOTTOM_MID , 0 , 10 )
7272 settings_label = lv .label (settings_button )
7373 settings_label .set_text (lv .SYMBOL .SETTINGS )
7474 settings_label .center ()
7575 settings_button .add_event_cb (lambda e : self .open_settings (),lv .EVENT .CLICKED ,None )
76- self .snap_button = lv .button (self .main_screen )
77- self .snap_button .set_size (self .button_width , self .button_height )
78- self .snap_button .align (lv .ALIGN .RIGHT_MID , 0 , 0 )
79- self .snap_button .add_flag (lv .obj .FLAG .HIDDEN )
80- self .snap_button .add_event_cb (self .snap_button_click ,lv .EVENT .CLICKED ,None )
81- snap_label = lv .label (self .snap_button )
82- snap_label .set_text (lv .SYMBOL .OK )
83- snap_label .center ()
84- self .zoom_button = lv .button (self .main_screen )
85- self .zoom_button .set_size (self .button_width , self .button_height )
86- self .zoom_button .align (lv .ALIGN .RIGHT_MID , 0 , self .button_height + 5 )
87- self .zoom_button .add_event_cb (self .zoom_button_click ,lv .EVENT .CLICKED ,None )
88- zoom_label = lv .label (self .zoom_button )
89- zoom_label .set_text ("Z" )
90- zoom_label .center ()
76+ #self.zoom_button = lv.button(self.main_screen)
77+ #self.zoom_button.set_size(self.button_width, self.button_height)
78+ #self.zoom_button.align(lv.ALIGN.RIGHT_MID, 0, self.button_height + 5)
79+ #self.zoom_button.add_event_cb(self.zoom_button_click,lv.EVENT.CLICKED,None)
80+ #zoom_label = lv.label(self.zoom_button)
81+ #zoom_label.set_text("Z")
82+ #zoom_label.center()
9183 self .qr_button = lv .button (self .main_screen )
9284 self .qr_button .set_size (self .button_width , self .button_height )
9385 self .qr_button .add_flag (lv .obj .FLAG .HIDDEN )
@@ -96,6 +88,17 @@ def onCreate(self):
9688 self .qr_label = lv .label (self .qr_button )
9789 self .qr_label .set_text (lv .SYMBOL .EYE_OPEN )
9890 self .qr_label .center ()
91+
92+ self .snap_button = lv .button (self .main_screen )
93+ self .snap_button .set_size (self .button_width , self .button_height )
94+ self .snap_button .align_to (self .qr_button , lv .ALIGN .OUT_TOP_MID , 0 , - 10 )
95+ self .snap_button .add_flag (lv .obj .FLAG .HIDDEN )
96+ self .snap_button .add_event_cb (self .snap_button_click ,lv .EVENT .CLICKED ,None )
97+ snap_label = lv .label (self .snap_button )
98+ snap_label .set_text (lv .SYMBOL .OK )
99+ snap_label .center ()
100+
101+
99102 self .status_label_cont = lv .obj (self .main_screen )
100103 width = mpos .ui .pct_of_display_width (70 )
101104 height = mpos .ui .pct_of_display_width (60 )
@@ -318,36 +321,15 @@ def qr_button_click(self, e):
318321 else :
319322 self .stop_qr_decoding ()
320323
321- def zoom_button_click (self , e ):
322- print ("zooming..." )
323- if self .use_webcam :
324- print ("zoom_button_click is not supported for webcam" )
325- return
326- if self .cam :
327- startX = self .prefs .get_int ("startX" , CameraSettingsActivity .startX_default )
328- startY = self .prefs .get_int ("startX" , CameraSettingsActivity .startY_default )
329- endX = self .prefs .get_int ("startX" , CameraSettingsActivity .endX_default )
330- endY = self .prefs .get_int ("startX" , CameraSettingsActivity .endY_default )
331- offsetX = self .prefs .get_int ("startX" , CameraSettingsActivity .offsetX_default )
332- offsetY = self .prefs .get_int ("startX" , CameraSettingsActivity .offsetY_default )
333- totalX = self .prefs .get_int ("startX" , CameraSettingsActivity .totalX_default )
334- totalY = self .prefs .get_int ("startX" , CameraSettingsActivity .totalY_default )
335- outputX = self .prefs .get_int ("startX" , CameraSettingsActivity .outputX_default )
336- outputY = self .prefs .get_int ("startX" , CameraSettingsActivity .outputY_default )
337- scale = self .prefs .get_bool ("scale" , CameraSettingsActivity .scale_default )
338- binning = self .prefs .get_bool ("binning" , CameraSettingsActivity .binning_default )
339- result = self .cam .set_res_raw (startX ,startY ,endX ,endY ,offsetX ,offsetY ,totalX ,totalY ,outputX ,outputY ,scale ,binning )
340- print (f"self.cam.set_res_raw returned { result } " )
341-
342324 def open_settings (self ):
343325 intent = Intent (activity_class = CameraSettingsActivity , extras = {"prefs" : self .prefs if not self .scanqr_mode else self .scanqr_prefs , "use_webcam" : self .use_webcam , "scanqr_mode" : self .scanqr_mode })
344326 self .startActivity (intent )
345327
346328 def try_capture (self , event ):
347329 try :
348- if self .use_webcam :
330+ if self .use_webcam and self . cam :
349331 self .current_cam_buffer = webcam .capture_frame (self .cam , "rgb565" if self .colormode else "grayscale" )
350- elif self .cam .frame_available ():
332+ elif self .cam and self . cam .frame_available ():
351333 self .current_cam_buffer = self .cam .capture ()
352334 except Exception as e :
353335 print (f"Camera capture exception: { e } " )
@@ -358,7 +340,7 @@ def try_capture(self, event):
358340 self .image .set_src (self .image_dsc )
359341 if self .scanqr_mode :
360342 self .qrdecode_one ()
361- if not self .use_webcam :
343+ if not self .use_webcam and self . cam :
362344 self .cam .free_buffer () # After QR decoding, free the old buffer, otherwise the camera doesn't provide a new one
363345
364346 def init_internal_cam (self , width , height ):
@@ -572,3 +554,28 @@ def apply_camera_settings(self, prefs, cam, use_webcam):
572554 except Exception as e :
573555 print (f"Error applying camera settings: { e } " )
574556
557+
558+
559+
560+ """
561+ def zoom_button_click_unused(self, e):
562+ print("zooming...")
563+ if self.use_webcam:
564+ print("zoom_button_click is not supported for webcam")
565+ return
566+ if self.cam:
567+ startX = self.prefs.get_int("startX", CameraSettingsActivity.startX_default)
568+ startY = self.prefs.get_int("startX", CameraSettingsActivity.startY_default)
569+ endX = self.prefs.get_int("startX", CameraSettingsActivity.endX_default)
570+ endY = self.prefs.get_int("startX", CameraSettingsActivity.endY_default)
571+ offsetX = self.prefs.get_int("startX", CameraSettingsActivity.offsetX_default)
572+ offsetY = self.prefs.get_int("startX", CameraSettingsActivity.offsetY_default)
573+ totalX = self.prefs.get_int("startX", CameraSettingsActivity.totalX_default)
574+ totalY = self.prefs.get_int("startX", CameraSettingsActivity.totalY_default)
575+ outputX = self.prefs.get_int("startX", CameraSettingsActivity.outputX_default)
576+ outputY = self.prefs.get_int("startX", CameraSettingsActivity.outputY_default)
577+ scale = self.prefs.get_bool("scale", CameraSettingsActivity.scale_default)
578+ binning = self.prefs.get_bool("binning", CameraSettingsActivity.binning_default)
579+ result = self.cam.set_res_raw(startX,startY,endX,endY,offsetX,offsetY,totalX,totalY,outputX,outputY,scale,binning)
580+ print(f"self.cam.set_res_raw returned {result}")
581+ """
0 commit comments