
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a6G  ã                   @   s¤   d dl Z dddddgZG dd„ deƒZdZd	Zd dlZd dlZd dlZd d
l	m
Z
 d dlmZ d dlZeddƒZG dd„ dƒZG dd„ dƒZddd„Zddd„ZdS )é    NÚopenÚopenfpÚErrorÚ	Wave_readÚ
Wave_writec                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r
   r
   ú)/opt/alt/python38/lib64/python3.8/wave.pyr   N   s   é   )NÚbÚhNÚi)ÚChunk)Ú
namedtupleÚ_wave_paramsz7nchannels sampwidth framerate nframes comptype compnamec                   @   s´   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+S ),r   c                 C   sü   d | _ d| _t|dd�| _| j ¡ dkr0tdƒ‚| j d¡dkrHtdƒ‚d| _d | _d| _	zt| jdd�}W n t
k
r„   Y qäY nX | ¡ }|d	kr¨|  |¡ d| _n2|d
krÚ| js¾tdƒ‚|| _|j| j | _d| _	qä| ¡  qT| jrð| jsøtdƒ‚d S )Nr   )Z	bigendianó   RIFFz file does not start with RIFF idé   ó   WAVEznot a WAVE filer   ó   fmt ó   datazdata chunk before fmt chunkz#fmt chunk and/or data chunk missing)Ú_convertÚ	_soundposr   Ú_fileZgetnamer   Ú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    


zWave_read.initfpc                 C   sR   d | _ t|tƒr"t |d¡}|| _ z|  |¡ W n   | j rF| ¡  ‚ Y nX d S )NÚrb©Ú_i_opened_the_fileÚ
isinstanceÚstrÚbuiltinsr   r&   Úclose©r#   Úfr
   r
   r   Ú__init__�   s    
zWave_read.__init__c                 C   s   |   ¡  d S ©N©r-   ©r#   r
   r
   r   Ú__del__ª   s    zWave_read.__del__c                 C   s   | S r1   r
   r3   r
   r
   r   Ú	__enter__­   s    zWave_read.__enter__c                 G   s   |   ¡  d S r1   r2   ©r#   Úargsr
   r
   r   Ú__exit__°   s    zWave_read.__exit__c                 C   s   | j S r1   )r   r3   r
   r
   r   Úgetfp¶   s    zWave_read.getfpc                 C   s   d| _ d| _d S )Nr   r   )r   r   r3   r
   r
   r   Úrewind¹   s    zWave_read.rewindc                 C   s"   d | _ | j}|rd | _| ¡  d S r1   )r   r)   r-   ©r#   r$   r
   r
   r   r-   ½   s
    zWave_read.closec                 C   s   | j S r1   )r   r3   r
   r
   r   ÚtellÄ   s    zWave_read.tellc                 C   s   | j S r1   )Ú
_nchannelsr3   r
   r
   r   ÚgetnchannelsÇ   s    zWave_read.getnchannelsc                 C   s   | j S r1   )r!   r3   r
   r
   r   Ú
getnframesÊ   s    zWave_read.getnframesc                 C   s   | j S r1   )Ú
_sampwidthr3   r
   r
   r   ÚgetsampwidthÍ   s    zWave_read.getsampwidthc                 C   s   | j S r1   )Ú
_framerater3   r
   r
   r   ÚgetframerateÐ   s    zWave_read.getframeratec                 C   s   | j S r1   ©Ú	_comptyper3   r
   r
   r   ÚgetcomptypeÓ   s    zWave_read.getcomptypec                 C   s   | j S r1   ©Ú	_compnamer3   r
   r
   r   ÚgetcompnameÖ   s    zWave_read.getcompnamec                 C   s*   t |  ¡ |  ¡ |  ¡ |  ¡ |  ¡ |  ¡ ƒS r1   )r   r>   rA   rC   r?   rF   rI   r3   r
   r
   r   Ú	getparamsÙ   s      þzWave_read.getparamsc                 C   s   d S r1   r
   r3   r
   r
   r   Ú
getmarkersÞ   s    zWave_read.getmarkersc                 C   s   t dƒ‚d S ©Nzno marks©r   ©r#   Úidr
   r
   r   Úgetmarká   s    zWave_read.getmarkc                 C   s*   |dk s|| j krtdƒ‚|| _d| _d S )Nr   zposition not in ranger   )r!   r   r   r   )r#   Úposr
   r
   r   Úsetposä   s    zWave_read.setposc                 C   s¬   | j r8| j dd¡ | j| j }|r2| j |d¡ d| _ |dkrDdS | j || j ¡}| jdkrxtjdkrxt	 
