
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \Æ~  ã               @   s:  d dl Z d dlZd dlZdddgZG dd„ deƒZdZdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ 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 lmZ d d!lmZ ed"d#ƒZd$ej_d%ej_d&ej_d'ej_d(ej_d)ej_G d*d+„ d+ƒZ G d,d-„ d-ƒZ!d?d.d„Z"e"Z#e$d/k�r6d dl%Z%e%j&d0d… �sDe%j&j'd1ƒ e%j&d0 Z(e"e(d2ƒ�ØZ)e*d3e(ƒ e*d4e)j+ƒ ƒ e*d5e)j,ƒ ƒ e*d6e)j-ƒ ƒ e*d7e)j.ƒ ƒ e*d8e)j/ƒ ƒ e*d9e)j0ƒ ƒ e%j&d:d… �r,e%j&d: Z1e*d;e1ƒ e"e1d<ƒ�8Z2e2j3e)j4ƒ ƒ x"e)j5d=ƒZ6e6�s
P e2j7e6ƒ �qøW W dQ R X e*d>ƒ W dQ R X dS )@é    NÚErrorÚopenÚopenfpc               @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú/usr/lib64/python3.6/aifc.pyr   �   s   l   @Q E c             C   s6   yt jd| jdƒƒd S  t jk
r0   t‚Y nX d S )Nz>lé   r   )ÚstructÚunpackÚreadÚerrorÚEOFError)Úfiler   r   r	   Ú
_read_long”   s    r   c             C   s6   yt jd| jdƒƒd S  t jk
r0   t‚Y nX d S )Nz>Lr
   r   )r   r   r   r   r   )r   r   r   r	   Ú_read_ulongš   s    r   c             C   s6   yt jd| jdƒƒd S  t jk
r0   t‚Y nX d S )Nz>hé   r   )r   r   r   r   r   )r   r   r   r	   Ú_read_short    s    r   c             C   s6   yt jd| jdƒƒd S  t jk
r0   t‚Y nX d S )Nz>Hr   r   )r   r   r   r   r   )r   r   r   r	   Ú_read_ushort¦   s    r   c             C   s@   t | jdƒƒ}|dkrd}n
| j|ƒ}|d@ dkr<| jdƒ}|S )Né   r   ó    )Úordr   )r   ÚlengthÚdataÚdummyr   r   r	   Ú_read_string¬   s    

r   gâÿÿÿÿÿïc             C   s�   t | ƒ}d}|dk r d
}|d }t| ƒ}t| ƒ}||  koL|  koLdkn  rXd} n0|dkrft} n"|d }|d | td|d	 ƒ } ||  S )Nr   r   i €  g        iÿ  iÿ?  l        g       @é?   éÿÿÿÿ)r   r   Ú	_HUGE_VALÚpow)ÚfÚexponÚsignÚhimantÚlomantr   r   r	   Ú_read_float¸   s    "r&   c             C   s   | j tjd|ƒƒ d S )Nz>h)Úwriter   Úpack)r!   Úxr   r   r	   Ú_write_shortÉ   s    r*   c             C   s   | j tjd|ƒƒ d S )Nz>H)r'   r   r(   )r!   r)   r   r   r	   Ú_write_ushortÌ   s    r+   c             C   s   | j tjd|ƒƒ d S )Nz>l)r'   r   r(   )r!   r)   r   r   r	   Ú_write_longÏ   s    r,   c             C   s   | j tjd|ƒƒ d S )Nz>L)r'   r   r(   )r!   r)   r   r   r	   Ú_write_ulongÒ   s    r-   c             C   sR   t |ƒdkrtdƒ‚| jtjdt |ƒƒƒ | j|ƒ t |ƒd@ dkrN| jdƒ d S )Néÿ   z%string exceeds maximum pstring lengthÚBr   r   ó    )ÚlenÚ
ValueErrorr'   r   r(   )r!   Úsr   r   r	   Ú_write_stringÕ   s    
r4   c       	      C   sú   dd l }|dk rd}|d }nd}|dkr8d}d}d}n |j|ƒ\}}|dks^|dks^||krp|dB }d}d}nh|d }|dk r�|j||ƒ}d}||B }|j|dƒ}|j|ƒ}t|ƒ}|j|| dƒ}|j|ƒ}t|ƒ}t| |ƒ t| |ƒ t| |ƒ d S )	Nr   i €  r   i @  iÿ  iþ?  é    r   )ÚmathZfrexpZldexpZfloorÚintr+   r-   )	r!   r)   r6   r#   r"   r$   r%   ZfmantZfsmantr   r   r	   Ú_write_floatÝ   s8    




