Ë
    ¾�jÀ  ã                   ób   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	Z
d„ Z G d„ d«      Zy)é    N)Úcreate_connectionc              #   ó²   K  — t        | «      }	 	 |j                  «       }t        |t        «      rt	        d|«       n|–— Œ2# |j                  «        w xY w­w)Nz<-)r   ÚrecvÚ
isinstanceÚstrÚprintÚclose)ÚuriÚwsÚmsgs      úZ/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/uiautomator2/screenrecord.pyÚiter_image_from_minicapr      sM   è ø€ Ü	˜3Ó	€BðØØ—'‘'“)ˆCÜ˜#œsÔ#Ü�d˜CÕ à’	ð øð 	�‰�
üs   ‚A�3A ÁAÁAc                   ón   — e Zd Zdej                  fd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zdd
edefd„Zd„ Zy)ÚScreenrecordÚdc                 ó    — || _         d| _        t        j                  «       | _        t        j                  «       | _        d | _        d| _        y )NFé   )Ú_dÚ_runningÚ	threadingÚEventÚ_stop_eventÚ_done_eventÚ	_filenameÚ_fps)Úselfr   s     r   Ú__init__zScreenrecord.__init__   s<   € ØˆŒØˆŒÜ$Ÿ?™?Ó,ˆÔÜ$Ÿ?™?Ó,ˆÔØˆŒØˆ�	ó    c                 ó*   —  | j                   |i |¤Ž | S ©N)Ú_start)r   ÚargsÚkwargss      r   Ú__call__zScreenrecord.__call__&   s   € Øˆ�‰�TÐ$˜VÒ$Øˆr   c              #   ó†  K  — | j                   j                  d«      }t        j                  dd|«      }t	        |«      }	 | j
                  j                  «       s@|j                  «       }t        |t        «      rn|–— | j
                  j                  «       sŒ@|j                  «        y # |j                  «        w xY w­w)Nz/minicapz^httpr   )r   Úpath2urlÚreÚsubr   r   Úis_setr   r   r   r	   )r   Úhttp_urlÚws_urlr   r   s        r   Ú_iter_minicapzScreenrecord._iter_minicap*   s’   è ø€ Ø—7‘7×#Ñ# JÓ/ˆÜ—‘˜  xÓ0ˆÜ˜vÓ&ˆð		Ø×&Ñ&×-Ñ-Ô/Ø—g‘g“i�Ü˜c¤3Ô'àà’Ið ×&Ñ&×-Ñ-Õ/ð �H‰H�JøˆB�H‰H�Jüs   ‚>CÁAB, ÂCÂ,B>Â>Cc                 óZ  — |\  }}|j                   dd \  }}t        j                  ||dft        j                  ¬«      }||z  }||z  }	||	k  r|t	        ||z  «      }}nt	        |	|z  «      |}}||z
  dz  ||z
  dz  }}
t        j                  |||f¬«      ||||z   …|
|
|z   …dd…f<   |S )z5
        framesize: tuple of (height, width)
        Né   é   )Údtype)Údsize)ÚshapeÚnpÚzerosÚuint8ÚintÚcv2Úresize)r   ÚimÚ	framesizeÚvhÚvwÚhÚwÚframeÚshÚswÚleftÚtops               r   Ú
