def button_callback_3(): global camera global overlay global config print("Button 3: Zoom") zoom(camera, config) overlay = overlay_handler.add_overlay(camera, overlay, config) overlay_handler.display_text(camera, '', config)
def adjust_delay(camera, config): idex = config["delay_times"].index(config["delay_time"]) + 1 if idex >= len(config["delay_times"]): idex = 0 config["delay_time"] = config["delay_times"][idex] overlay_handler.display_text(camera, '', config) print(f'delay_time: {config["delay_time"]}')
def select_menu_item(camera, config): idex = config["current_menu_items"].index(config["menu_item"]) + 1 if idex < len(config["current_menu_items"]): config["menu_item"] = config["current_menu_items"][idex] else: config["menu_item"] = config["default_menu_item"] overlay_handler.display_text(camera, '', config) print(f'menu_item: {config["menu_item"]}')
def adjust_awb_mode(camera, config): idex = config["available_awb_mode"].index(config["awb_mode"]) + 1 if idex < len(config["available_awb_mode"]): config["awb_mode"] = config["available_awb_mode"][idex] else: config["awb_mode"] = config["default_awb_mode"] camera.awb_mode = config["awb_mode"] overlay_handler.display_text(camera, '', config) print(f'awb_mode: {config["awb_mode"]}')
def adjust_iso(camera, config): idex = config["available_isos"].index(config["iso"]) + 1 if idex < len(config["available_isos"]): camera.iso = config["available_isos"][idex] else: camera.iso = config["default_iso"] overlay_handler.display_text(camera, '', config) config["iso"] = camera.iso print(f'iso: {config["iso"]}')
def adjust_exposure_mode(camera, config): idex = config["available_exposure_modes"].index( config["exposure_mode"]) + 1 if idex < len(config["available_exposure_modes"]): camera.exposure_mode = config["available_exposure_modes"][idex] else: camera.exposure_mode = config["default_exposure_mode"] overlay_handler.display_text(camera, '', config) config["exposure_mode"] = camera.exposure_mode print(f'exposure_mode: {config["exposure_mode"]}')
def adjust_shutter_speed(camera, config): idex = config["available_shutter_speeds"].index( config["shutter_speed"]) + 1 if idex < len(config["available_shutter_speeds"]): config["shutter_speed"] = config["available_shutter_speeds"][idex] else: config["shutter_speed"] = config["default_shutter_speed"] # camera.framerate = compute_framerate(camera, config) # Done when taking the shot camera.shutter_speed = config["shutter_speed"] config["take_long_shutter_speed"] = False overlay_handler.display_text(camera, '', config) print( f'shutter_speed: {overlay_handler.compute_shutter_speed_from_us(config["shutter_speed"])}, set speed: {camera._get_shutter_speed()}, fps: {camera.framerate}' )
def auto_mode(camera, overlay, config, skip_dpc=False): print('auto mode!') camera.iso = config["default_iso"] camera.exposure_mode = config["default_exposure_mode"] camera.shutter_speed = config["default_shutter_speed"] camera.awb_mode = config["default_awb_mode"] camera.framerate = compute_framerate(camera, config) if skip_dpc == False and config['dpc'] != config['default_dpc']: config['dpc'] = config['default_dpc'] set_dpc(camera, overlay, config) if config["fom"] != config["default_fom"]: adjust_fom(camera, config) set_fom(camera, config) overlay_handler.display_text(camera, '', config)
def start_camera(original_config, skip_auto=False, skip_button_listen=False): global camera global overlay global config # Force variables to be blanked camera = None overlay = None config = original_config # Config Variables screen_fps = config["screen_fps"] capture_timeout = config["capture_timeout"] screen_w = config["screen_w"] screen_h = config["screen_h"] width = config["width"] height = config["height"] # Init # https://github.com/waveform80/picamera/issues/329 PiCamera.CAPTURE_TIMEOUT = capture_timeout print(f'Camera Timeout: {PiCamera.CAPTURE_TIMEOUT}') camera = PiCamera( ) # framerate=fps is bugged - rather set camera.framerate if skip_auto == False: auto_mode(camera, overlay, config) overlay = None camera.resolution = (screen_w, screen_h) camera.framerate = screen_fps # fps overlay = overlay_handler.add_overlay(camera, overlay, config) overlay_handler.display_text(camera, '', config) print(f'screen: ({screen_w}, {screen_h}), res: ({width}, {height})') if skip_button_listen == False: start_button_listen(config) start_preview(camera, config) return [camera, overlay]
def adjust_hdr2(camera, config): config["hdr2"] = not config["hdr2"] overlay_handler.display_text(camera, '', config)
def adjust_fom(camera, config): config["fom"] = not config["fom"] overlay_handler.display_text(camera, '', config)
def set_raw_convert(camera, config): config["raw_convert"] = not config["raw_convert"] overlay_handler.display_text(camera, '', config) print(f'raw_convert: {config["raw_convert"]}')
def adjust_encoding(camera, config): config["encoding"] = not config["encoding"] overlay_handler.display_text(camera, '', config) print(f'encoding: {config["encoding"]}')
def set_video(camera, config): config["video"] = not config["video"] overlay_handler.display_text(camera, '', config) print(f'video: {config["video"]}')
def set_hdr(camera, config): config["hdr"] = not config["hdr"] overlay_handler.display_text(camera, '', config) print(f'hdr: {config["hdr"]}')