+
    iZ  c                   s    ^ RI Ht ^ RIt^ RIt^ RIt. ROt ! R R]4      t^tRt	Rt
Rt]! R	R
4      tR t ! R R4      t ! R R4      t ! R R4      tRR ltR# )    )
namedtupleNError	Wave_read
Wave_writec                   s    ] tR t^RtRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       /usr/lib64/python3.14/wave.pyr   r   R   s    r   i  s            8q_wave_paramsz7nchannels sampwidth framerate nframes comptype compnamec                 s    \        \        V 4      4      p\        ^ \        V 4      V4       F;  p\        V4       F)  pWV,           ,          W#V,           ^,
          V,
          &   K+  	  K=  	  \        V4      # r    )	bytearraylenZrangebytes)dataZwidthZswapped_dataiZjs   &&   r   	_byteswapr   `   s]    SY'L1c$i'uA.2q5kLUQ*+  ( r   c                   sV   a  ] tR t^jt o R
R ltR tR tRR ltR tRR lt	R t
RtV tR	# )_Chunkc                s@   R V n         W n        V'       d   RpMRpWn        VP                  ^4      V n        \        V P                  4      ^8  d   \        h \        P                  ! VR,           VP                  ^4      4      ^ ,          V n	        T'       d   T P                  ^,
          T n	        ^ T n         T P                  P                  4       T n        RT n        R#   \        P                   d	    \        Rhi ; i  \        \         3 d    R T n         R# i ; i)FZ>Z<ZLNT)closedalignfileread	chunknamer   EOFErrorstructunpack_from	chunksizeerror	size_readtelloffsetseekableAttributeErrorOSError)selfr   r   	bigendianZ
inclheaderZstrflags   &&&&& r   __init__Z_Chunk.__init__k   s    
GG	1t~~"N	%#//TYYq\J1MDN !^^a/DN	!))..*DK !DM || 	%$	% ( 	"!DM	"s   9C! 9D !C>DDc                    V P                   # N)r   r&      &r   getnameZ_Chunk.getname   s    ~~r   c                sv    V P                   '       g    V P                  4        R V n         R# R#   R T n         i ; i)TN)r   skipr+   r,   r   closeZ_Chunk.close   s0    {{{#		"	  #s   / 	8c                s   V P                   '       d   \        R 4      hV P                  '       g   \        R4      hV^8X  d   WP                  ,           pMV^8X  d   WP
                  ,           pV^ 8  g   WP
                  8  d   \        hV P                  P                  V P                  V,           ^ 4       Wn        R# )I/O operation on closed filezcannot seekN)
r   
ValueErrorr#   r%   r    r   ZRuntimeErrorr   seekr"   )r&   posZwhence   &&&r   r2   Z_Chunk.seek   s     ;;;;<<}}}-((Q;&Cq[&C7cNN*		t{{S(!,r   c                sT    V P                   '       d   \        R 4      hV P                  # )r0   )r   r1   r    r+   r,   r   r!   Z_Chunk.tell   s!    ;;;;<<~~r   c                s   V P                   '       d   \        R 4      hV P                  V P                  8  d   R# V^ 8  d   V P                  V P                  ,
          pWP                  V P                  ,
          8  d   V P                  V P                  ,
          pV P                  P                  V4      pV P                  \        V4      ,           V n        V P                  V P                  8X  dh   V P                  '       dV   V P                  ^,          '       d=   V P                  P                  ^4      pV P                  \        V4      ,           V n        V# )r0   r   )r   r1   r    r   r   r   r   r   )r&   Zsizer   dummy   &&  r   r   Z_Chunk.read   s     ;;;;<<>>T^^+!8>>DNN2D..4>>11>>DNN2Dyy~~d##d)3>>T^^+:::NNQIINN1%E!^^c%j8DNr   c                s\   V P                   '       d   \        R 4      hV P                  '       d    V P                  V P                  ,
          pV P
                  '       d#   V P                  ^,          '       d
   V^,           pV P                  P                  V^4       V P                  V,           V n        R# V P                  V P                  8  dI   \        RV P                  V P                  ,
          4      pV P                  V4      pV'       d   K]  \        hR#   \         d     Lri ; i)r0   Ni    )r   r1   r#   r   r    r   r   r2   r%   Zminr   r   )r&   Znr5   s   &  r   r.   Z_Chunk.skip   s     ;;;;<<===	NNT^^3:::4>>A#5#5AA		q!$!%!!3 nnt~~-D$..4>>9:AIIaLE5	 .  s   .D  D 9=D D+*D+)r   r   r   r   r   r"   r#   r    N)TTFr   )i)r   r   r   r	   r(   r-   r/   r2   r!   r   r.   r
   __classdictcell__Z__classdict__   @r   r   r   j   s-     !2#&
