
    W'Fg                     j    S SK r SSKJr  SSKJr  SSKJrJrJr  S r	 " S S	\5      r
 " S
 S\5      rg)    N   )Device   )log)
XMLBuilderXMLChildPropertyXMLPropertyc                 l    Uc  U$ [        U5      nUS:  a  US:w  a  [        [        S5      U -  5      eU$ )Ni  z0%s must be above 5900, or -1 for auto allocation)int
ValueError_)namevals     4/usr/share/virt-manager/virtinst/devices/graphics.py_validate_portr      sH    
{

c(C
TzcRi 4 57;< = 	=J    c                   X    \ rS rSrSr\" S5      r\" S5      r\" S5      r\" S5      r	Sr
g)	_GraphicsListen   listen./@typez
./@addressz
./@network	./@socket N)__name__
__module____qualname____firstlineno__XML_NAMEr	   typeaddressnetworksocket__static_attributes__r   r   r   r   r      s/    Hy!D,'G,'G%Fr   r   c                   L   \ rS rSrSrSrSrSrSr/ SQr	\
" S5      rS	 rS
 r\
" S5      r\" \\5      rS rS r\
" SSS9r\" \\5      rS rS r\
" SSS9r\" \\5      r\
" SSS9r\
" SSS9r\
" S5      r\
" S5      rS rS r\
" S5      r\" \\5      r \
" S5      r!\
" S5      r"\
" S5      r#\
" S5      r$\
" S 5      r%\&" \'5      r(S! r)S" r*S# r+\
" S$5      r,\
" S%5      r-\
" S&SS9r.\
" S'5      r/\
" S(SS9r0\
" S)SS9r1\
" S*5      r2\
" S+5      r3S, r4S- r5S. r6S/ r7S0 r8S1 r9S2 r:S3 r;S4r<g5)6DeviceGraphics"   graphicssdlvncrdpspice)_typegl_port_tlsPortautoport	websocketkeymap_listenpasswddisplayxauthz	./@keymapc                 N    Xl         US:X  a  U R                  S:w  a  S U l        g g g )Nr*   keep)r-   	connectedselfr   s     r   	_set_typeDeviceGraphics._set_type0   s)    
 %<DNNf4!DN 5<r   c                     U R                   $ N)r-   r<   s    r   	_get_typeDeviceGraphics._get_type6       zzr   r   c                 R    [        SU5      nU R                  5       U l        Xl        g )NPort)r   _get_default_autoportr1   r/   r;   s     r   	_set_portDeviceGraphics._set_port;   s#    VS)224
