+
     BiZ                         ^ 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                       ] tR t^RtRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       /usr/lib/python3.14/wave.pyr   r   R   s    r   i  s            8q_wave_paramsz7nchannels sampwidth framerate nframes comptype compnamec                     \        \        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lenrangebytes)datawidthswapped_dataijs   &&   r   	_byteswapr   `   s]    SY'L1c$i'uA.2q5kLUQ*+  ( r   c                   V   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                @   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)F><LNT)closedalignfileread	chunknamer   EOFErrorstructunpack_from	chunksizeerror	size_readtelloffsetseekableAttributeErrorOSError)selfr%   r$   	bigendian
inclheaderstrflags   &&&&& r   __init___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'   r3   s   &r   getname_Chunk.getname   s    ~~r   c                v    V P                   '       g    V P                  4        R V n         R# R#   R T n         i ; i)TN)r#   skipr;   s   &r   close_Chunk.close   s0    {{{#		"	  #s   / 	8c                   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#   
ValueErrorr0   r2   r-   r+   RuntimeErrorr%   seekr/   )r3   poswhences   &&&r   rF   _Chunk.seek   s     ;;;;<<}}}-((Q;&Cq[&C7cNN*		t{{S(!,r   c                T    V P                   '       d   \        R 4      hV P                  # )rC   )r#   rD   r-   r;   s   &r   r.   _Chunk.tell   s!    ;;;;<<~~r   c                   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# )rC   r   )r#   rD   r-   r+   r%   r&   r   r$   )r3   sizer   dummys   &&  r   r&   _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                \   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)rC   Ni    )r#   rD   r0   r+   r-   r$   r%   rF   r2   minr&   r(   )r3   nrN   s   &  r   r?   _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/   r0   r-   N)TTFr   ))r	   r
   r   r   r7   r<   r@   rF   r.   r&   r?   r   __classdictcell____classdict__s   @r   r   r   j   s-     !2#&
. r   r   c                      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                   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)r4      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?   )r3   r%   chunkr'   s   &&  r   initfp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
isinstancestrbuiltinsopenrh   r@   r3   fs   &&r   r7   Wave_read.__init__  s\    "&aa&A&'#	KKN	&&&	   A %A4c                &    V P                  4        R # r:   r@   r;   s   &r   __del__Wave_read.__del__$      

r   c                    V # r:   r   r;   s   &r   	__enter__Wave_read.__enter__'      r   c                &    V P                  4        R # r:   rw   r3   argss   &*r   __exit__Wave_read.__exit__*  rz   r   c                    V P                   # r:   )r`   r;   s   &r   getfpWave_read.getfp0  s    zzr   c                "    ^V n         ^ V n        R# )   N)rc   r_   r;   s   &r   rewindWave_read.rewind3  s    !"r   c                n    R V n         V P                  pV'       d   R V n        VP                  4        R # R # r:   )r`   rm   r@   r3   r%   s   & r   r@   Wave_read.close7  s-    
&&&*D#JJL r   c                    V P                   # r:   )r_   r;   s   &r   r.   Wave_read.tell>      ~~r   c                    V P                   # r:   )
_nchannelsr;   s   &r   getnchannelsWave_read.getnchannelsA      r   c                    V P                   # r:   )rf   r;   s   &r   
getnframesWave_read.getnframesD  s    }}r   c                    V P                   # r:   )
_sampwidthr;   s   &r   getsampwidthWave_read.getsampwidthG  r   r   c                    V P                   # r:   )
_framerater;   s   &r   getframerateWave_read.getframerateJ  r   r   c                    V P                   # r:   	_comptyper;   s   &r   getcomptypeWave_read.getcomptypeM  r   r   c                    V P                   # r:   	_compnamer;   s   &r   getcompnameWave_read.getcompnameP  r   r   c           	         \        V P                  4       V P                  4       V P                  4       V P	                  4       V P                  4       V P                  4       4      # r:   )r   r   r   r   r   r   r   r;   s   &r   	getparams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remove      warnings_deprecatedr3   r   s   & r   
getmarkers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.getmarkr   no marksr   r   r   r   r3   idr   s   && r   getmarkWave_read.getmark]  s$    0AJr   c                d    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   )r3   rG   s   &&r   setposWave_read.setposb  s+    7cMM)/00!"r   c                   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   rF   r_   re   r&   r   sys	byteorderr   r^   r   r   )r3   nframesrG   r   s   &&  r   
readframesWave_read.readframesh  s    !!!!!!Q'..4??2C  %%c1-%&D"a<$$W%>???aCMMU$:T??3D===T==&D#d)$//8Y*ZZr   c                    \         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: )bytes_lezunknown extended formatbad sample widthbad # of channelsNONEznot compressed)r)   r*   r&   r   r   r,   r(   WAVE_FORMAT_PCMWAVE_FORMAT_EXTENSIBLEr   r   KSDATAFORMAT_SUBTYPE_PCMuuidUUID	Exceptionr   re   r   r   )r3   rg   
wFormatTagdwAvgBytesPerSecwBlockAlign	sampwidthcbSizewValidBitsPerSampledwChannelMask	SubFormatr   subformat_msgs   &&          r   rd   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)r   r   r^   rb   rc   r`   ra   r   re   rm   r   rf   r   r_   N)r	   r
   r   r   rh   r7   rx   r|   r   r   r   r@   r.   r   r   r   r   r   r   r   r   r   r   r   rd   r   rU   rV   s   @r   r   r      ss     >?>?

 
#*"* "*r   c                      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                    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wbrl   rr   s   &&r   r7   Wave_write.__init__  s\    "&aa&A&'#	KKN	&&&	ru   c                    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^   r   r   r   rf   _nframeswritten_datawritten_datalength_headerwrittenr   s   &&r   rh   Wave_write.initfp  sJ    
 #r   c                &    V P                  4        R # r:   rw   r;   s   &r   rx   Wave_write.__del__  rz   r   c                    V # r:   r   r;   s   &r   r|   Wave_write.__enter__  r~   r   c                &    V P                  4        R # r:   rw   r   s   &*r   r   Wave_write.__exit__  rz   r   c                p    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   r   )r3   	nchannelss   &&r   setnchannels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)r   r   r;   s   &r   r   Wave_write.getnchannels  s!    455r   c                ~    V P                   '       d   \        R 4      hV^8  g   V^8  d   \        R4      hWn        R# )r   r   N)r   r   r   )r3   r   s   &&r   setsampwidthWave_write.setsampwidth  s8    JKKq=IM*++#r   c                T    V P                   '       g   \        R 4      hV P                   # )zsample width not set)r   r   r;   s   &r   r   Wave_write.getsampwidth  s!    .//r   c                    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   introundr   )r3   	framerates   &&r   setframerateWave_write.setframerate  s>    JKK>())eI./r   c                T    V P                   '       g   \        R 4      hV P                   # )zframe rate not set)r   r   r;   s   &r   r   Wave_write.getframerate  s!    ,--r   c                L    V P                   '       d   \        R 4      hWn        R# r   N)r   r   rf   )r3   r   s   &&r   
setnframesWave_write.setnframes  s    JKKr   c                    V P                   # r:   r   r;   s   &r   r   Wave_write.getnframes      ###r   c                |    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   r   r   )r3   comptypecompnames   &&&r   setcomptypeWave_write.setcomptype  s8    JKK9$677!!r   c                    V P                   # r:   r   r;   s   &r   r   Wave_write.getcomptype  r   r   c                    V P                   # r:   r   r;   s   &r   r   Wave_write.getcompname  r   r   c                    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  )r3   paramsr   r   r   r   r  r  s   &&      r   	setparamsWave_write.setparams  sj    GMD	i(JKK)$)$)$ ,r   c                   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)r   r   r   r   r   rf   r   r   r;   s   &r   r   Wave_write.getparams&  sY    doooT___011DOOT__doommT^^T^^= 	=r   c                F    ^ RI pVP                  RRR7       \        R4      h)r   NzWave_write.setmarkr   zsetmark() not supportedr   r   )r3   r   rG   namer   s   &&&& r   setmarkWave_write.setmark,  s%    1'B-..r   c                F    ^ RI pVP                  RRR7       \        R4      h)r   NzWave_write.getmarkr   r   r   r   r   s   && r   r   Wave_write.getmark1  s$    1'BJr   c                4    ^ RI pVP                  RRR7       R# )r   NzWave_write.getmarkersr   r   r   r   s   & r   r   Wave_write.getmarkers6  s    4WEr   c                    V P                   # r:   r	  r;   s   &r   r.   Wave_write.tell;  r  r   c                f   \        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# )Br   N)rn   r   r   
memoryviewcast_ensure_header_writtenr   r   r   r^   r   r   r   r`   writer   r   )r3   r   r   s   && r   writeframesraw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                    V P                  V4       V P                  V P                  8w  d   V P                  4        R # R # r:   )r+  r   r   _patchheader)r3   r   s   &&r   writeframesWave_write.writeframesK  s5    D!t000 1r   c                    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.  flushrm   r@   r   s   & r   r@   Wave_write.closeP  s    	zzz++A.##t'8'88%%'

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

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

 s   B  AB   5Cc                    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   r   r   r   r   _write_header)r3   datasizes   &&r   r)  !Wave_write._ensure_header_writtenb  s`    """???677???899???9::x( #r   c                   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)rZ   Nz<L4s4sLHHLLHH4sr[   r\   r]   <LT)r`   r*  rf   r   r   r   r.   _form_length_posr1   r2   r)   packr   r   _data_length_posr   )r3   
initlengths   &&r   r5  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                \   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 # )Nr9  )
r   r   r`   r.   rF   r:  r*  r)   r;  r<  )r3   curposs   & r   r.  Wave_write._patchheader  s     0 00"

--q1

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

--q1

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

",,r   )r   r   r^   r<  r   r   r`   r:  r   r   rm   r   rf   r   r   )#r	   r
   r   r   r`   r7   rh   rx   r|   r   r   r   r   r   r   r   r  r   r  r   r   r  r   r  r   r   r.   r+  r/  r@   r)  r5  r.  r   rU   rV   s   @r   r   r     s     4 E

$$
$
0
 
$"-=/
 

$> 
$)#*
- 
-r   c                     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moderk   z$mode must be 'r', 'rb', 'w', or 'wb')rrk   )wr   )hasattrrC  r   r   r   )rs   rC  s   &&r   rq   rq     sR    |1f66DD{|		!}:;;r   )rq   r   r   r   )NbhNr   r:   )collectionsr   rp   r)   r   __all__r   r   r   r   r   _array_fmtsr   r   r   r   r   rq   r   r   r   <module>rL     s   T #   
 7	I 	  X '.NPl l^F* F*Ri- i-X<r   