
    gA                       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 G d de	      Z
 G d d	ej                        Z G d
 dej                        Z G d de	      Z G d dej                        Z G d dej                        Z G d de	      Z G d dej                        Ze G d d             Ze G d d             Ze G d d             Ze G d d             Ze G d d             ZdJd ZdJd!Z	 	 	 	 dKd"Z ed#      e G d$ d%                    Z ed&      e G d' d(                    Z ed)      e G d* d+                    Z ed,      e G d- d.                    Z ed/      e G d0 d1                    Z ed2      e G d3 d4                    Z  ed5      e G d6 d7                    Z! ed8      e G d9 d:                    Z" ed;      e G d< d=                    Z# ed>      e G d? d@                    Z$ edA      e G dB dC                    Z% edD      e G dE dF                    Z& edG      e G dH dI                    Z'y)L    )annotations   )event_classT_JSON_DICT)	dataclassNc                  <     e Zd ZdZddZedd       Z fdZ xZS )GraphObjectIdz`
    An unique ID for a graph object (AudioContext, AudioNode, AudioParam) in Web Audio API
    c                    | S N selfs    d/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v129/web_audio.pyto_jsonzGraphObjectId.to_json           c                     | |      S r   r   clsjsons     r   	from_jsonzGraphObjectId.from_json       4yr   c                >    dj                  t        | 	               S )NzGraphObjectId({})formatsuper__repr__r   	__class__s    r   r   zGraphObjectId.__repr__   s    "))%'*:*<==r   returnstr)r   r"   r!   r	   	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__r   s   @r   r	   r	      s+      > >r   r	   c                  .    e Zd ZdZdZdZd Zed        Zy)ContextTypez(
    Enum of BaseAudioContext types
    realtimeofflinec                    | j                   S r   valuer   s    r   r   zContextType.to_json#       zzr   c                     | |      S r   r   r   s     r   r   zContextType.from_json&   r   r   N)	r$   r%   r&   r'   REALTIMEOFFLINEr   r(   r   r   r   r   r,   r,      s,     HG  r   r,   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)ContextStatez1
    Enum of AudioContextState from the spec
    	suspendedrunningclosedc                    | j                   S r   r0   r   s    r   r   zContextState.to_json3   r2   r   c                     | |      S r   r   r   s     r   r   zContextState.from_json6   r   r   N)
r$   r%   r&   r'   	SUSPENDEDRUNNINGCLOSEDr   r(   r   r   r   r   r7   r7   +   s1     IGF  r   r7   c                  <     e Zd ZdZddZedd       Z fdZ xZS )NodeTypez!
    Enum of AudioNode types
    c                    | S r   r   r   s    r   r   zNodeType.to_json?   r   r   c                     | |      S r   r   r   s     r   r   zNodeType.from_jsonB   r   r   c                >    dj                  t        | 	               S )NzNodeType({})r   r   s    r   r   zNodeType.__repr__F   s    $$UW%5%788r   r    )r   r"   r!   rA   r#   r*   s   @r   rA   rA   ;   s+      9 9r   rA   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)ChannelCountModez;
    Enum of AudioNode::ChannelCountMode from the spec
    zclamped-maxexplicitmaxc                    | j                   S r   r0   r   s    r   r   zChannelCountMode.to_jsonR   r2   r   c                     | |      S r   r   r   s     r   r   zChannelCountMode.from_jsonU   r   r   N)
