grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B ï?mÖ¤Rã@s¤ddlZdddddgZGdd„deƒZdZd ZddlZddlZddlZdd l m Z dd l m Z ddl Z e d d ƒZGdd„dƒZGdd„dƒZddd„Zddd„ZdS)éNÚopenÚopenfpÚErrorÚ Wave_readÚ Wave_writec@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú)/opt/alt/python37/lib64/python3.7/wave.pyrNsé)NÚbÚhNÚ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),rcCsþd|_d|_t|dd�|_|j ¡dkr0tdƒ‚|j d¡dkrHtdƒ‚d|_d|_x�d|_ yt|jdd�}Wnt k r„PYnX| ¡}|d kr¨|  |¡d|_n2|d krÚ|js¾td ƒ‚||_|j |j |_d|_ P| ¡qVW|jrò|jsútd ƒ‚dS) Nr)Z 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_chunkZ chunksizeÚ _framesizeÚ_nframesÚskip)ÚselfÚfileÚchunkZ chunknamer r r Úinitfp~s:   zWave_read.initfpcCsRd|_t|tƒr"t |d¡}||_y| |¡Wn|jrF| ¡‚YnXdS)NÚrb)Ú_i_opened_the_fileÚ isinstanceÚstrÚbuiltinsrr"Úclose)rÚfr r r Ú__init__�s  zWave_read.__init__cCs | ¡dS)N)r()rr r r Ú__del__ªszWave_read.__del__cCs|S)Nr )rr r r Ú __enter__­szWave_read.__enter__cGs | ¡dS)N)r()rÚargsr r r Ú__exit__°szWave_read.__exit__cCs|jS)N)r)rr r r Úgetfp¶szWave_read.getfpcCsd|_d|_dS)Nr r)rr)rr r r Úrewind¹szWave_read.rewindcCs"d|_|j}|rd|_| ¡dS)N)rr$r()rr r r r r(½s zWave_read.closecCs|jS)N)r)rr r r ÚtellÄszWave_read.tellcCs|jS)N)Ú _nchannels)rr r r Ú getnchannelsÇszWave_read.getnchannelscCs|jS)N)r)rr r r Ú getnframesÊszWave_read.getnframescCs|jS)N)Ú _sampwidth)rr r r Ú getsampwidthÍszWave_read.getsampwidthcCs|jS)N)Ú _framerate)rr r r Ú getframerateÐszWave_read.getframeratecCs|jS)N)Ú _comptype)rr r r Ú getcomptypeÓszWave_read.getcomptypecCs|jS)N)Ú _compname)rr r r Ú getcompnameÖszWave_read.getcompnamecCs*t| ¡| ¡| ¡| ¡| ¡| ¡ƒS)N)rr3r6r8r4r:r<)rr r r Ú getparamsÙs zWave_read.getparamscCsdS)Nr )rr 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 )rrrr)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Úseekrrrr5ÚsysÚ byteorderÚaudioopÚbyteswaprÚlenr2)rÚnframesrAÚdatar r r Ú readframesês   zWave_read.readframescCsÚy$t d| d¡¡\}|_|_}}Wntjk r@td‚YnX|tkr yt d| d¡¡d}Wntjk r€td‚YnX|dd|_|js®t dƒ‚nt d |fƒ‚|js¼t d ƒ‚|j|j|_ d |_ d |_ dS) Nzr@rBrMrr r r r r_s* c@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¡}||_y| |¡Wn|jrF| ¡‚YnXdS)NÚwb)r$r%r&r'rr"r()rr)r r r r*.s  zWave_write.__init__cCs@||_d|_d|_d|_d|_d|_d|_d|_d|_d|_ dS)NrF) rrr2r5r7rÚ_nframeswrittenÚ _datawrittenÚ _datalengthÚ_headerwritten)rr r r r r":szWave_write.initfpcCs | ¡dS)N)r()rr r r r+FszWave_write.__del__cCs|S)Nr )rr r r r,IszWave_write.__enter__cGs | ¡dS)N)r()rr-r r r r.LszWave_write.__exit__cCs(|jrtdƒ‚|dkrtdƒ‚||_dS)Nz0cannot change parameters after starting to writer zbad # of channels)rZrr2)rÚ nchannelsr r r Ú setnchannelsRs zWave_write.setnchannelscCs|jstdƒ‚|jS)Nznumber of channels not set)r2r)rr r r r3YszWave_write.getnchannelscCs0|jrtdƒ‚|dks|dkr&tdƒ‚||_dS)Nz0cannot change parameters after starting to writer rzbad sample width)rZrr5)rrWr r r Ú setsampwidth^s zWave_write.setsampwidthcCs|jstdƒ‚|jS)Nzsample width not set)r5r)rr r r r6eszWave_write.getsampwidthcCs0|jrtdƒ‚|dkrtdƒ‚tt|ƒƒ|_dS)Nz0cannot change parameters after starting to writerzbad frame rate)rZrÚintÚroundr7)rÚ framerater r r Ú setframeratejs zWave_write.setframeratecCs|jstdƒ‚|jS)Nzframe rate not set)r7r)rr r r r8qszWave_write.getframeratecCs|jrtdƒ‚||_dS)Nz0cannot change parameters after starting to write)rZrr)rrKr r r Ú setnframesvszWave_write.setnframescCs|jS)N)rY)rr r r r4{szWave_write.getnframescCs.|jrtdƒ‚|dkrtdƒ‚||_||_dS)Nz0cannot change parameters after starting to write)rRzunsupported compression type)rZrr9r;)rÚcomptypeÚcompnamer r r Ú setcomptype~s zWave_write.setcomptypecCs|jS)N)r9)rr r r r:†szWave_write.getcomptypecCs|jS)N)r;)rr r r r<‰szWave_write.getcompnamecCsV|\}}}}}}|jrtdƒ‚| |¡| |¡| |¡| |¡| ||¡dS)Nz0cannot change parameters after starting to write)rZrr^r_rcrdrg)rÚparamsr]rWrbrKrerfr r r Ú setparamsŒs    zWave_write.setparamscCs8|jr|jr|jstdƒ‚t|j|j|j|j|j|jƒS)Nznot all parameters set)r2r5r7rrrr9r;)rr r r r=–szWave_write.getparamscCs tdƒ‚dS)Nzsetmark() not supported)r)rr?rAÚnamer r r ÚsetmarkœszWave_write.setmarkcCs tdƒ‚dS)Nzno marks)r)rr?r r r r@ŸszWave_write.getmarkcCsdS)Nr )rr r r r>¢szWave_write.getmarkerscCs|jS)N)rY)rr r r r1¥szWave_write.tellcCsžt|ttfƒst|ƒ d¡}| t|ƒ¡t|ƒ|j|j}|j rN|  |¡}|jdkrpt j dkrpt   ||j¡}|j |¡|jt|ƒ7_|j||_dS)NÚBr rD)r%ÚbytesÚ bytearrayÚ memoryviewÚcastÚ_ensure_header_writtenrJr5r2rrFrGrHrIrÚwriterZrY)rrLrKr r r Úwriteframesraw¨s  zWave_write.writeframesrawcCs"| |¡|j|jkr| ¡dS)N)rsr[rZÚ _patchheader)rrLr r r Ú writeframesµs  zWave_write.writeframescCsXz2|jr0| d¡|j|jkr&| ¡|j ¡Wdd|_|j}|rRd|_| ¡XdS)Nr)rrqr[rZrtÚflushr$r()rr r r r r(ºs  zWave_write.closecCs>|js:|jstdƒ‚|js"tdƒ‚|js0tdƒ‚| |¡dS)Nz# channels not specifiedzsample width not specifiedzsampling rate not specified)r\r2rr5r7Ú _write_header)rZdatasizer r r rqÌsz!Wave_write._ensure_header_writtencCsì|j d¡|js$||j|j|_|j|j|j|_y|j ¡|_Wntt fk rfd|_YnX|j t   dd|jdddt |j|j |j|j |j|j|j|jdd¡ ¡|jdk rÌ|j ¡|_|j t   d |j¡¡d |_dS) NsRIFFzr1rsrur(rqrwrtr r r r rs8     cCsJ|dkrt|dƒr|j}nd}|dkr.t|ƒS|dkr>t|ƒStdƒ‚dS)NÚmoder#)Úrr#)ÚwrXz$mode must be 'r', 'rb', 'w', or 'wb')Úhasattrrrrr)r)rr r r r÷s cCstjdtdd�t||d�S)NzBwave.openfp is deprecated since Python 3.7. Use wave.open instead.rO)Ú stacklevel)r)ÚwarningsÚwarnÚDeprecationWarningr)r)rr r r rs )N)N)r'Ú__all__Ú ExceptionrrVZ _array_fmtsrHrSrFr!rÚ collectionsrr„rrrrrr r r r ÚJs$  6d