|| j¡}| jrŒ|rŒ|  |¡}| jt|ƒ| j| j   | _|S )Nr   ó    r   Úbig)r   r   Úseekr   r    r   r@   ÚsysÚ	byteorderÚaudioopÚbyteswapr   Úlenr=   )r#   ÚnframesrQ   Údatar
   r
   r   Ú
readframesê   s    

zWave_read.readframesc                 C   sÚ   z$t  d| d¡¡\}| _| _}}W n t jk
r@   td ‚Y nX |tkr zt  d| d¡¡d }W n t jk
r€   td ‚Y nX |d d | _| js®t	dƒ‚nt	d	|f ƒ‚| js¼t	d
ƒ‚| j| j | _
d| _d| _d S )Nz<HHLLHé   z<Hé   r   é   é   úbad sample widthzunknown format: %rúbad # of channelsÚNONEznot compressed)ÚstructZunpack_fromr   r=   rB   Úerrorr   ÚWAVE_FORMAT_PCMr@   r   r    rE   rH   )r#   r%   Z
wFormatTagZdwAvgBytesPerSecZwBlockAlignÚ	sampwidthr
   r
   r   r   ÿ   s$    $
zWave_read._read_fmt_chunkN)r   r   r	   r&   r0   r4   r5   r8   r9   r:   r-   r<   r>   r?   rA   rC   rF   rI   rJ   rK   rP   rR   r]   r   r
   r
   r
   r   r   _   s*   c                   @   sì   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9S ):r   c                 C   sR   d | _ t|tƒr"t |d¡}|| _ z|  |¡ W n   | j rF| ¡  ‚ Y nX d S )NÚwbr(   r.   r
   r
   r   r0   .  s    
zWave_write.__init__c                 C   s@   || _ d | _d| _d| _d| _d| _d| _d| _d| _d| _	d S )Nr   F)
r   r   r=   r@   rB   r!   Ú_nframeswrittenÚ_datawrittenÚ_datalengthÚ_headerwrittenr;   r
   r
   r   r&   :  s    zWave_write.initfpc                 C   s   |   ¡  d S r1   r2   r3   r
   r
   r   r4   F  s    zWave_write.__del__c                 C   s   | S r1   r
   r3   r
   r
   r   r5   I  s    zWave_write.__enter__c                 G   s   |   ¡  d S r1   r2   r6   r
   r
   r   r8   L  s    zWave_write.__exit__c                 C   s(   | j rtdƒ‚|dk rtdƒ‚|| _d S )Nú0cannot change parameters after starting to writer   rc   )rk   r   r=   )r#   Ú	nchannelsr
   r
   r   ÚsetnchannelsR  s
    zWave_write.setnchannelsc                 C   s   | j stdƒ‚| j S )Nznumber of channels not set)r=   r   r3   r
   r
   r   r>   Y  s    zWave_write.getnchannelsc                 C   s0   | j rtdƒ‚|dk s|dkr&tdƒ‚|| _d S )Nrn   r   r   rb   )rk   r   r@   )r#   rh   r
   r
   r   Úsetsampwidth^  s
    zWave_write.setsampwidthc                 C   s   | j stdƒ‚| j S )Nzsample width not set)r@   r   r3   r
   r
   r   rA   e  s    zWave_write.getsampwidthc                 C   s0   | j rtdƒ‚|dkrtdƒ‚tt|ƒƒ| _d S )Nrn   r   zbad frame rate)rk   r   ÚintÚroundrB   )r#   Ú	framerater
   r
   r   Úsetframeratej  s
    zWave_write.setframeratec                 C   s   | j stdƒ‚| j S )Nzframe rate not set)rB   r   r3   r
   r
   r   rC   q  s    zWave_write.getframeratec                 C   s   | j rtdƒ‚|| _d S ©Nrn   )rk   r   r!   )r#   r[   r
   r
   r   Ú
setnframesv  s    zWave_write.setnframesc                 C   s   | j S r1   ©rj   r3   r
   r
   r   r?   {  s    zWave_write.getnframesc                 C   s.   | j rtdƒ‚|dkrtdƒ‚|| _|| _d S )Nrn   )rd   zunsupported compression type)rk   r   rE   rH   )r#   ÚcomptypeÚcompnamer
   r
   r   Úsetcomptype~  s    zWave_write.setcomptypec                 C   s   | j S r1   rD   r3   r
   r
   r   rF   †  s    zWave_write.getcomptypec                 C   s   | j S r1   rG   r3   r
   r
   r   rI   ‰  s    zWave_write.getcompnamec                 C   sV   |\}}}}}}| j rtdƒ‚|  |¡ |  |¡ |  |¡ |  |¡ |  ||¡ d S rv   )rk   r   rp   rq   ru   rw   r{   )r#   Zparamsro   rh   rt   r[   ry   rz   r
   r
   r   Ú	setparamsŒ  s    



