
    aDg                       d dl mZ d dlmZmZ d dlmZ d dlZd dlZe G d d             Z		 d	 	 	 ddZ
ddZ	 	 	 	 dd	Z	 	 	 	 dd
Z	 	 	 	 ddZ ed      e G d d                    Z ed      e G d d                    Zy)    )annotations)event_classT_JSON_DICT)	dataclassNc                  J    e Zd ZU ded<   ded<   dZded<   d	dZed
d       Zy)Sinkstrnameid_Ntyping.Optional[str]sessionc                    t               }| j                  |d<   | j                  |d<   | j                  | j                  |d<   |S )Nr
   idr   )dictr
   r   r   )selfjsons     H/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/cdp/cast.pyto_jsonzSink.to_json   s?     FyyVXXT
<<#"llDO    c                v     | t        |d         t        |d         d|v rt        |d               S d       S )Nr
   r   r   )r
   r   r   r	   clsr   s     r   	from_jsonzSink.from_json!   sJ    T&\"DJ,5,=CY(
 	
 DH
 	
r   )returnr   )r   r   r   r   )__name__
__module____qualname____annotations__r   r   classmethodr    r   r   r   r      s2    
I	H %)G!( 
 
r   r   c              #  @   K   t               }| | |d<   d|d}|}yw)al  
    Starts observing for sinks that can be used for tab mirroring, and if set,
    sinks compatible with ``presentationUrl`` as well. When sinks are found, a
    ``sinksUpdated`` event is fired.
    Also starts observing for issue messages. When an issue is added or removed,
    an ``issueUpdated`` event is fired.

    :param presentation_url: *(Optional)*
    NpresentationUrlzCast.enablemethodparamsr   )presentation_urlr&   cmd_dictr   s       r   enabler*   *   s6      &F#$4 !H >Ds   c               #     K   ddi} | }yw)z/
    Stops observing for sinks and issues.
    r%   zCast.disableNr!   )r)   r   s     r   disabler,   @   s     
 	.H >Ds   
c              #  <   K   t               }| |d<   d|d}|}yw)z
    Sets a sink to be used when the web page requests the browser to choose a
    sink via Presentation API, Remote Playback API, or Cast SDK.

    :param sink_name:
    sinkNamezCast.setSinkToUser$   Nr'   	sink_namer&   r)   r   s       r   set_sink_to_user1   J   s/      &F"F:%H >D   c              #  <   K   t               }| |d<   d|d}|}yw)zF
    Starts mirroring the tab to the sink.

    :param sink_name:
    r.   zCast.startTabMirroringr$   Nr'   r/   s       r   start_tab_mirroringr4   \   s/      &F"F:*H >Dr2   c              #  <   K   t               }| |d<   d|d}|}yw)zK
    Stops the active Cast session on the sink.

    :param sink_name:
    r.   zCast.stopCastingr$   Nr'   r/   s       r   stop_castingr6   m   s/      &F"F:$H >Dr2   zCast.sinksUpdatedc                  .    e Zd ZU dZded<   edd       Zy)SinksUpdatedz
    This is fired whenever the list of available sinks changes. A sink is a
    device or a software surface that you can cast to.
    ztyping.List[Sink]sinksc                f     | |d   D cg c]  }t         j                  |       c}      S c c}w )Nr9   )r9   )r   r   )r   r   is      r   r   zSinksUpdated.from_json   s-    .27m<4>>!$<
 	
<s   .N)r   r   r   r8   r   r   r   __doc__r   r    r   r!   r   r   r8   r8   ~   s!     
 
r   r8   zCast.issueUpdatedc                  .    e Zd ZU dZded<   edd       Zy)IssueUpdatedz
    This is fired whenever the outstanding issue/error message changes.
    ``issueMessage`` is empty if there is no issue.
    r	   issue_messagec                ,     | t        |d               S )NissueMessage)r@   r   r   s     r   r   zIssueUpdated.from_json   s    d>23
 	
r   N)r   r   r   r?   r<   r!   r   r   r?   r?      s!     
 
r   r?   )N)r(   r   r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r   rC   )r0   r	   r   rC   )
__future__r   cdp.utilr   r   dataclassesr   enumtypingr   r*   r,   r1   r4   r6   r8   r?   r!   r   r   <module>rI      s    # - !   
 
 
6 26.	7,	7$	7"	7"  !

 
  "
  !

 
  "
r   