grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]Eã@sÏddlZdddgZGdd„deƒZdZdZddlZddlZddlZdd l m Z dd l m Z e d d ƒZ Gdd„dƒZGdd„dƒZddd„ZeZdS)éNÚopenÚopenfpÚErrorc@seZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrú)/opt/alt/python35/lib64/python3.5/wave.pyrNs éÚbÚhÚi)ÚChunk)Ú namedtupleÚ _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),Ú Wave_readc Cscd|_d|_t|ddƒ|_|jjƒdkrHtdƒ‚|jjdƒdkrltdƒ‚d|_d|_x¾d|_ yt|jddƒ}Wnt k r¸PYnX|jƒ}|d krê|j |ƒd|_nG|d kr1|js td ƒ‚||_|j |j |_d|_ P|jƒq�W|j sS|j r_td ƒ‚dS) NrZ bigendiansRIFFz file does not start with RIFF idésWAVEznot a WAVE filer sfmt sdatazdata 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_chunkÚ chunksizeÚ _framesizeÚ_nframesÚskip)ÚselfÚfileÚchunkZ chunknamerrr Úinitfp}s:                 zWave_read.initfpc Csid|_t|tƒr3tj|dƒ}||_y|j|ƒWn|jr]|jƒ‚YnXdS)NÚrb)Ú_i_opened_the_fileÚ isinstanceÚstrÚbuiltinsrr"Úclose)rÚfrrr Ú__init__œs    zWave_read.__init__cCs|jƒdS)N)r()rrrr Ú__del__©szWave_read.__del__cCs|S)Nr)rrrr Ú __enter__¬szWave_read.__enter__cGs|jƒdS)N)r()rÚargsrrr Ú__exit__¯szWave_read.__exit__cCs|jS)N)r)rrrr ÚgetfpµszWave_read.getfpcCsd|_d|_dS)Nr r)rr)rrrr Úrewind¸s zWave_read.rewindcCs/d|_|j}|r+d|_|jƒdS)N)rr$r()rr rrr r(¼s    zWave_read.closecCs|jS)N)r)rrrr ÚtellÃszWave_read.tellcCs|jS)N)Ú _nchannels)rrrr Ú getnchannelsÆszWave_read.getnchannelscCs|jS)N)r)rrrr Ú getnframesÉszWave_read.getnframescCs|jS)N)Ú _sampwidth)rrrr Ú getsampwidthÌszWave_read.getsampwidthcCs|jS)N)Ú _framerate)rrrr Ú getframerateÏszWave_read.getframeratecCs|jS)N)Ú _comptype)rrrr Ú getcomptypeÒszWave_read.getcomptypecCs|jS)N)Ú _compname)rrrr Ú getcompnameÕszWave_read.getcompnamecCs=t|jƒ|jƒ|jƒ|jƒ|jƒ|jƒƒS)N)rr3r6r8r4r:r<)rrrr Ú getparamsØszWave_read.getparamscCsdS)Nr)rrrr Ú getmarkersÝszWave_read.getmarkerscCstdƒ‚dS)Nzno marks)r)rÚidrrr ÚgetmarkàszWave_read.getmarkcCs=|dks||jkr'tdƒ‚||_d|_dS)Nrzposition not in ranger )rrrr)rÚposrrr Úsetposãs  zWave_read.setposcCsð|jrN|jjddƒ|j|j}|rE|jj|dƒd|_|dkr^dS|jj||jƒ}|jdkrªtjdkrªt j ||jƒ}|j rÈ|rÈ|j |ƒ}|jt |ƒ|j |j|_|S)Nrór Úbig)rrÚseekrrrr5ÚsysÚ byteorderÚaudioopÚbyteswaprÚlenr2)rÚnframesrAÚdatarrr Ú readframesés   $zWave_read.readframescCs«tjd|jdƒƒ\}|_|_}}|tkrotjd|jdƒƒd}|dd|_ntd|fƒ‚|j|j|_d |_ d |_ dS) Nzr@rBrMrrrrr 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):Ú Wave_writec Csid|_t|tƒr3tj|dƒ}||_y|j|ƒWn|jr]|jƒ‚YnXdS)NÚwb)r$r%r&r'rr"r()rr)rrr r*#s    zWave_write.__init__cCs^||_d|_d|_d|_d|_d|_d|_d|_d|_d|_ dS)NrF) rrr2r5r7rÚ_nframeswrittenÚ _datawrittenÚ _datalengthÚ_headerwritten)rr rrr r"/s         zWave_write.initfpcCs|jƒdS)N)r()rrrr r+;szWave_write.__del__cCs|S)Nr)rrrr r,>szWave_write.__enter__cGs|jƒdS)N)r()rr-rrr r.AszWave_write.__exit__cCs:|jrtdƒ‚|dkr-tdƒ‚||_dS)Nz0cannot change parameters after starting to writer zbad # of channels)rZrr2)rÚ nchannelsrrr Ú setnchannelsGs     zWave_write.setnchannelscCs|jstdƒ‚|jS)Nznumber of channels not set)r2r)rrrr r3Ns  zWave_write.getnchannelscCsF|jrtdƒ‚|dks-|dkr9tdƒ‚||_dS)Nz0cannot change parameters after starting to writer rzbad sample width)rZrr5)rrVrrr Ú setsampwidthSs    zWave_write.setsampwidthcCs|jstdƒ‚|jS)Nzsample width not set)r5r)rrrr r6Zs  zWave_write.getsampwidthcCsF|jrtdƒ‚|dkr-tdƒ‚tt|ƒƒ|_dS)Nz0cannot change parameters after starting to writerzbad frame rate)rZrÚintÚroundr7)rÚ frameraterrr Ú setframerate_s     zWave_write.setframeratecCs|jstdƒ‚|jS)Nzframe rate not set)r7r)rrrr r8fs  zWave_write.getframeratecCs"|jrtdƒ‚||_dS)Nz0cannot change parameters after starting to write)rZrr)rrKrrr Ú setnframesks  zWave_write.setnframescCs|jS)N)rY)rrrr r4pszWave_write.getnframescCsC|jrtdƒ‚|dkr-tdƒ‚||_||_dS)Nz0cannot change parameters after starting to writerRzunsupported compression type)rR)rZrr9r;)rÚcomptypeÚcompnamerrr Ú setcomptypess      zWave_write.setcomptypecCs|jS)N)r9)rrrr r:{szWave_write.getcomptypecCs|jS)N)r;)rrrr r<~szWave_write.getcompnamecCsu|\}}}}}}|jr-tdƒ‚|j|ƒ|j|ƒ|j|ƒ|j|ƒ|j||ƒdS)Nz0cannot change parameters after starting to write)rZrr^r_rcrdrg)rÚparamsr]rVrbrKrerfrrr Ú setparams�s      zWave_write.setparamscCsU|j s|j s|j r*tdƒ‚t|j|j|j|j|j|jƒS)Nznot all parameters set)r2r5r7rrrr9r;)rrrr r=‹s zWave_write.getparamscCstdƒ‚dS)Nzsetmark() not supported)r)rr?rAÚnamerrr Úsetmark‘szWave_write.setmarkcCstdƒ‚dS)Nzno marks)r)rr?rrr r@”szWave_write.getmarkcCsdS)Nr)rrrr r>—szWave_write.getmarkerscCs|jS)N)rY)rrrr r1šszWave_write.tellcCsÛt|ttfƒs*t|ƒjdƒ}|jt|ƒƒt|ƒ|j|j}|j ro|j |ƒ}|jdkr¢t j dkr¢t j ||jƒ}|jj|ƒ|jt|ƒ7_|j||_dS)NÚBr rD)r%ÚbytesÚ bytearrayÚ memoryviewÚcastÚ_ensure_header_writtenrJr5r2rrFrGrHrIrÚwriterZrY)rrLrKrrr Úwriteframesraw�s zWave_write.writeframesrawcCs-|j|ƒ|j|jkr)|jƒdS)N)rsr[rZÚ _patchheader)rrLrrr Ú writeframesªs zWave_write.writeframesc CsvzC|jrB|jdƒ|j|jkr5|jƒ|jjƒWdd|_|j}|rqd|_|jƒXdS)Nr)rrqr[rZrtÚflushr$r()rr rrr r(¯s      zWave_write.closecCsY|jsU|jstdƒ‚|js3tdƒ‚|jsHtdƒ‚|j|ƒdS)Nz# channels not specifiedzsample width not specifiedzsampling rate not specified)r\r2rr5r7Ú _write_header)rZdatasizerrr rqÁs       z!Wave_write._ensure_header_writtencCs:|jjdƒ|js0||j|j|_|j|j|j|_y|jjƒ|_Wn!tt fk rƒd|_YnX|jjt j dd|jdddt |j|j |j|j |j|j|j|jddƒ ƒ|jdk r|jjƒ|_|jjt j d |jƒƒd |_dS) NsRIFFzr1rsrur(rqrwrtrrrr rW s8                       rWcCsi|dkr-t|dƒr'|j}nd}|dkrCt|ƒS|dkrYt|ƒStdƒ‚dS) NÚmoder#ÚrÚwrXz$mode must be 'r', 'rb', 'w', or 'wb')r€r#)r�rX)ÚhasattrrrrWr)r)rrrr rìs      )Nr r Nr )r'Ú__all__Ú ExceptionrrUZ _array_fmtsrHrSrFr!rÚ collectionsrrrrWrrrrrr ÚJs     «ã