r8   )ÚChunk)Ú
namedtupleÚ_aifc_paramsz7nchannels sampwidth framerate nframes comptype compnamez3Number of audio channels (1 for mono, 2 for stereo)zSample width in byteszSampling frequencyzNumber of audio framesz(Compression type ("NONE" for AIFF files)zRA human-readable version of the compression type
('not compressed' for AIFF files)c               @   sÐ   e Zd 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d0d1„ ZdS )2Ú	Aifc_readNc             C   s<  d| _ d | _g | _d| _|| _t|ƒ}|jƒ dkr:tdƒ‚|jdƒ}|dkrTd| _	n|dkrdd| _	ntdƒ‚d| _
d | _x¢d| _yt| jƒ}W n tk
r¤   P Y nX |jƒ }|d	krÈ| j|ƒ d| _
nH|d
krè|| _|jdƒ}d| _n(|dkrüt|ƒ| _ n|dk�r| j|ƒ |jƒ  qzW | j
 �s0| j �r8tdƒ‚d S )Nr   s   FORMz file does not start with FORM idr
   s   AIFFs   AIFCr   znot an AIFF or AIFF-C files   COMMs   SSNDé   s   FVERs   MARKz$COMM chunk and/or SSND chunk missing)Ú_versionÚ_convertÚ_markersÚ	_soundposÚ_filer9   Zgetnamer   r   Ú_aifcZ_comm_chunk_readÚ_ssnd_chunkÚ_ssnd_seek_neededr   Ú_read_comm_chunkr   Ú	_readmarkÚskip)Úselfr   ÚchunkZformdataZ	chunknamer   r   r   r	   Úinitfp4  sJ    




zAifc_read.initfpc          	   C   sL   t |tƒr>tj|dƒ}y| j|ƒ W qH   |jƒ  ‚ Y qHX n
| j|ƒ d S )NÚrb)Ú
isinstanceÚstrÚbuiltinsr   rK   Úclose)rI   r!   Úfile_objectr   r   r	   Ú__init__\  s    