r   c                     U R                   $ r@   )r/   rA   s    r   	_get_portDeviceGraphics._get_port?   rD   r   z./@portT)is_intc                 R    [        SU5      nU R                  5       U l        Xl        g )NzTLS Port)r   rG   r1   r0   r;   s     r   _set_tlsportDeviceGraphics._set_tlsportD   s#    Z-224r   c                     U R                   $ r@   )r0   rA   s    r   _get_tlsportDeviceGraphics._get_tlsportH   s    }}r   z
./@tlsPortz./@autoport)is_yesnoz./@websocketz./@xauthz
./@displayc                     US:X  a  U R                  5         g US:X  a2  U R                  5         U R                  R                  5       nSUl        g U R                  5         Xl        g )Nnoner#   )_set_listen_none_remove_all_listenslistensadd_newr    r4   )r<   r   objs      r   _set_listenDeviceGraphics._set_listenT   sR    &=!!#H_$$&,,&&(CCH$$&Lr   c                     U R                   $ r@   )r4   rA   s    r   _get_listenDeviceGraphics._get_listen^   s    ||r   z	./@listenz	./@passwdz./@passwdValidTor   z./@connectedz./@defaultModec                 L    U R                    H  nU R                  U5        M     g r@   )rY   remove_childr<   r   s     r   rX   "DeviceGraphics._remove_all_listensj   s    llFf% #r   c                 h    [        U R                  5      S:  a  U R                  S   R                  $ g )Nr   )lenrY   r    rA   s    r   get_first_listen_type$DeviceGraphics.get_first_listen_typen   s*    t||q <<?'''r   c                     U R                  5         S U l        S U l        S U l        S U l        S U l        U R                  R                  R                  5       (       a"  U R                  R                  5       nSUl        g g )NrV   )rX   r   porttlsPortr1   r#   connsupportconn_graphics_listen_nonerY   rZ   r    )r<   r[   s     r   rW   DeviceGraphics._set_listen_nones   sh      "	996688,,&&(CCH 9r   z./image/@compressionz./streaming/@modez./clipboard/@copypastez./mouse/@modez./filetransfer/@enablez./gl/@enablez./gl/@rendernodez./zlib/@compressionc                 H    U R                  5       nU(       + =(       d    US;   $ )N)r!   r"   )rg   rc   s     r   _listen_need_port DeviceGraphics._listen_need_port   s#    ++-z=V'===r   c                 P    U R                   S;   a  U R                  5       (       a  gg )N)r*   r,   r   r    rq   rA   s    r   _get_default_port DeviceGraphics._get_default_port   s#    99((T-C-C-E-Er   c                 P    U R                   S:X  a  U R                  5       (       a  gg )Nr,   r   rt   rA   s    r   _get_default_tlsport#DeviceGraphics._get_default_tlsport   s"    99D$:$:$<$<r   c                 h    U R                   S:w  a  g U R                  S:X  a  U R                  S:X  a  gg )Nr,   r   T)r    rj   rk   rA   s    r   rG   $DeviceGraphics._get_default_autoport   s/     99IIO 2r   c                 <   UR                   n[        R                  " SU5        U R                  R	                  5       (       a  [        R                  " S5        SnUS:X  a;  UR                  5       R                  5       (       d  [        R                  " S5        SnU$ )Nz*App is configured with default_graphics=%sz2Not defaulting to spice for xen driver. Using vnc.r*   r,   z5spice requested but HV doesn't support it. Using vnc.)default_graphics_typer   debugrl   is_xenlookup_domcapssupports_graphics_spice)r<   guestgtypes      r   _default_typeDeviceGraphics._default_type   sz    ++		>F99 IIJKEW$$&>>@@IIMNEr   c                     U R                   S:w  a  g U R                  R                  5       (       d  [        R                  " S5        gg )Nr,   z4Local connection, disabling spice image compression.off)r    rl   	is_remoter   r~   )r<   _guests     r   _default_image_compression)DeviceGraphics._default_image_compression   s;    99yy""$$II   r   c                     U R                   (       dX  U R                  R                  5        H9  nUR                  5       (       d  M  UR	                  5       R
                  U l           g    g g r@   )
rendernoderl   fetch_all_nodedevsis_drm_renderget_devnodepath)r<   r   nodedevs      r   _default_spice_gl DeviceGraphics._default_spice_gl   sR     99779,,..")"5"5"7"<"<	 : r   c                    U R                   (       d  U R                  U5      U l         U R                   S:X  aj  U R                  (       d$  [        R                  R                  S5      U l        U R                  (       d$  [        R                  R                  S5      U l        U R                  c  U R                  5       U l	        U R                  c  U R                  5       U l        U R                  c  U R                  5       U l        U R                  (       d  U R!                  U5      U l        U R                   S:X  a$  U R"                  (       a  U R%                  U5        g g g )Nr)   z~/.XauthorityDISPLAYr,   )r    r   r7   osr   
expanduserr6   environgetrj   ru   rk   rx   r1   rG   image_compressionr   r.   r   )r<   r   s     r   set_defaultsDeviceGraphics.set_defaults   s    yy**51DI99::WW//@
<<!zz~~i899..0DI<<446DL==  668DM%%%)%D%DU%KD"99DGG""5) %,r   )r4   r/   r0   r-   r1   r:   r6   r   r   rj   r   r#   rk   r    r7   N)=r   r   r   r   r   TYPE_SDLTYPE_VNCTYPE_RDP
TYPE_SPICE_XML_PROP_ORDERr	   r3   r=   rB   r-   propertyr    rH   rK   r/   rj   rO   rR   r0   rk   r1   r2   r7   r6   r\   r_   r4   r   r5   passwdValidTor#   r:   defaultModer   r   rY   rX   rg   rW   r   streaming_modeclipboard_copypaste
mouse_modefiletransfer_enabler.   r   zlib_compressionrq   ru   rx   rG   r   r   r   r   r$   r   r   r   r&   r&   "   s   HHHHJ5O %F"	"EIy)D	$/EIy)D<5H|\2G=48HN48I
#E,'G	+&Gk;/F%F 23M%FN+I./K/G&

 $$:; !45N%&>N_-J%&>N	^d	3B/0J"#89>

 *r   r&   )r   devicer   loggerr   
xmlbuilderr   r   r	   r   r   r&   r   r   r   <module>r      s5    
   B B&j &z*V z*r   