f:U ddlmZddlZddlZddlZgdZGddeZdZdZ edd Z d Z Gd d Z Gd dZ GddZddZdS)) namedtupleN)openError Wave_read Wave_writeceZdZdS)rN)__name__ __module__ __qualname__+/opt/alt/python311/lib64/python3.11/wave.pyrrRsDr r)NbhNi _wave_paramsz7nchannels sampwidth framerate nframes comptype compnamectt|}tdt||D]+}t|D]}|||z|||zdz |z <,t|S)Nrr) bytearraylenrangebytes)datawidth swapped_datarjs r _byteswapr]sSYY''L 1c$ii ' '::u : :A.21q5kLUQ* + + :   r c>eZdZd dZdZdZddZdZdd Zd Z d S)_ChunkTFcd|_||_|rd}nd}||_|d|_t |jdkrt  tj|dz|dd|_ n#tj $r t dwxYw|r|j dz |_ d|_ |j |_ d|_dS#tt f$r d|_YdSwxYw) NF><LrT)closedalignfileread chunknamerEOFErrorstruct unpack_from chunksizeerror size_readtelloffsetseekableAttributeErrorOSError)selfr(r' bigendian inclheaderstrflags r__init__z_Chunk.__init__hs   GGG 1 t~   " "N %#/ TYYq\\JJ1MDNN| % % % $ %  0!^a/DN !)..**DK!DMMM( " " "!DMMMM "s6BB&C))DDc |jSN)r*r6s rgetnamez_Chunk.getnames 8~r ch|js* |d|_dS#d|_wxYwdS)NT)r&skipr=s rclosez _Chunk.closesF{ # # " d """"  # #s& /rc& |jrtd|jstd|dkr ||jz}n|dkr ||jz}|dks ||jkrt |j|j |zd||_dS)NI/O operation on closed filez cannot seekrr) r& ValueErrorr3r5r0r. RuntimeErrorr(seekr2)r6poswhences rrGz _Chunk.seeks ; =;<< <} )-(( ( Q;;&CC q[[&C 77cDN**  t{S(!,,,r c<|jrtd|jS)NrC)r&rEr0r=s rr1z _Chunk.tells# ; =;<< <~r c |jrtd|j|jkrdS|dkr|j|jz }||j|jz kr|j|jz }|j|}|jt |z|_|j|jkrG|jr@|jdzr6|jd}|jt |z|_|S)NrCr rr)r&rEr0r.r(r)rr')r6sizerdummys rr)z _Chunk.reads ; =;<< < >T^ + +3 !88>DN2D $.4>1 1 1>DN2Dy~~d###d))3 >T^ + + : , NQ  ,INN1%%E!^c%jj8DN r c |jrtd|jrb |j|jz }|jr|jdzr|dz}|j|d|j|z|_dS#t$rYnwxYw|j|jkrMtd|j|jz }| |}|st|j|jkKdSdS)NrCri ) r&rEr3r.r0r'r(rGr5minr)r+)r6nrNs rr@z _Chunk.skips  ; =;<< < =  NT^3:4>A#5AA q!$$$!%!!3    nt~--D$.4>9::AIIaLLE  nt~------sAA11 A>=A>N)TTF)r)rK) r r r r:r>rArGr1r)r@r r rrrgs!!!!2###& .r rceZdZ dZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdS)rcd|_d|_t|d|_|jdkrt d|jddkrt dd|_d|_ d|_ t|jd}n#t$rYnwxYw|}|d kr| |d|_n?|d kr9|jst d ||_|j |j z|_d|_ n||jr|jst d dS) Nr)r7RIFFz file does not start with RIFF idr#WAVEznot a WAVE filerfmt datazdata chunk before fmt chunkz#fmt chunk and/or data chunk missing)_convert _soundposr_filer>rr)_fmt_chunk_read _data_chunk_data_seek_neededr+_read_fmt_chunkr. _framesize_nframesr@)r6r(chunkr*s rinitfpzWave_read.initfps Da000 :    7 * *:;; ; :??1   ( ()** *  %&D " tzq999     IG##$$U+++'($$g%%+? =>>>#( %4? B )*& JJLLL# $# ?4+; ?=>> > ? ?sB,, B98B9cd|_t|trtj|d}||_ ||dS#|jr|xYw)Nrb_i_opened_the_file isinstancestrbuiltinsrrbrAr6fs rr:zWave_read.__init__sq"& a   ( a&&A&'D #  KKNNNNN &   AA/c.|dSr<rAr=s r__del__zWave_read.__del__! r c|Sr<r r=s r __enter__zWave_read.__enter__$ r c.|dSr<rnr6argss r__exit__zWave_read.__exit__'rpr c|jSr<)rZr=s rgetfpzWave_read.getfp-s zr c"d|_d|_dS)Nrr)r]rYr=s rrewindzWave_read.rewind0s!"r c`d|_|j}|rd|_|dSdSr<)rZrfrAr6r(s rrAzWave_read.close4s< &  &*D # JJLLLLL  r c|jSr<)rYr=s rr1zWave_read.tell; ~r c|jSr<) _nchannelsr=s r getnchannelszWave_read.getnchannels> r c|jSr<)r`r=s r getnframeszWave_read.getnframesAs }r c|jSr<) _sampwidthr=s r getsampwidthzWave_read.getsampwidthDrr c|jSr<) _framerater=s r getframeratezWave_read.getframerateGrr c|jSr< _comptyper=s r getcomptypezWave_read.getcomptypeJrr c|jSr< _compnamer=s r getcompnamezWave_read.getcompnameMrr c t||||||Sr<)rrrrrrrr=s r getparamszWave_read.getparamsPshD--//1B1B1D1D((**DOO,=,=''))4+;+;+=+=?? ?r cdSr<r r=s r getmarkerszWave_read.getmarkersUtr c tdNzno marksrr6ids rgetmarkzWave_read.getmarkXJr cb|dks ||jkrtd||_d|_dS)Nrzposition not in ranger)r`rrYr])r6rHs rsetposzWave_read.setpos[s; 77cDM))/00 0!"r c|jrN|jdd|j|jz}|r|j|dd|_|dkrdS|j||jz}|jdkr%tjdkrt||j}|j r|r| |}|jt||j |jzzz|_|S)Nrr rbig) r]r\rGrYr_r)rsys byteorderrrXrr)r6nframesrHrs r readframeszWave_read.readframesas  ! '   ! !!Q ' ' '.4?2C . %%c1---%&D " a<<3$$Wt%>?? ?a  CMU$:$:T4?33D = 'T '==&&D#d))$/8Y*ZZ r c8 tjd|d\}|_|_}}n#tj$r t dwxYw|tkro tjd|dd}n#tj$r t dwxYw|dzdz|_|jstdntd ||jstd |j|jz|_ d |_ d |_ dS) Nz    ???    ### ******r rceZdZ dZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)rcd|_t|trtj|d}||_ ||dS#|jr|xYw)Nwbrerjs rr:zWave_write.__init__sq"& a   ( a&&A&'D #  KKNNNNN &  rlc||_d|_d|_d|_d|_d|_d|_d|_d|_d|_ dS)NrF) rZrXrrrr`_nframeswritten _datawritten _datalength_headerwrittenr}s rrbzWave_write.initfpsR    #r c.|dSr<rnr=s rrozWave_write.__del__rpr c|Sr<r r=s rrrzWave_write.__enter__rsr c.|dSr<rnrus rrwzWave_write.__exit__rpr cj|jrtd|dkrtd||_dS)N0cannot change parameters after starting to writerr)rrr)r6 nchannelss r setnchannelszWave_write.setnchannelss@   LJKK K q==+,, ,#r c<|jstd|jS)Nznumber of channels not set)rrr=s rrzWave_write.getnchannelss# 6455 5r cv|jrtd|dks|dkrtd||_dS)Nrrr#r)rrr)r6rs r setsampwidthzWave_write.setsampwidthsH   LJKK K q==IMM*++ +#r c<|jstd|jS)Nzsample width not set)rrr=s rrzWave_write.getsampwidths# 0.// /r c|jrtd|dkrtdtt||_dS)Nrrzbad frame rate)rrintroundr)r6 framerates r setframeratezWave_write.setframeratesP   LJKK K >>()) )eI..//r c<|jstd|jS)Nzframe rate not set)rrr=s rrzWave_write.getframerates# .,-- -r c@|jrtd||_dSNr)rrr`)r6rs r setnframeszWave_write.setnframess(   LJKK K r c|jSr<rr=s rrzWave_write.getnframes ##r ct|jrtd|dvrtd||_||_dS)Nr)rzunsupported compression type)rrrr)r6comptypecompnames r setcomptypezWave_write.setcomptypesI   LJKK K 9 $ $677 7!!r c|jSr<rr=s rrzWave_write.getcomptyperr c|jSr<rr=s rrzWave_write.getcompnamerr c|\}}}}}}|jrtd|||||||||||dSr)rrrrrrr)r6paramsrrrrrrs r setparamszWave_write.setparamssGMD 9i(H   LJKK K )$$$ )$$$ )$$$     8,,,,,r c|jr|jr|jstdt |j|j|j|j|j|jS)Nznot all parameters set)rrrrrr`rrr=s rrzWave_write.getparamssX 2do 2T_ 2011 1DOT_domT^T^== =r c td)Nzsetmark() not supportedr)r6rrHnames rsetmarkzWave_write.setmarks-...r c tdrrrs rrzWave_write.getmarkrr cdSr<r r=s rrzWave_write.getmarkersrr c|jSr<rr=s rr1zWave_write.tellrr c(t|ttfs"t|d}|t |t ||j|jzz}|j r| |}|jdkr%tj dkrt||j}|j ||xjt |z c_|j|z|_dS)NBrr)rgrr memoryviewcast_ensure_header_writtenrrrrXrrrrZwriterr)r6rrs rwriteframesrawzWave_write.writeframesraw s$ 233 .d##((--D ##CII...d))$/ AB = '==&&D ?a  CMU$:$:T4?33D  SYY&#3g=r c||||j|jkr|dSdSr<)rrr _patchheader)r6rs r writeframeszWave_write.writeframes-sG D!!!  t0 0 0         1 0r cv |jrR|d|j|jkr||jd|_|j}|rd|_|dSdS#d|_|j}|rd|_|wwxYw)Nr)rZrrrrflushrfrAr}s rrAzWave_write.close2s z #++A...#t'888%%'''   """DJ*D *.'   DJ*D *.'  s AB .B8c|jsY|jstd|jstd|jstd||dSdS)Nz# channels not specifiedzsample width not specifiedzsampling rate not specified)rrrrr _write_header)r6datasizes rrz!Wave_write._ensure_header_writtenDs|" )? 86777? :8999? ;9:::   x ( ( ( ( ( ) )r c|jd|js||j|jzz|_|j|jz|jz|_ |j|_n#ttf$r d|_YnwxYw|jtj dd|jzdddt|j|j |j|j z|jz|j|jz|jdzd |j|j|_|jtj d |jd |_dS) NrTz>> """,r N)r r r r:rbrorrrwrrrrrrrrrrrrrrrrr1rrrArrrr r rrrs2    $ $ $ $$$ $$$ 000    $$$"""---=== ///   $$$ > > >     $)))###* - - - - -r rc|t|dr|j}nd}|dvrt|S|dvrt|St d)Nmoderd)rrd)wrz$mode must be 'r', 'rb', 'w', or 'wb')hasattrrrrr)rkrs rrrpsd | 1f   6DDD {||   !}}:;;;r r<) collectionsrrir,r__all__ Exceptionrr _array_fmtsrrrrrrr r rrsVGR#"""""  7 6 6     I   ' z.NPP llllllll^s*s*s*s*s*s*s*s*la-a-a-a-a-a-a-a-H < < < < <