zWave_write.setparamsc                 C   s8   | j r| jr| jstdƒ‚t| j | j| j| j| j| jƒS )Nznot all parameters set)r=   r@   rB   r   r   r!   rE   rH   r3   r
   r
   r   rJ   –  s      ÿzWave_write.getparamsc                 C   s   t dƒ‚d S )Nzsetmark() not supportedrM   )r#   rO   rQ   Únamer
   r
   r   Úsetmarkœ  s    zWave_write.setmarkc                 C   s   t dƒ‚d S rL   rM   rN   r
   r
   r   rP   Ÿ  s    zWave_write.getmarkc                 C   s   d S r1   r
   r3   r
   r
   r   rK   ¢  s    zWave_write.getmarkersc                 C   s   | j S r1   rx   r3   r
   r
   r   r<   ¥  s    zWave_write.tellc                 C   sž   t |ttfƒst|ƒ d¡}|  t|ƒ¡ t|ƒ| j| j  }| j	rN|  	|¡}| jdkrpt
jdkrpt || j¡}| j |¡ |  jt|ƒ7  _| j| | _d S )NÚBr   rT   )r*   ÚbytesÚ	bytearrayÚ
memoryviewÚcastÚ_ensure_header_writtenrZ   r@   r=   r   rV   rW   rX   rY   r   Úwriterk   rj   )r#   r\   r[   r
   r
   r   Úwriteframesraw¨  s    
zWave_write.writeframesrawc                 C   s"   |   |¡ | j| jkr|  ¡  d S r1   )r†   rl   rk   Ú_patchheader)r#   r\   r
   r
   r   Úwriteframesµ  s    
zWave_write.writeframesc                 C   sX   z2| j r0|  d¡ | j| jkr&|  ¡  | j  ¡  W 5 d | _ | j}|rRd | _| ¡  X d S )Nr   )r   r)   r-   r„   rl   rk   r‡   Úflushr;   r
   r
   r   r-   º  s    
zWave_write.closec                 C   s>   | j s:| jstdƒ‚| js"tdƒ‚| js0tdƒ‚|  |¡ d S )Nz# channels not specifiedzsample width not specifiedzsampling rate not specified)rm   r=   r   r@   rB   Ú_write_header)r#   Zdatasizer
   r
   r   r„   Ì  s    z!Wave_write._ensure_header_writtenc                 C   sì   | j  d¡ | js$|| j| j  | _| j| j | j | _z| j  ¡ | _W n tt	fk
rf   d | _Y nX | j  t
 dd| j dddt| j| j| j| j | j | j| j | jd d¡¡ | jd k	rÌ| j  ¡ | _| j  t
 d	| j¡¡ d
| _d S )Nr   z<L4s4sLHHLLHH4sé$   r   r   é   ra   r   ú<LT)r   r…   r!   r=   r@   rl   r<   Ú_form_length_posÚAttributeErrorÚOSErrorre   Úpackrg   rB   Ú_data_length_posrm   )r#   Z
initlengthr
   r
   r   rŠ   Ö  s2         
 û
zWave_write._write_headerc                 C   s„   | j | jkrd S | j ¡ }| j | jd¡ | j t dd| j  ¡¡ | j | j	d¡ | j t d| j ¡¡ | j |d¡ | j | _d S )Nr   r�   r‹   )
rk   rl   r   r<   rU   rŽ   r…   re   r‘   r’   )r#   Zcurposr
   r
   r   r‡   ë  s    
zWave_write._patchheaderN)r   r   r	   r0   r&   r4   r5   r8   rp   r>   rq   rA   ru   rC   rw   r?   r{   rF   rI   r|   rJ   r~   rP   rK   r<   r†   rˆ   r-   r„   rŠ   r‡   r
   r
   r
   r   r     s8   

c                 C   sJ   |d krt | dƒr| j}nd}|dkr.t| ƒS |dkr>t| ƒS tdƒ‚d S )NÚmoder'   )Úrr'   )Úwri   z$mode must be 'r', 'rb', 'w', or 'wb')Úhasattrr“   r   r   r   ©r/   r“   r
   r
   r   r   ÷  s    
c                 C   s   t jdtdd� t| |d�S )NzBwave.openfp is deprecated since Python 3.7. Use wave.open instead.r_   )Ú
stacklevel)r“   )ÚwarningsÚwarnÚDeprecationWarningr   r—   r
   r
   r   r     s
     ÿ)N)N)r,   Ú__all__Ú	Exceptionr   rg   Z_array_fmtsrX   re   rV   r%   r   Úcollectionsr   r™   r   r   r   r   r   r
   r
   r
   r   Ú<module>J   s&   ÿ 6 d