. r   r   c                   s   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )r   c                s   R V n         ^ V n        \        V^ R7      V n        V P                  P	                  4       R8w  d   \        R4      hV P                  P                  ^4      R8w  d   \        R4      h^ V n        R V n         ^V n	         \        V P                  ^ R7      pTP	                  4       pTR8X  d   T P                  T4       ^T n        MTTR8X  dN   T P                  '       g   \        R4      hY n        TP                  T P                  ,          T n        ^ T n	        MTP                  4        K  T P                  '       d   T P                  '       g   \        R	4      hR #   \         d     K?  i ; i)
N)r'      RIFFz file does not start with RIFF id   WAVEznot a WAVE file   fmt    datazdata chunk before fmt chunkz#fmt chunk and/or data chunk missing)_convert	_soundposr   _filer-   r   r   _fmt_chunk_read_data_chunk_data_seek_neededr   _read_fmt_chunkr   
_framesize_nframesr.   )r&   r   chunkr   r6   r   initfpZWave_read.initfp   sE   Da0
::7*:;;::??1()** %&D"tzzq9 IG#$$U+'($g%+++ =>>#(  %4?? B)*&JJL###4+;+;+;=>> ,<  s   E+ +E:9E:c                    R V n         \        V\        4      '       d   \        P                  ! VR4      pWn          V P                  V4       R #    T P                   '       d   TP                  4        h ; i)Nrb_i_opened_the_file
isinstanceZstrbuiltinsopenrH   r/   r&   f   &&r   r(   ZWave_read.__init__  s\    "&aa&A&'#	KKN	&&&	   A %A4c                &    V P                  4        R # r*   r/   r+   r,   r   __del__ZWave_read.__del__$      

r   c                    V # r*   r   r+   r,   r   	__enter__ZWave_read.__enter__'      r   c                rT   r*   rU   r&   Zargs   &*r   __exit__ZWave_read.__exit__*  rW   r   c                r)   r*   )r@   r+   r,   r   getfpZWave_read.getfp0  s    zzr   c                s"    ^V n         ^ V n        R# )i   N)rC   r?   r+   r,   r   rewindZWave_read.rewind3  s    !"r   c                sn    R V n         V P                  pV'       d   R V n        VP                  4        R # R # r*   )r@   rL   r/   r&   r      & r   r/   ZWave_read.close7  s-    
&&&*D#JJL r   c                r)   r*   )r?   r+   r,   r   r!   ZWave_read.tell>      ~~r   c                r)   r*   )
_nchannelsr+   r,   r   getnchannelsZWave_read.getnchannelsA      r   c                r)   r*   )rF   r+   r,   r   
getnframesZWave_read.getnframesD  s    }}r   c                r)   r*   )
_sampwidthr+   r,   r   getsampwidthZWave_read.getsampwidthG  re   r   c                r)   r*   )
_framerater+   r,   r   getframerateZWave_read.getframerateJ  re   r   c                r)   r*   	_comptyper+   r,   r   getcomptypeZWave_read.getcomptypeM  rb   r   c                r)   r*   	_compnamer+   r,   r   getcompnameZWave_read.getcompnameP  rb   r   c           	     s    \        V P                  4       V P                  4       V P                  4       V P	                  4       V P                  4       V P                  4       4      # r*   )r   rd   rh   rj   rf   rm   rp   r+   r,   r   	getparamsZWave_read.getparamsS  sQ    D--/1B1B1D((*DOO,='')4+;+;+=? 	?r   c                4    ^ RI pVP                  RRR7       R# )r    NzWave_read.getmarkersZremovei   i   warnings_deprecatedr&   rv   ra   r   
getmarkersZWave_read.getmarkersX  s    3GDr   c                F    ^ RI pVP                  RRR7       \        R4      h)r    NzWave_read.getmarkrs   no marksrt   rv   rw   r   r&   idrv      && r   getmarkZWave_read.getmark]  s$    0AJr   c                sd    V^ 8  g   WP                   8  d   \        R4      hWn        ^V n        R# )r    zposition not in rangeN)rF   r   r?   rC   )r&   r3   rR   r   setposZWave_read.setposb  s+    7cMM)/00!"r   c                s   V P                   '       de   V P                  P                  ^ ^ 4       V P                  V P                  ,          pV'       d   V P                  P                  V^ 4       ^ V n         V^ 8X  d   R# V P                  P                  WP                  ,          4      pV P                  ^8w  d+   \        P                  R8X  d   \        W0P                  4      pV P                  '       d   V'       d   V P                  V4      pV P                  \        V4      V P                  V P                  ,          ,          ,           V n        V# )r    r   big)rC   rB   r2   r?   rE   r   rg   sys	byteorderr   r>   r   rc   )r&   nframesr3   r   r6   r   
readframesZWave_read.readframesh  s    !!!!!!Q'..4??2C  %%c1-%&D"a<$$W%>???aCMMU$:T??3D===T==&D#d)$//8Y*ZZr   c                s    \         P                  ! R VP                  ^4      4      w  q n        V n        r4T\        8w  d   T\        8w  d   \        RT: 24      h \         P                  ! RTP                  ^4      4      ^ ,          pT\        8X  d    \         P                  ! RTP                  ^4      4      w  rgpTP                  ^4      p	\        T	4      ^8  d   \        h T	\        8w  d&    ^ RIp
RT
P                  T	R7       2p\        T4      hT^,           ^,          T n        T P                  '       g   \        R4      hT P                  '       g   \        R	4      hT P                  T P                  ,          T n        R
T n        RT n        R#   \         P
                   d	    \        Rhi ; i  \         P
                   d	    \        Rhi ; i  \         P
                   d	    \        Rhi ; i  \         d    Rp Li ; i)z<HHLLHNzunknown format: z<Hz<HHLzunknown extended format: )Zbytes_lezunknown extended formatbad sample widthbad # of channelsNONEznot compressed)r   r   r   rc   ri   r   r   WAVE_FORMAT_PCMWAVE_FORMAT_EXTENSIBLEr   r   KSDATAFORMAT_SUBTYPE_PCMuuidZUUID	Exceptionrg   rE   rl   ro   )r&   rG   Z