zAifc_read.__init__c             C   s   | S )Nr   )rI   r   r   r	   Ú	__enter__h  s    zAifc_read.__enter__c             G   s   | j ƒ  d S )N)rP   )rI   Úargsr   r   r	   Ú__exit__k  s    zAifc_read.__exit__c             C   s   | j S )N)rB   )rI   r   r   r	   Úgetfpq  s    zAifc_read.getfpc             C   s   d| _ d| _d S )Nr   r   )rE   rA   )rI   r   r   r	   Úrewindt  s    zAifc_read.rewindc             C   s    | j }|d k	rd | _ |jƒ  d S )N)rB   rP   )rI   r   r   r   r	   rP   x  s    zAifc_read.closec             C   s   | j S )N)rA   )rI   r   r   r	   Útell~  s    zAifc_read.tellc             C   s   | j S )N)Ú
_nchannels)rI   r   r   r	   Úgetnchannels�  s    zAifc_read.getnchannelsc             C   s   | j S )N)Ú_nframes)rI   r   r   r	   Ú
getnframes„  s    zAifc_read.getnframesc             C   s   | j S )N)Ú
_sampwidth)rI   r   r   r	   Úgetsampwidth‡  s    zAifc_read.getsampwidthc             C   s   | j S )N)Ú
_framerate)rI   r   r   r	   ÚgetframerateŠ  s    zAifc_read.getframeratec             C   s   | j S )N)Ú	_comptype)rI   r   r   r	   Úgetcomptype�  s    zAifc_read.getcomptypec             C   s   | j S )N)Ú	_compname)rI   r   r   r	   Úgetcompname�  s    zAifc_read.getcompnamec             C   s*   t | jƒ | jƒ | jƒ | jƒ | jƒ | jƒ ƒS )N)r;   rZ   r^   r`   r\   rb   rd   )rI   r   r   r	   Ú	getparams–  s    zAifc_read.getparamsc             C   s   t | jƒdkrd S | jS )Nr   )r1   r@   )rI   r   r   r	   Ú
getmarkers›  s    zAifc_read.getmarkersc             C   s2   x| j D ]}||d kr|S qW tdj|ƒƒ‚d S )Nr   zmarker {0!r} does not exist)r@   r   Úformat)rI   ÚidÚmarkerr   r   r	   Úgetmark   s    zAifc_read.getmarkc             C   s*   |dk s|| j krtdƒ‚|| _d| _d S )Nr   zposition not in ranger   )r[   r   rA   rE   )rI   Úposr   r   r	   Úsetpos¦  s    zAifc_read.setposc             C   s–   | j rD| jjdƒ | jjdƒ}| j| j }|r>| jj|d ƒ d| _ |dkrPdS | jj|| j ƒ}| jrv|rv| j|ƒ}| jt|ƒ| j| j	   | _|S )Nr   r=   r   )
rE   rD   Úseekr   rA   Ú
_framesizer?   r1   rY   r]   )rI   Únframesr   rk   r   r   r   r	   Ú
readframes¬  s    

zAifc_read.readframesc             C   s   dd l }|j|dƒS )Nr   r   )ÚaudioopZalaw2lin)rI   r   rq   r   r   r	   Ú	_alaw2linÁ  s    zAifc_read._alaw2linc             C   s   dd l }|j|dƒS )Nr   r   )rq   Zulaw2lin)rI   r   rq   r   r   r	   Ú	_ulaw2linÅ  s    zAifc_read._ulaw2linc             C   s2   dd l }t| dƒsd | _|j|d| jƒ\}| _|S )Nr   Ú_adpcmstater   )rq   Úhasattrrt   Z	adpcm2lin)rI   r   rq   r   r   r	   Ú
_adpcm2linÉ  s
    
zAifc_read._adpcm2linc             C   s.  t |ƒ| _t|ƒ| _t |ƒd d | _tt|ƒƒ| _| j| j | _| j	�rd}|j
dkrld}tjdƒ d|_
|jdƒ| _|rºt|jjdƒƒ}|d@ dkr |d }|j
| |_
|jjddƒ t|ƒ| _| jd	k�r*| jd
krä| j| _n2| jdkrø| j| _n| jdk�r| j| _ntdƒ‚d| _nd	| _d| _d S )Né   r=   r   é   r   zWarning: bad COMM chunk sizeé   r
   s   NONEs   G722ó   ulawó   ULAWó   alawó   ALAWzunsupported compression typer   s   not compressedr   )rz   r{   )r|   r}   )r   rY   r   r[   r]   r7   r&   r_   rn   rC   Z	chunksizeÚwarningsÚwarnr   ra   r   r   rm   r   rc   rv   r?   rs   rr   r   )rI   rJ   Zkludger   r   r   r	   rF   Ñ  s<    









zAifc_read._read_comm_chunkc             C   sš   t |ƒ}yHxBt|ƒD ]6}t |ƒ}t|ƒ}t|ƒ}|s8|r| jj|||fƒ qW W nD tk
r”   dt| jƒt| jƒdkr|dnd|f }tj	|ƒ Y nX d S )Nz;Warning: MARK chunk contains only %s marker%s instead of %sr   Ú r3   )
r   Úranger   r   r@   Úappendr   r1   r~   r   )rI   rJ   ZnmarkersÚirh   rk   ÚnameÚwr   r   r	   rG   ÷  s    zAifc_read._readmark)r   r   r   rB   rK   rR   rS   rU   rV   rW   rP   rX   rZ   r\   r^   r`   rb   rd   re   rf   rj   rl   rp   rr   rs   rv   rF   rG   r   r   r   r	   r<     s2   $(&r<   c               @   s0  e Zd 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d0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Z d<d=„ Z!d>d?„ Z"d@dA„ Z#dBdC„ Z$dDdE„ Z%dFdG„ Z&dHdI„ Z'dS )JÚ
Aifc_writeNc          	   C   s\   t |tƒrNtj|dƒ}y| j|ƒ W n   |jƒ  ‚ Y nX |jdƒrXd| _n
| j|ƒ d S )NÚwbz.aiffr   )rM   rN   rO   r   rK   rP   ÚendswithrC   )rI   r!   rQ   r   r   r	   rR   +  s    