r$   r%   r&   r'   CLAMPED_MAXEXPLICITMAX_r   r(   r   r   r   r   rF   rF   J   s1      KHD  r   rF   c                  .    e Zd ZdZdZdZd Zed        Zy)ChannelInterpretationz@
    Enum of AudioNode::ChannelInterpretation from the spec
    discretespeakersc                    | j                   S r   r0   r   s    r   r   zChannelInterpretation.to_jsona   r2   r   c                     | |      S r   r   r   s     r   r   zChannelInterpretation.from_jsond   r   r   N)	r$   r%   r&   r'   DISCRETESPEAKERSr   r(   r   r   r   r   rO   rO   Z   s,     HH  r   rO   c                  <     e Zd ZdZddZedd       Z fdZ xZS )	ParamTypez"
    Enum of AudioParam types
    c                    | S r   r   r   s    r   r   zParamType.to_jsonm   r   r   c                     | |      S r   r   r   s     r   r   zParamType.from_jsonp   r   r   c                >    dj                  t        | 	               S )NzParamType({})r   r   s    r   r   zParamType.__repr__t   s    %%eg&6&899r   r    )r   r"   r!   rW   r#   r*   s   @r   rW   rW   i   s+      : :r   rW   c                  .    e Zd ZdZdZdZd Zed        Zy)AutomationRatez:
    Enum of AudioParam::AutomationRate from the spec
    za-ratezk-ratec                    | j                   S r   r0   r   s    r   r   zAutomationRate.to_json   r2   r   c                     | |      S r   r   r   s     r   r   zAutomationRate.from_json   r   r   N)	r$   r%   r&   r'   A_RATEK_RATEr   r(   r   r   r   r   r\   r\   x   s,     FF  r   r\   c                  P    e Zd ZU dZded<   ded<   ded<   ded<   d Zed        Zy	)
ContextRealtimeDataz:
    Fields in AudioContext that change in real-time.
    floatcurrent_timerender_capacitycallback_interval_meancallback_interval_variancec                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   |S )NcurrentTimerenderCapacitycallbackIntervalMeancallbackIntervalVariance)dictrd   re   rf   rg   r   r   s     r   r   zContextRealtimeData.to_json   sQ    v"//]!%!5!5'+'B'B#$+/+J+J'(r   c           	     z     | t        |d         t        |d         t        |d         t        |d               S )Nri   rj   rk   rl   )rd   re   rf   rg   )rc   r   s     r   r   zContextRealtimeData.from_json   sF    tM23!$'7"89#(.D)E#F',T2L-M'N	
 	
r   Nr$   r%   r&   r'   __annotations__r   r(   r   r   r   r   rb   rb      s@     
  "! !&% 
 
r   rb   c                  r    e Zd ZU dZded<   ded<   ded<   ded	<   ded
<   ded<   dZded<   d Zed        Zy)BaseAudioContextz.
    Protocol object for BaseAudioContext
    r	   
context_idr,   context_typer7   context_staterc   callback_buffer_sizemax_output_channel_countsample_rateNz$typing.Optional[ContextRealtimeData]realtime_datac                t   t               }| j                  j                         |d<   | j                  j                         |d<   | j                  j                         |d<   | j
                  |d<   | j                  |d<   | j                  |d<   | j                  | j                  j                         |d<   |S )N	contextIdcontextTypecontextStatecallbackBufferSizemaxOutputChannelCount
sampleRaterealtimeData)	rm   rt   r   ru   rv   rw   rx   ry   rz   rn   s     r   r   zBaseAudioContext.to_json   s    v OO335["//779]#1199;^%)%>%>!"(,(E(E$%!--\)#'#5#5#=#=#?D r   c                .    | t         j                  |d         t        j                  |d         t        j                  |d         t	        |d         t	        |d         t	        |d         d|v rt
        j                  |d               S d       S )	Nr|   r}   r~   r   r   r   r   )rt   ru   rv   rw   rx   ry   rz   )r	   r   r,   r7   rc   rb   r   s     r   r   zBaseAudioContext.from_json   s    $..tK/@A$..tM/BC&00n1EF!&t,@'A!B%*40G+H%Id<01Q_cgQg-77^8LM
 	
 nr
 	
r   )	r$   r%   r&   r'   rq   rz   r   r(   r   r   r   r   rs   rs      sW        $# :>M7>
 	
 	
r   rs   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)AudioListenerz+
    Protocol object for AudioListener
    r	   listener_idrt   c                    t               }| j                  j                         |d<   | j                  j                         |d<   |S )N