_resize_tozScreenrecord._resize_to9   sÆ   € ð ‰ˆˆBØ�x‰x˜˜ˆ|‰ˆˆ1Ü—‘˜"˜b !˜Ü!Ÿx™xô)ˆà�!‰VˆØ�!‰VˆØ�Š7Ø”s˜2 ™6“{ˆq‰Aä�r˜A‘v“; ˆqˆAØ˜!‘V ‘M B¨¡F¨q¡=ˆcˆÜ/2¯z©z¸"ÀQÈÀFÔ/Kˆˆc�#˜‘'ˆk˜4  q¡˜=ª!Ð+Ñ,Øˆr   c              #   ó¾   K  — t        |«      }|–— |j                  dd \  }}|D ]3  }|j                  |j                  k7  r| j                  |||f«      }|–— Œ5 y­w)z image to same size Nr.   )Únextr2   rD   )r   Ú
image_iterÚfirstimr;   r<   r9   s         r   Ú_pipe_resizezScreenrecord._pipe_resizeK   sa   è ø€ ä�zÓ"ˆØŠØ—‘˜r Ð"‰ˆˆBØò 	ˆBØ�x‰x˜7Ÿ=™=Ò(Ø—_‘_ R¨"¨b¨Ó2�Ø‹Hñ	ùs   ‚AAc              #   óH   K  — |D ]  }t        j                  |«      –— Œ y ­wr    )ÚimageioÚimread)r   Úraw_iterÚraws      r   Ú_pipe_convertzScreenrecord._pipe_convertU   s$   è ø€ àò 	&ˆCÜ—.‘. Ó%Ó%ñ	&ùs   ‚ "c              #   óÖ   K  — d}t        j                   «       }|D ]J  }t        j                   «       |z
  }t        || j                  z  «      }t        ||z
  «      D ]  }|–— Œ |}ŒL y ­w)Nr   )Útimer6   r   Úrange)r   rM   ÚfindexÚfstartrN   ÚelapsedÚfcountÚ_s           r   Ú_pipe_limitzScreenrecord._pipe_limitZ   sj   è ø€ ØˆÜ—‘“ˆØò 	ˆCÜ—i‘i“k FÑ*ˆGÜ˜ 4§9¡9Ñ,Ó-ˆFÜ˜6 F™?Ó+ò �Ø“	ðà‰Fñ	ùs   ‚A'A)c                 ón  — | j                   | j                  | j                  g}| j                  «       }|D ]
  } ||«      }Œ t	        j
                  | j                  | j                  ¬«      5 }|D ]  }|j                  |«       Œ 	 d d d «       | j                  j                  «        y # 1 sw Y   Œ$xY w)N)Úfps)rX   rO   rI   r,   rK   Ú
get_writerr   r   Úappend_datar   Úset)r   Ú	pipelinesÚ_iterÚpÚwrr9   s         r   Ú_runzScreenrecord._rund   s¦   € Ø×%Ñ% t×'9Ñ'9¸4×;LÑ;LÐMˆ	Ø×"Ñ"Ó$ˆØò 	ˆAÙ�e“H‰Eð	ô ×Ñ §¡°D·I±IÔ>ð 	#À"Øò #�Ø—‘˜rÕ"ñ#÷	#ð 	×Ñ×ÑÕ÷	#ð 	#ús   Á.B+Â+B4ÚfilenamerZ   c                 óð   — | j                   rt        d«      ‚t        |t        «      sJ ‚|| _        || _        d| _         t        j                  d| j                  ¬«      }d|_	        |j                  «        y )Nzscreenrecord is already startedTÚimage2video)ÚnameÚtarget)r   ÚRuntimeErrorr   r6   r   r   r   ÚThreadrb   ÚdaemonÚstart)r   rc   rZ   Úths       r   r!   zScreenrecord._starto   s`   € Ø�=Š=ÜÐ@ÓAÐAä˜#œsÔ#Ð#Ð#Ø!ˆŒØˆŒ	àˆŒÜ×Ñ =¸¿¹ÔCˆØˆŒ	Ø
�‰�
r   c                 ó  — | j                   st        d«      ‚| j                  j                  «        | j                  j                  d«      }| j                  j                  «        | j                  j                  «        d| _         |S )zr
        stop record and finish write video
        Returns:
            bool: whether video is recorded.
        zscreenrecord is not startedg      $@F)r   rh   r   r]   r   ÚwaitÚclear)r   Úrets     r   ÚstopzScreenrecord.stop|   sq   € ð �}Š}ÜÐ<Ó=Ð=Ø×Ñ×ÑÔØ×Ñ×#Ñ# DÓ)ˆð 	×Ñ×ÑÔ Ø×Ñ×ÑÔ ØˆŒØˆ
r   N)r   )Ú__name__Ú
__module__Ú__qualname__Úu2ÚDevicer   r$   r,   rD   rI   rO   rX   rb   r   r6   r!   rq   © r   r   r   r      sM   „ ð˜"Ÿ)™)ó òòòò$ò&ò
ò	ñ˜sð ¨ó ór   r   )r'   r   rQ   r7   rK   Únumpyr3   Ú	websocketr   Úuiautomator2ru   r   r   rw   r   r   ú<module>r{      s0   ðó 
Û Û ã 
Û Û Ý 'ã ò
÷nò nr   