wFormatTagZdwAvgBytesPerSecZwBlockAlign	sampwidthZcbSizeZwValidBitsPerSampleZdwChannelMaskZ	SubFormatr   Zsubformat_msgs   &&          r   rD   ZWave_read._read_fmt_chunk}  s   	%Z`ZlZlmuw|  xB  xB  CE  xF  [GWJ:J (Z;Q-Q
<==	%**4A?BI //)=C=O=OPVX]XbXbcdXe=f:]!JJrN	y>B&"N ' 44>&?		S\	@]?^$_M M**$q=Q.*+++,,//DOO;)? || 	%$	% || 	%$	% << )D() ! >$=M>s6   4F -F7 AG 2G7 F47GG47HH)ro   rl   r>   rB   rC   r@   rA   ri   rE   rL   rc   rF   rg   r?   N)r   r   r   r	   rH   r(   rV   rY   r]   r^   r_   r/   r!   rd   rf   rh   rj   rm   rp   rq   ry   r   r   r   rD   r
   r7   r8   r9   r   r   r      ss     >?>?

 
#*"* "*r   c                   s   a  ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t Rt!V t"R# ) r   i  Nc                rI   )NwbrK   rP   rR   r   r(   ZWave_write.__init__  s\    "&aa&A&'#	KKN	&&&	rS   c                s    Wn         R V n        ^ V n        ^ V n        ^ V n        ^ V n        ^ V n        ^ V n        ^ V n        RV n	        R # )NF)
r@   r>   rc   rg   ri   rF   _nframeswritten_datawritten_datalength_headerwrittenr`   rR   r   rH   ZWave_write.initfp  sJ    
 #r   c                rT   r*   rU   r+   r,   r   rV   ZWave_write.__del__  rW   r   c                rX   r*   r   r+   r,   r   rY   ZWave_write.__enter__  rZ   r   c                rT   r*   rU   r[   r\   r   r]   ZWave_write.__exit__  rW   r   c                sp    V P                   '       d   \        R 4      hV^8  d   \        R4      hWn        R# )0cannot change parameters after starting to writer   N)r   r   rc   )r&   	nchannelsrR   r   setnchannelsZWave_write.setnchannels  s2    JKKq=+,,#r   c                T    V P                   '       g   \        R 4      hV P                   # )znumber of channels not set)rc   r   r+   r,   r   rd   ZWave_write.getnchannels  s!    455r   c                s~    V P                   '       d   \        R 4      hV^8  g   V^8  d   \        R4      hWn        R# )r   r   N)r   r   rg   )r&   r   rR   r   setsampwidthZWave_write.setsampwidth  s8    JKKq=IM*++#r   c                r   )zsample width not set)rg   r   r+   r,   r   rh   ZWave_write.getsampwidth  s!    .//r   c                s    V P                   '       d   \        R 4      hV^ 8:  d   \        R4      h\        \        V4      4      V n        R# )r   zbad frame rateN)r   r   ZintZroundri   )r&   	frameraterR   r   setframerateZWave_write.setframerate  s>    JKK>())eI./r   c                r   )zframe rate not set)ri   r   r+   r,   r   rj   ZWave_write.getframerate  s!    ,--r   c                sL    V P                   '       d   \        R 4      hWn        R# r   N)r   r   rF   )r&   r   rR   r   