listenerIdr|   )rm   r   r   rt   rn   s     r   r   zAudioListener.to_json   s>    v!--557\ OO335[r   c                n     | t         j                  |d         t         j                  |d               S )Nr   r|   )r   rt   r	   r   r   s     r   r   zAudioListener.from_json   s5    %//\0BC$..tK/@A
 	
r   Nrp   r   r   r   r   r      s.      
 
r   r   c                  x    e Zd ZU dZded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   d Zed        Zy)	AudioNodez'
    Protocol object for AudioNode
    r	   node_idrt   rA   	node_typerc   number_of_inputsnumber_of_outputschannel_countrF   channel_count_moderO   channel_interpretationc                   t               }| j                  j                         |d<   | j                  j                         |d<   | j                  j                         |d<   | j
                  |d<   | j                  |d<   | j                  |d<   | j                  j                         |d<   | j                  j                         |d<   |S )	NnodeIdr|   nodeTypenumberOfInputsnumberOfOutputschannelCountchannelCountModechannelInterpretation)
rm   r   r   rt   r   r   r   r   r   r   rn   s     r   r   zAudioNode.to_json  s    v--/X OO335[>>113Z!%!6!6"&"8"8#11^#'#:#:#B#B#D (,(C(C(K(K(M$%r   c                F    | t         j                  |d         t         j                  |d         t        j                  |d         t        |d         t        |d         t        |d         t        j                  |d         t
        j                  |d         	      S )
Nr   r|   r   r   r   r   r   r   )r   rt   r   r   r   r   r   r   )r	   r   rA   rc   rF   rO   r   s     r   r   zAudioNode.from_json  s    !++DN;$..tK/@A((j)9:"4(8#9:#D):$;<^ 45/99$?Q:RS#8#B#B4H_C`#a	
 		
r   Nrp   r   r   r   r   r      sR     ((11
 

 

r   r   c                  x    e Zd ZU dZded<   ded<   ded<   ded<   ded	<   d
ed<   d
ed<   d
ed<   d Zed        Zy)
AudioParamz(
    Protocol object for AudioParam
    r	   param_idr   rt   rW   
param_typer\   raterc   default_value	min_value	max_valuec                   t               }| j                  j                         |d<   | j                  j                         |d<   | j                  j                         |d<   | j
                  j                         |d<   | j                  j                         |d<   | j                  |d<   | j                  |d<   | j                  |d<   |S )	NparamIdr   r|   	paramTyper   defaultValueminValuemaxValue)
rm   r   r   r   rt   r   r   r   r   r   rn   s     r   r   zAudioParam.to_json6  s    v--//1Y--/X OO335[ OO335[yy((*V#11^>>Z>>Zr   c                F    | t         j                  |d         t         j                  |d         t         j                  |d         t        j                  |d         t        j                  |d         t	        |d         t	        |d         t	        |d         	      S )
Nr   r   r|   r   r   r   r   r   )r   r   rt   r   r   r   r   r   )r	   r   rW   r\   rc   r   s     r   r   zAudioParam.from_jsonB  s    ",,T)_=!++DN;$..tK/@A **4+<=))$v,7^ 45D,-D,-	
 		
r   Nrp   r   r   r   r   r   !  sR     

 

 

r   r   c               #     K   ddi} | }yw)zQ
    Enables the WebAudio domain and starts sending context lifetime events.
    methodzWebAudio.enableNr   cmd_dictr   s     r   enabler   P  s     
 	#H >D   
c               #     K   ddi} | }yw)z'
    Disables the WebAudio domain.
    r   zWebAudio.disableNr   r   s     r   disabler   Z  s     
 	$H >Dr   c              #     K   t               }| j                         |d<   d|d}|}t        j                  |d         S w)zf
    Fetch the realtime data from the registered contexts.

    :param context_id:
    :returns: 
    r|   zWebAudio.getRealtimeData)r   paramsr   )rm   r   rb   r   )rt   r   r   r   s       r   get_realtime_datar   d  sN      &F$,,.F;,H >D((n)=>>s   ?AzWebAudio.contextCreatedc                  .    e Zd ZU dZded<   edd       Zy)ContextCreatedz@
    Notifies that a new BaseAudioContext has been created.
    rs   contextc                @     | t         j                  |d               S Nr   )r   rs   r   r   s     r   r   zContextCreated.from_json  !    $..tI?
 	
