grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?hTFã@sŒddlmZddlmZddlZddlZddlZddlZgd¢ZGdd„de ƒZ dZ dZ ed d ƒZ Gd d „d ƒZGd d„dƒZddd„ZdS)é)ÚChunk)Ú namedtupleN)ÚopenÚErrorÚ Wave_readÚ Wave_writec@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú)/opt/alt/python39/lib64/python3.9/wave.pyrTsré)NÚbÚhNÚiÚ _wave_paramsz7nchannels sampwidth framerate nframes comptype compnamec@s´eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+S),rcCsúd|_d|_t|dd�|_|j ¡dkr0tdƒ‚|j d¡dkrHtdƒ‚d|_d|_d|_ zt|jdd�}Wnt y‚YqâYn0| ¡}|d kr¦|  |¡d|_n2|d krØ|js¼td ƒ‚||_|j |j |_d|_ qâ| ¡qT|jrî|jsötd ƒ‚dS) Nr)Z bigendianóRIFFz file does not start with RIFF idéóWAVEznot a WAVE filer ófmt ódatazdata chunk before fmt chunkz#fmt chunk and/or data chunk missing)Ú_convertÚ _soundposrÚ_fileZgetnamerÚreadZ_fmt_chunk_readÚ _data_chunkÚ_data_seek_neededÚEOFErrorÚ_read_fmt_chunkZ chunksizeÚ _framesizeÚ_nframesÚskip)ÚselfÚfileÚchunkZ chunknamer r r Úinitfp}s8     zWave_read.initfpcCsRd|_t|tƒr"t |d¡}||_z| |¡Wn|jrF| ¡‚Yn0dS)NÚrb©Ú_i_opened_the_fileÚ isinstanceÚstrÚbuiltinsrr%Úclose©r"Úfr r r Ú__init__œs  zWave_read.__init__cCs | ¡dS©N©r,©r"r r r Ú__del__©szWave_read.__del__cCs|Sr0r r2r r r Ú __enter__¬szWave_read.__enter__cGs | ¡dSr0r1©r"Úargsr r r Ú__exit__¯szWave_read.__exit__cCs|jSr0)rr2r r r ÚgetfpµszWave_read.getfpcCsd|_d|_dS)Nr r)rrr2r r r Úrewind¸szWave_read.rewindcCs"d|_|j}|rd|_| ¡dSr0)rr(r,©r"r#r r r r,¼s zWave_read.closecCs|jSr0)rr2r r r ÚtellÃszWave_read.tellcCs|jSr0)Ú _nchannelsr2r r r Ú getnchannelsÆszWave_read.getnchannelscCs|jSr0)r r2r r r Ú getnframesÉszWave_read.getnframescCs|jSr0)Ú _sampwidthr2r r r Ú getsampwidthÌszWave_read.getsampwidthcCs|jSr0)Ú _framerater2r r r Ú getframerateÏszWave_read.getframeratecCs|jSr0©Ú _comptyper2r r r Ú getcomptypeÒszWave_read.getcomptypecCs|jSr0©Ú _compnamer2r r r Ú getcompnameÕszWave_read.getcompnamecCs*t| ¡| ¡| ¡| ¡| ¡| ¡ƒSr0)rr=r@rBr>rErHr2r r r Ú getparamsØs  þzWave_read.getparamscCsdSr0r r2r r r Ú getmarkersÝszWave_read.getmarkerscCs tdƒ‚dS©Nzno marks©r©r"Úidr r r ÚgetmarkàszWave_read.getmarkcCs*|dks||jkrtdƒ‚||_d|_dS)Nrzposition not in ranger )r rrr)r"Úposr r r ÚsetposãszWave_read.setposcCs¬|jr8|j dd¡|j|j}|r2|j |d¡d|_|dkrDdS|j ||j¡}|jdkrxtjdkrxt   ||j¡}|j rŒ|rŒ|  |¡}|jt |ƒ|j |j|_|S)Nrór Úbig)rrÚseekrrrr?ÚsysÚ byteorderÚaudioopÚbyteswaprÚlenr<)r"ÚnframesrPÚdatar r r Ú readframesés   zWave_read.readframescCsÖz$t d| d¡¡\}|_|_}}Wntjy>td‚Yn0|tkrœzt d| d¡¡d}Wntjy|td‚Yn0|dd|_|jsªt dƒ‚nt d |fƒ‚|js¸t d ƒ‚|j|j|_ d |_ d |_ dS) Nzr@rBrErHrIrJrOrQr\rr r r r r^s* rc@sìeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9S):rcCsRd|_t|tƒr"t |d¡}||_z| |¡Wn|jrF| ¡‚Yn0dS)NÚwbr'r-r r r r/-s  zWave_write.__init__cCs@||_d|_d|_d|_d|_d|_d|_d|_d|_d|_ dS)NrF) rrr<r?rAr Ú_nframeswrittenÚ _datawrittenÚ _datalengthÚ_headerwrittenr:r r r r%9szWave_write.initfpcCs | ¡dSr0r1r2r r r r3EszWave_write.__del__cCs|Sr0r r2r r r r4HszWave_write.__enter__cGs | ¡dSr0r1r5r r r r7KszWave_write.__exit__cCs(|jrtdƒ‚|dkrtdƒ‚||_dS)Nú0cannot change parameters after starting to writer rb)rjrr<)r"Ú nchannelsr r r Ú setnchannelsQs zWave_write.setnchannelscCs|jstdƒ‚|jS)Nznumber of channels not set)r<rr2r r r r=XszWave_write.getnchannelscCs0|jrtdƒ‚|dks|dkr&tdƒ‚||_dS)Nrmr rra)rjrr?)r"rgr r r Ú setsampwidth]s zWave_write.setsampwidthcCs|jstdƒ‚|jS)Nzsample width not set)r?rr2r r r r@dszWave_write.getsampwidthcCs0|jrtdƒ‚|dkrtdƒ‚tt|ƒƒ|_dS)Nrmrzbad frame rate)rjrÚintÚroundrA)r"Ú framerater r r Ú setframerateis zWave_write.setframeratecCs|jstdƒ‚|jS)Nzframe rate not set)rArr2r r r rBpszWave_write.getframeratecCs|jrtdƒ‚||_dS©Nrm)rjrr )r"rZr r r Ú setnframesuszWave_write.setnframescCs|jSr0©rir2r r r r>zszWave_write.getnframescCs.|jrtdƒ‚|dvrtdƒ‚||_||_dS)Nrm)rczunsupported compression type)rjrrDrG)r"ÚcomptypeÚcompnamer r r Ú setcomptype}s zWave_write.setcomptypecCs|jSr0rCr2r r r rE…szWave_write.getcomptypecCs|jSr0rFr2r r r rHˆszWave_write.getcompnamecCsV|\}}}}}}|jrtdƒ‚| |¡| |¡| |¡| |¡| ||¡dSru)rjrrorprtrvrz)r"ÚparamsrnrgrsrZrxryr r r Ú setparams‹s    zWave_write.setparamscCs8|jr|jr|jstdƒ‚t|j|j|j|j|j|jƒS)Nznot all parameters set)r<r?rArrr rDrGr2r r r rI•s  ÿzWave_write.getparamscCs tdƒ‚dS)Nzsetmark() not supportedrL)r"rNrPÚnamer r r Úsetmark›szWave_write.setmarkcCs tdƒ‚dSrKrLrMr r r rOžszWave_write.getmarkcCsdSr0r r2r r r rJ¡szWave_write.getmarkerscCs|jSr0rwr2r r r r;¤szWave_write.tellcCsžt|ttfƒst|ƒ d¡}| t|ƒ¡t|ƒ|j|j}|j rN|  |¡}|jdkrpt j dkrpt   ||j¡}|j |¡|jt|ƒ7_|j||_dS)NÚBr rS)r)ÚbytesÚ bytearrayÚ memoryviewÚcastÚ_ensure_header_writtenrYr?r<rrUrVrWrXrÚwriterjri)r"r[rZr r r Úwriteframesraw§s  zWave_write.writeframesrawcCs"| |¡|j|jkr| ¡dSr0)r†rkrjÚ _patchheader)r"r[r r r Ú writeframes´s  zWave_write.writeframescCsvzP|jr0| d¡|j|jkr&| ¡|j ¡Wd|_|j}|rrd|_| ¡n d|_|j}|rpd|_| ¡0dS)Nr)rr„rkrjr‡Úflushr(r,r:r r r r,¹s     üzWave_write.closecCs>|js:|jstdƒ‚|js"tdƒ‚|js0tdƒ‚| |¡dS)Nz# channels not specifiedzsample width not specifiedzsampling rate not specified)rlr<rr?rAÚ _write_header)r"Zdatasizer r r r„Ësz!Wave_write._ensure_header_writtencCsê|j d¡|js$||j|j|_|j|j|j|_z|j ¡|_Wntt fydd|_Yn0|j t   dd|jdddt |j|j |j|j |j|j|j|jdd¡ ¡|jdurÊ|j ¡|_|j t   d |j¡¡d |_dS) NrzrzrErHr|rIr~rOrJr;r†rˆr,r„rŠr‡r r r r rs8     rcCsJ|durt|dƒr|j}nd}|dvr.t|ƒS|dvr>t|ƒStdƒ‚dS)NÚmoder&)Úrr&)Úwrhz$mode must be 'r', 'rb', 'w', or 'wb')Úhasattrr“rrr)r.r“r r r rös r)N)r$rÚ collectionsrrWr+rdrUÚ__all__Ú ExceptionrrfZ _array_fmtsrrrrr r r r ÚJs"  ÿ6d