setnframesZWave_write.setnframes  s    JKKr   c                r)   r*   r   r+   r,   r   rf   ZWave_write.getnframes      ###r   c                s|    V P                   '       d   \        R 4      hVR9  d   \        R4      hWn        W n        R# )r   zunsupported compression typeN)r   )r   r   rl   ro   )r&   comptypecompnamer4   r   setcomptypeZWave_write.setcomptype  s8    JKK9$677!!r   c                r)   r*   rk   r+   r,   r   rm   ZWave_write.getcomptype  rb   r   c                r)   r*   rn   r+   r,   r   rp   ZWave_write.getcompname  rb   r   c                s    Vw  r#rErgV P                   '       d   \        R 4      hV P                  V4       V P                  V4       V P	                  V4       V P                  V4       V P                  Wg4       R# r   )r   r   r   r   r   r   r   )r&   Zparamsr   r   r   r   r   r   s   &&      r   	setparamsZWave_write.setparams  sj    GMD	i(JKK)$)$)$ ,r   c                s   V P                   '       d%   V P                  '       d   V P                  '       g   \        R 4      h\	        V P                   V P                  V P                  V P
                  V P                  V P                  4      # )znot all parameters set)rc   rg   ri   r   r   rF   rl   ro   r+   r,   r   rq   ZWave_write.getparams&  sY    doooT___011DOOT__doommT^^T^^= 	=r   c                sF    ^ RI pVP                  RRR7       \        R4      h)r    NzWave_write.setmarkrs   zsetmark() not supportedrt   r|   )r&   r~   r3   Znamerv   s   &&&& r   setmarkZWave_write.setmark,  s%    1'B-..r   c                rz   )r    NzWave_write.getmarkrs   r{   rt   r|   r}   r   r   r   ZWave_write.getmark1  s$    1'BJr   c                rr   )r    NzWave_write.getmarkersrs   rt   ru   rx   ra   r   ry   ZWave_write.getmarkers6  s    4WEr   c                r)   r*   r   r+   r,   r   r!   ZWave_write.tell;  r   r   c                sf   \        V\        \        34      '       g   \        V4      P	                  R 4      pV P                  \        V4      4       \        V4      V P                  V P                  ,          ,          pV P                  '       d   V P                  V4      pV P                  ^8w  d+   \        P                  R8X  d   \        WP                  4      pV P                  P                  V4       V ;P                  \        V4      ,          un        V P                   V,           V n        R# )ZBr   N)rM   r   r   Z