r   N)r   r   r!   r   r$   r%   r&   r'   rq   r(   r   r   r   r   r   r   w  !     
 
r   r   zWebAudio.contextWillBeDestroyedc                  .    e Zd ZU dZded<   edd       Zy)ContextWillBeDestroyedzG
    Notifies that an existing BaseAudioContext will be destroyed.
    r	   rt   c                @     | t         j                  |d               S )Nr|   )rt   r   r   s     r   r   z ContextWillBeDestroyed.from_json  s"    $..tK/@A
 	
r   N)r   r   r!   r   r   r   r   r   r   r     s!     
 
r   r   zWebAudio.contextChangedc                  .    e Zd ZU dZded<   edd       Zy)ContextChangedzc
    Notifies that existing BaseAudioContext has changed some properties (id stays the same)..
    rs   r   c                @     | t         j                  |d               S r   r   r   s     r   r   zContextChanged.from_json  r   r   N)r   r   r!   r   r   r   r   r   r   r     r   r   r   zWebAudio.audioListenerCreatedc                  .    e Zd ZU dZded<   edd       Zy)AudioListenerCreatedzJ
    Notifies that the construction of an AudioListener has finished.
    r   listenerc                @     | t         j                  |d               S )Nr   )r   )r   r   r   s     r   r   zAudioListenerCreated.from_json  s"    ",,T*-=>
 	
r   N)r   r   r!   r   r   r   r   r   r   r     s!     
 
r   r   z%WebAudio.audioListenerWillBeDestroyedc                  8    e Zd ZU dZded<   ded<   edd       Zy)AudioListenerWillBeDestroyedz=
    Notifies that a new AudioListener has been created.
    r	   rt   r   c                n     | t         j                  |d         t         j                  |d               S )Nr|   r   )rt   r   r   r   s     r   r   z&AudioListenerWillBeDestroyed.from_json  s5    $..tK/@A%//\0BC
 	
r   N)r   r   r!   r   r   r   r   r   r   r     s'     
 
r   r   zWebAudio.audioNodeCreatedc                  .    e Zd ZU dZded<   edd       Zy)AudioNodeCreatedz9
    Notifies that a new AudioNode has been created.
    r   nodec                @     | t         j                  |d               S )Nr   )r   )r   r   r   s     r   r   zAudioNodeCreated.from_json  s!    $$T&\2
 	
r   N)r   r   r!   r   r   r   r   r   r   r     s      O
 
r   r   z!WebAudio.audioNodeWillBeDestroyedc                  8    e Zd ZU dZded<   ded<   edd       Zy)AudioNodeWillBeDestroyedzA
    Notifies that an existing AudioNode has been destroyed.
    r	   rt   r   c                n     | t         j                  |d         t         j                  |d               S )Nr|   r   )rt   r   r   r   s     r   r   z"AudioNodeWillBeDestroyed.from_json  s4    $..tK/@A!++DN;
 	
r   N)r   r   r!   r   r   r   r   r   r   r     s'     
 
r   r   zWebAudio.audioParamCreatedc                  .    e Zd ZU dZded<   edd       Zy)AudioParamCreatedz:
    Notifies that a new AudioParam has been created.
    r   paramc                @     | t         j                  |d               S )Nr   )r   )r   r   r   s     r   r   zAudioParamCreated.from_json  s!    &&tG}5
 	
r   N)r   r   r!   r   r   r   r   r   r   r     s!     
 
