B
    ¿ìg^Œ  ã               @   s&   d Z ddlZddlZG dd„ dƒZdS )zSCamera commands.

Original author: Mark Zvilius, 20-July-2019
For: The Sexton Corp
é    Nc               @   sŠ   e Zd ZdZd!dd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ ZdS )"ÚCommandszˆProvide handlers for commands.

    Commands come from housing buttons and/or keyboard keypresses
    (during testing/development).
    Nc             C   s   || _ || _|| _dS )zŠConstructor.

        cameras -- CameraGroup instance
        display -- ParamGrid instance
        video -- VideoWindow instance
        N)ÚcamerasÚdisplayÚvideo)Úselfr   r   r   © r   ú*/home/pi/sexton-multicamera/e2/Commands.pyÚ__init__   s    zCommands.__init__c             C   s^   t  tj¡\}}|dkr d|fS | j |¡\}}| jdk	rZ| j |¡ |dkrZ| j |¡ dS )zIncrease white-balance setting.Néÿÿÿÿr   )	Ú	E2ConfigsÚ
setting_upÚ
E2ProtocolÚKEY_WBr   Ú	change_wbr   Ú	update_wbÚupdate_errmsg)r   Ú	new_valueÚerrmsgÚstatusr   r   r   Úwb_up#   s    
 zCommands.wb_upc             C   s^   t  tj¡\}}|dkr d|fS | j |¡\}}| jdk	rZ| j |¡ |dkrZ| j |¡ dS )zDecrease white-balance setting.Nr
   r   )	r   Ú
setting_dnr   r   r   r   r   r   r   )r   r   r   r   r   r   r   Úwb_dn/   s    
 zCommands.wb_dnc             C   s^   t  tj¡\}}|dkr d|fS | j |¡\}}| jdk	rZ| j |¡ |dkrZ| j |¡ dS )zIncrease iso setting.Nr
   r   )	r   r   r   ÚKEY_ISOr   Ú
change_isor   Ú
update_isor   )r   r   r   r   r   r   r   Úiso_up;   s    
 zCommands.iso_upc             C   s^   t  tj¡\}}|dkr d|fS | j |¡\}}| jdk	rZ| j |¡ |dkrZ| j |¡ dS )zDecrease iso setting.Nr
   r   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   Úiso_dnG   s    
 zCommands.iso_dnc             C   s^   t  tj¡\}}|dkr d|fS | j |¡\}}| jdk	rZ| j |¡ |dkrZ| j |¡ dS )zIncrease shutter setting.Nr
   r   )	r   r   r   ÚKEY_SHUTTERr   Úchange_shutterr   Úupdate_shutterr   )r   r   r   r   r   r   r   Ú
shutter_upS   s    
 zCommands.shutter_upc             C   s^   t  tj¡\}}|dkr d|fS | j |¡\}}| jdk	rZ| j |¡ |dkrZ| j |¡ dS )zDecrease shutter setting.Nr
   r   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   Ú
shutter_dn_   s    
 zCommands.shutter_dnc             C   s^   t  tj¡\}}|dkr d|fS | j |¡\}}| jdk	rZ| j |¡ |dkrZ| j |¡ dS )zToggle f-stop (iris) setting.Nr
   r   )	r   Úsetting_wrapr   ÚKEY_IRISr   Úchange_fstopr   Úupdate_fstopr   )r   r   r   r   r   r   r   Úfstop_togglek   s    
 zCommands.fstop_togglec             C   sp   t  tj¡\}}|d kr d|fS |  ¡  | j |¡\}}| jd k	rb| j |¡ |dkrb| j 	|¡ | j
 ¡  d S )Nr
   r   )r   r"   r   ÚKEY_ENCODERÚ
stop_videor   Úchange_encoderr   Úupdate_encoderr   r   Úrestart)r   r   r   r   r   r   r   Úencoder_toggle{   s    
 zCommands.encoder_togglec             C   s@   | j  ¡ \}}| jdk	r<| j | j j¡ |dkr<| j |¡ dS )zRecording start/stop.Nr   )r   Úcommand_record_toggler   Úupdate_recordingÚ	recordingr   )r   r   r   r   r   r   Úrecord_toggleŠ   s
    
 zCommands.record_togglec             C   s$   | j  ¡ }| jdk	r | j |¡ dS )z(Decrease camera number on video display.N)r   Zcommand_camera_downr   Úupdate_camera)r   Ú	camera_idr   r   r   Úcam_dn’   s    

zCommands.cam_dnc             C   s$   | j  ¡ }| jdk	r | j |¡ dS )z(Increase camera number on video display.N)r   Zcommand_camera_upr   r1   )r   r2   r   r   r   Úcam_up™   s    

zCommands.cam_upc             C   s8   | j  ¡  | j  ¡ }| ¡ \}}|dkr4| j |¡ d S )Nr   )r   ÚstopZ
get_cameraÚwait_for_stream_idler   r   )r   Úcamr   r   r   r   r   r(   ¤   s
    

 zCommands.stop_videoc             C   s   | j  ¡  d S )N)r   r+   )r   r   r   r   Ústart_video¯   s    zCommands.start_videoc             C   s>   | j  ¡ \}}| jdk	r:|dkr.| j |¡ n| j |¡ dS )z.Read camera temperature and update on display.Nr   )r   Úget_temperaturer   Zupdate_temperaturer   )r   r   Úresultr   r   r   Úupdate_camera_temperature²   s
    
z"Commands.update_camera_temperature)NNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r   r   r    r!   r&   r,   r0   r3   r4   r(   r8   r;   r   r   r   r   r   	   s    
r   )r?   r   r   r   r   r   r   r   Ú<module>   s   