zAifc_write.__init__c             C   s^   || _ t| _d| _d| _d | _d| _d| _d| _d| _	d| _
d| _d| _g | _d| _d| _d S )Ns   NONEs   not compressedr   r   )rB   Ú_AIFC_versionr>   ra   rc   r?   rY   r]   r_   r[   Ú_nframeswrittenÚ_datawrittenÚ_datalengthr@   Ú_marklengthrC   )rI   r   r   r   r	   rK   ;  s    zAifc_write.initfpc             C   s   | j ƒ  d S )N)rP   )rI   r   r   r	   Ú__del__L  s    zAifc_write.__del__c             C   s   | S )Nr   )rI   r   r   r	   rS   O  s    zAifc_write.__enter__c             G   s   | j ƒ  d S )N)rP   )rI   rT   r   r   r	   rU   R  s    zAifc_write.__exit__c             C   s   | j rtdƒ‚d| _d S )Nz0cannot change parameters after starting to writer   )rŠ   r   rC   )rI   r   r   r	   ÚaiffX  s    zAifc_write.aiffc             C   s   | j rtdƒ‚d| _d S )Nz0cannot change parameters after starting to writer   )rŠ   r   rC   )rI   r   r   r	   Úaifc]  s    zAifc_write.aifcc             C   s(   | j rtdƒ‚|dk rtdƒ‚|| _d S )Nz0cannot change parameters after starting to writer   zbad # of channels)rŠ   r   rY   )rI   Ú	nchannelsr   r   r	   Úsetnchannelsb  s
    zAifc_write.setnchannelsc             C   s   | j stdƒ‚| j S )Nznumber of channels not set)rY   r   )rI   r   r   r	   rZ   i  s    zAifc_write.getnchannelsc             C   s0   | j rtdƒ‚|dk s|dkr&tdƒ‚|| _d S )Nz0cannot change parameters after starting to writer   r
   zbad sample width)rŠ   r   r]   )rI   Ú	sampwidthr   r   r	   Úsetsampwidthn  s
    zAifc_write.setsampwidthc             C   s   | j stdƒ‚| j S )Nzsample width not set)r]   r   )rI   r   r   r	   r^   u  s    zAifc_write.getsampwidthc             C   s(   | j rtdƒ‚|dkrtdƒ‚|| _d S )Nz0cannot change parameters after starting to writer   zbad frame rate)rŠ   r   r_   )rI   Ú	framerater   r   r	   Úsetframeratez  s
    zAifc_write.setframeratec             C   s   | j stdƒ‚| j S )Nzframe rate not set)r_   r   )rI   r   r   r	   r`   �  s    zAifc_write.getframeratec             C   s   | j rtdƒ‚|| _d S )Nz0cannot change parameters after starting to write)rŠ   r   r[   )rI   ro   r   r   r	   Ú
setnframes†  s    zAifc_write.setnframesc             C   s   | j S )N)rŠ   )rI   r   r   r	   r\   ‹  s    zAifc_write.getnframesc             C   s.   | j rtdƒ‚|d	krtdƒ‚|| _|| _d S )
Nz0cannot change parameters after starting to writeó   NONEó   ulawó   ULAWó   alawó   ALAWó   G722zunsupported compression type)r˜   r™   rš   r›   rœ   r�   )rŠ   r   ra   rc   )rI   ÚcomptypeÚcompnamer   r   r	   ÚsetcomptypeŽ  s    zAifc_write.setcomptypec             C   s   | j S )N)ra   )rI   r   r   r	   rb   —  s    zAifc_write.getcomptypec             C   s   | j S )N)rc   )rI   r   r   r	   rd   š  s    zAifc_write.getcompnamec             C   sf   |\}}}}}}| j rtdƒ‚|d	kr.tdƒ‚| j|ƒ | j|ƒ | j|ƒ | j|ƒ | j||ƒ d S )
Nz0cannot change parameters after starting to writeó   NONEó   ulawó   ULAWó   alawó   ALAWó   G722zunsupported compression type)r¡   r¢   r£   r¤   r¥   r¦   )rŠ   r   r’   r”   r–   r—   r    )rI   Zparamsr‘   r“   r•   ro   rž   rŸ   r   r   r	   Ú	setparams¢  s    



zAifc_write.setparamsc             C   s>   | j  s| j s| j r tdƒ‚t| j | j| j| j| j| jƒS )Nznot all parameters set)rY   r]   r_   r   r;   r[   ra   rc   )rI   r   r   r	   re   ¯  s    zAifc_write.getparamsc             C   s†   |dkrt dƒ‚|dk r t dƒ‚t|tƒs2t dƒ‚x<tt| jƒƒD ]*}|| j| d krB|||f| j|< d S qBW | jj|||fƒ d S )Nr   zmarker ID must be > 0zmarker position must be >= 0zmarker name must be bytes)r   rM   Úbytesr�   r1   r@   r‚   )rI   rh   rk   r„   rƒ   r   r   r	   Úsetmarkµ  s    
zAifc_write.setmarkc             C   s2   x| j D ]}||d kr|S qW tdj|ƒƒ‚d S )Nr   zmarker {0!r} does not exist)r@   r   rg   )rI   rh   ri   r   r   r	   rj   Â  s    zAifc_write.getmarkc             C   s   t | jƒdkrd S | jS )Nr   )r1   r@   )rI   r   r   r	   rf   È  s    zAifc_write.getmarkersc             C   s   | j S )N)rŠ   )rI   r   r   r	   rX   Í  s    zAifc_write.tellc             C   sz   t |ttfƒst|ƒjdƒ}| jt|ƒƒ t|ƒ| j| j  }| j	rN| j	|ƒ}| j
j|ƒ | j| | _| jt|ƒ | _d S )Nr/   )rM   r¨   Ú	bytearrayÚ
memoryviewÚcastÚ_ensure_header_writtenr1   r]   rY   r?   rB   r'   rŠ   r‹   )rI   r   ro   r   r   r	   ÚwriteframesrawÐ  s    
zAifc_write.writeframesrawc             C   s.   | j |ƒ | j| jks"| j| jkr*| jƒ  d S )N)r®   rŠ   r[   rŒ   r‹   Ú_patchheader)rI   r   r   r   r	   ÚwriteframesÛ  s    
zAifc_write.writeframesc             C   sŽ   | j d krd S z^| jdƒ | jd@ r<| j jdƒ | jd | _| jƒ  | j| jksb| j| jksb| jrj| j	ƒ  W d d | _
| j }d | _ |jƒ  X d S )Nr   r   r0   )rB   r­   r‹   r'   Ú_writemarkersrŠ   r[   rŒ   r�   r¯   r?   rP   )rI   r!   r   r   r	   rP   á  s     


zAifc_write.closec             C   s   dd l }|j|dƒS )Nr   r   )rq   Zlin2alaw)rI   r   rq   r   r   r	   Ú	_lin2alawú  s    zAifc_write._lin2alawc             C   s   dd l }|j|dƒS )Nr   r   )rq   Zlin2ulaw)rI   r   rq   r   r   r	   Ú	_lin2ulawþ  s    zAifc_write._lin2ulawc             C   s2   dd l }t| dƒsd | _|j|d| jƒ\}| _|S )Nr   rt   r   )rq   ru   rt   Z	lin2adpcm)rI   r   rq   r   r   r	   Ú
_lin2adpcm  s
    
zAifc_write._lin2adpcmc             C   sf   | j sb| jdkr.| jsd| _| jdkr.tdƒ‚| js<tdƒ‚| jsJtd	ƒ‚| jsXtd
ƒ‚| j|ƒ d S )Nó   ULAWó   ulawó   ALAWó   alawó   G722r   zRsample width must be 2 when compressing with ulaw/ULAW, alaw/ALAW or G7.22 (ADPCM)z# channels not specifiedzsample width not specifiedzsampling rate not specified)rµ   r¶   r·   r¸   r¹   )rŠ   ra   r]   r   rY   r_   Ú_write_header)rI   Zdatasizer   r   r	   r­   	  s    

z!Aifc_write._ensure_header_writtenc             C   s>   | j dkr| j| _n&| j dkr(| j| _n| j dkr:| j| _d S )Ns   G722ó   ulawó   ULAWó   alawó   ALAW)r»   r¼   )r½   r¾   )ra   r´   r?   r³   r²   )rI   r   r   r	   Ú_init_compression  s    




zAifc_write._init_compressionc             C   sL  | j r| jdkr| jƒ  | jjdƒ | js<|| j| j  | _| j| j | j | _| jd@ rf| jd | _| j rÊ| jdkrš| jd | _| jd@ rÊ| jd | _n0| jd	krÊ| jd
 d | _| jd@ rÊ| jd | _y| jj	ƒ | _
W n  ttfk
� rú   d | _
Y nX | j| jƒ}| j �rD| jjdƒ | jjdƒ t| jdƒ t| j| jƒ n| jjdƒ | jjdƒ t| j|ƒ t| j| jƒ | j
d k	�rŽ| jj	ƒ | _t| j| jƒ | jdk�r¶t| jdƒ nt| j| jd ƒ t| j| jƒ | j �rú| jj| jƒ t| j| jƒ | jjdƒ | j
d k	�r| jj	ƒ | _t| j| jd ƒ t| jdƒ t| jdƒ d S )Ns   NONEs   FORMr   ó   ulawó   ULAWó   alawó   ALAWr   ó   G722é   r
   s   AIFCs   FVERs   AIFFs   COMMr=   s   SSNDr   )rÀ   rÁ   rÂ   rÃ   )rÁ   rÀ   rÃ   rÂ   rÄ   )rC   ra   r¿   rB   r'   r[   rY   r]   rŒ   rX   Ú_form_length_posÚAttributeErrorÚOSErrorÚ_write_form_lengthr-   r>   r*   Ú_nframes_posr8   r_   r4   rc   Ú_ssnd_length_pos)rI   Z
initlengthÚ
commlengthr   r   r	   rº   !  s^    




zAifc_write._write_headerc             C   s\   | j r*d	t| jƒ }|d@ r$|d }d}nd}d}t| jd| | j d | d | ƒ |S )
Nrx   é   r   é   r   r
   r=   é   ry   )rC   r1   rc   r-   rB   r�   )rI   Ú
datalengthrÌ   Z
verslengthr   r   r	   rÉ   T  s     zAifc_write._write_form_lengthc             C   sÜ   | j jƒ }| jd@ r,| jd }| j jdƒ n| j}|| jkrd| j| jkrd| jdkrd| j j|dƒ d S | j j| j	dƒ | j
|ƒ}| j j| jdƒ t| j | jƒ | j j| jdƒ t| j |d ƒ | j j|dƒ | j| _|| _d S )Nr   r0   r   r=   )rB   rX   r‹   r'   rŒ   r[   rŠ   r�   rm   rÆ   rÉ   rÊ   r-   rË   )rI   ZcurposrÐ   r   r   r   r	   r¯   a  s&    





zAifc_write._patchheaderc             C   sÒ   t | jƒdkrd S | jjdƒ d}xD| jD ]:}|\}}}|t |ƒ d d }t |ƒd@ dkr*|d }q*W t| j|ƒ |d | _t| jt | jƒƒ x<| jD ]2}|\}}}t| j|ƒ t| j|ƒ t| j|ƒ q˜W d S )Nr   s   MARKr   r   é   r=   )r1   r@   rB   r'   r-   r�   r*   r4   )rI   r   ri   rh   rk   r„   r   r   r	   r±   w  s"    


zAifc_write._writemarkers)(r   r   r   rB   rR   rK   rŽ   rS   rU   r�   r�   r’   rZ   r”   r^   r–   r`   r—   r\   r    rb   rd   r§   re   r©   rj   rf   rX   r®   r°   rP   r²   r³   r´   r­   r¿   rº   rÉ   r¯   r±   r   r   r   r	   r†     sJ   	3r†   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ÚmoderL   Úrr…   r‡   z$mode must be 'r', 'rb', 'w', or 'wb')rÓ   rL   )r…   r‡   )ru   rÒ   r<   r†   r   )r!   rÒ   r   r   r	   r   Š  s    
Ú__main__r   z/usr/demos/data/audio/bach.aiffrÓ   ZReadingznchannels =znframes   =zsampwidth =zframerate =zcomptype  =zcompname  =r   ZWritingr…   i   zDone.)N)8r   rO   r~   Ú__all__Ú	Exceptionr   r‰   r   r   r   r   r   r   r&   r*   r+   r,   r-   r4   r8   rJ   r9   Úcollectionsr:   r;   r‘   Ú__doc__r“   r•   ro   rž   rŸ   r<   r†   r   r   r   ÚsysÚargvr‚   Úfnr!   ÚprintrZ   r\   r^   r`   rb   rd   ZgnÚgr§   re   rp   r   r°   r   r   r   r	   Ú<module>‰   sx   

! ~   