r   r   z"WebAudio.audioParamWillBeDestroyedc                  B    e Zd ZU dZded<   ded<   ded<   edd       Zy)	AudioParamWillBeDestroyedzB
    Notifies that an existing AudioParam has been destroyed.
    r	   rt   r   r   c                     | t         j                  |d         t         j                  |d         t         j                  |d               S )Nr|   r   r   )rt   r   r   r   r   s     r   r   z#AudioParamWillBeDestroyed.from_json  sF    $..tK/@A!++DN;",,T)_=
 	
r   N)r   r   r!   r   r   r   r   r   r   r     s-     
 
r   r   zWebAudio.nodesConnectedc                  V    e Zd ZU dZded<   ded<   ded<   ded<   ded<   edd	       Zy
)NodesConnectedz5
    Notifies that two AudioNodes are connected.
    r	   rt   	source_iddestination_idtyping.Optional[float]source_output_indexdestination_input_indexc           
          | t         j                  |d         t         j                  |d         t         j                  |d         d|v rt        |d         nd d|v rt        |d               S d       S Nr|   sourceIddestinationIdsourceOutputIndexdestinationInputIndex)rt   r   r   r   r   r	   r   rc   r   s     r   r   zNodesConnected.from_json      $..tK/@A#--d:.>?(2243HIDW[_D_d+>&? @eiLcgkLkE$/F*G$H
 	

 rv
 	
r   N)r   r   r!   r   r   r   r   r   r   r     9     !!//33
 
r   r   zWebAudio.nodesDisconnectedc                  V    e Zd ZU dZded<   ded<   ded<   ded<   ded<   edd	       Zy
)NodesDisconnectedz
    Notifies that AudioNodes are disconnected. The destination can be null, and it means all the outgoing connections from the source are disconnected.
    r	   rt   r   r   r   r   r   c           
          | t         j                  |d         t         j                  |d         t         j                  |d         d|v rt        |d         nd d|v rt        |d               S d       S r   r   r   s     r   r   zNodesDisconnected.from_json)  r   r   N)r   r   r!   r   r   r   r   r   r   r     r   r   r   zWebAudio.nodeParamConnectedc                  L    e Zd ZU dZded<   ded<   ded<   ded<   ed
d       Zy	)NodeParamConnectedzC
    Notifies that an AudioNode is connected to an AudioParam.
    r	   rt   r   r   r   r   c           	          | t         j                  |d         t         j                  |d         t         j                  |d         d|v rt        |d               S d       S Nr|   r   r   r   )rt   r   r   r   r   r   s     r   r   zNodeParamConnected.from_json?  o    $..tK/@A#--d:.>?(2243HIDW[_D_d+>&? @	
 	
 fj	
 	
r   N)r   r   r!   r   r   r   r   r   r   r   4  3     !!//
 
r   r   zWebAudio.nodeParamDisconnectedc                  L    e Zd ZU dZded<   ded<   ded<   ded<   ed
d       Zy	)NodeParamDisconnectedzF
    Notifies that an AudioNode is disconnected to an AudioParam.
    r	   rt   r   r   r   r   c           	          | t         j                  |d         t         j                  |d         t         j                  |d         d|v rt        |d               S d       S r   r   r   s     r   r   zNodeParamDisconnected.from_jsonT  r   r   N)r   r   r!   r   r   r   r   r   r   r   I  r   r   r   )r!   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])rt   r	   r!   z?typing.Generator[T_JSON_DICT, T_JSON_DICT, ContextRealtimeData])(
__future__r   utilr   r   dataclassesr   enumtypingr"   r	   Enumr,   r7   rA   rF   rO   rW   r\   rb   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s%   # * !  >C >$)) 499  9s 9tyy  DII : :TYY  !
 !
 !
H +
 +
 +
\ 
 
 
, +
 +
 +
\ +
 +
 +
\?!?	F?& &'


 

  (

 ./


 

  0

 &'


 

  (

 ,-


 

  .

 45

 
  6
 ()


 

  *

 01

 
  2
 )*


 

  +

 12

 
  3
" &'

 
  (
* )*

 
  +
* *+

 
  ,
& -.

 
  /
r   