memoryviewZcast_ensure_header_writtenr   rg   rc   r>   r   r   r   r@   writer   r   )r&   r   r   r   r   writeframesrawZWave_write.writeframesraw>  s    $	 233d#((-D##CI.d)$// AB=====&D??aCMMU$:T??3D

SY&#33g=r   c                s    V P                  V4       V P                  V P                  8w  d   V P                  4        R # R # r*   )r   r   r   _patchheader)r&   r   rR   r   writeframesZWave_write.writeframesK  s5    D!t000 1r   c                s    V P                   '       dW   V P                  ^ 4       V P                  V P                  8w  d   V P	                  4        V P                   P                  4        RV n         V P                  pV'       d   RV n        VP                  4        R# R#   RT n         T P                  pT'       d   RT n        TP                  4        i i ; i)r    N)r@   r   r   r   r   ZflushrL   r/   r`   ra   r   r/   ZWave_write.closeP  s    	zzz++A.##t'8'88%%'

  "DJ**D*.'

  DJ**D*.'

 s   B  AB   5Cc                s    V P                   '       gk   V P                  '       g   \        R 4      hV P                  '       g   \        R4      hV P                  '       g   \        R4      hV P                  V4       R# R# )z# channels not specifiedzsample width not specifiedzsampling rate not specifiedN)r   rc   r   rg   ri   _write_header)r&   ZdatasizerR   r   r   Z!Wave_write._ensure_header_writtenb  s`    """???677???899???9::x( #r   c                s   V P                   P                  R 4       V P                  '       g)   WP                  V P                  ,          ,          V n        V P                  V P                  ,          V P                  ,          V n         V P                   P                  4       V n        V P                   P                  \        P                  ! R^$V P
                  ,           RR^\        V P                  V P                  V P                  V P                  ,          V P                  ,          V P                  V P                  ,          V P                  ^,          R4      4       V P                  e    V P                   P                  4       V n        V P                   P                  \        P                  ! RV P
                  4      4       RV n        R#   \        \        3 d    RT n         ELFi ; i)r:   Nz<L4s4sLHHLLHH4sr;   r<   r=   <LT)r@   r   rF   rc   rg   r   r!   _form_length_posr$   r%   r   packr   ri   _data_length_posr   )r&   Z
initlengthrR   r   r   ZWave_write._write_headerl  sP   

!}}}&??T__+LMDM==4??:T__L	)$(JJOO$5D! 	

%6!!!7GRT__dooOOdoo-?OOdoo-OOa* 	+   ,$(JJOO$5D!

T4+;+;<=" ( 	)$(D!	)s   
G G0/G0c                s\   V P                   V P                  8X  d   R # V P                  P                  4       pV P                  P	                  V P
                  ^ 4       V P                  P                  \        P                  ! R^$V P                   ,           4      4       V P                  P	                  V P                  ^ 4       V P                  P                  \        P                  ! RV P                   4      4       V P                  P	                  V^ 4       V P                   V n        R # )Nr   )
r   r   r@   r!   r2   r   r   r   r   r   )r&   Zcurposra   r   r   ZWave_write._patchheader  s     0 00"

--q1

T20A0A+ABC

--q1

T4+<+<=>

",,r   )ro   rl   r>   r   r   r   r@   r   ri   r   rL   rc   rF   r   rg   )#r   r   r   r	   r@   r(   rH   rV   rY   r]   r   rd   r   rh   r   rj   r   rf   r   rm   rp   r   rq   r   r   ry   r!   r   r   r/   r   r   r   r
   r7   r8   r9   r   r   r     s     4 E

$$
$
0
 
$"-=/
 

$> 
$)#*
- 
-r   c                 s    Vf"   \        V R4      '       d   V P                  pMRpVR9   d   \        V 4      # VR9   d   \        V 4      # \	        R4      h)NmoderJ   z$mode must be 'r', 'rb', 'w', or 'wb')ZrrJ   )Zwr   )Zhasattrr   r   r   r   )rQ   r   rR   r   rO   rO     sR    |1f66DD{|		!}:;;r   )rO   r   r   r   )NZbZhNr   r*   )Zcollectionsr   rN   r   r   Z__all__r   r   r   r   r   Z_array_fmtsr   r   r   r   r   rO   r   r   r   <module>r      s   T #   
 7	I 	  X '.NPl l^F* F*Ri- i-X<r   