Your IP : 216.73.216.190
U
e5d�G�@s�ddlmZddlZedd�ZdZdZdZdZd Zd
Z dZ
dZd
ZdZ
dZdZdZdZeeeee egZGdd�de�Zdd�Zdd�ZGdd�d�ZGdd�d�Zd!dd�Zd"dd �ZdS)#�)�
namedtupleN�
_sunau_paramsz7nchannels sampwidth framerate nframes comptype compnameidns.������������l��c@seZdZdS)�ErrorN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.8/sunau.pyr�srcCs8d}td�D]&}|�d�}|s"t�|dt|�}q|S)Nrrr�)�range�read�EOFError�ord)�file�x�iZbyterrr� _read_u32�s
rcCsFg}td�D]&}t|d�\}}|�dt|��|}q|�t|��dS)Nrrr)r�divmod�insert�int�write�bytes)rr�datar�d�mrrr�
_write_u32�sr'c@s�eZdZdd�Zdd�Zdd�Zdd�Zd d
�Zdd�Zd
d�Z dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)S)*�Au_readcCs@t|�td�kr,ddl}|�|d�}d|_nd|_|�|�dS)N�r�rbTF��type�builtins�open�_opened�initfp��self�fr-rrr�__init__�szAu_read.__init__cCs|jr|��dS�N��_file�close�r2rrr�__del__�szAu_read.__del__cCs|Sr5rr9rrr� __enter__�szAu_read.__enter__cGs|��dSr5�r8�r2�argsrrr�__exit__�szAu_read.__exit__c Cs�||_d|_tt|��}|tkr(td��tt|��|_|jdkrHtd��|jdkrZtd��t|�|_|jtkrzt|j�|_tt|��|_ |j t
kr�td��|j ttfkr�d|_
d |_nj|j tkr�d |_|_
nR|j tkr�d|_|_
n:|j tkr�d
|_|_
n"|j tk�rd|_|_
ntd��tt|��|_tt|��|_|j�sLtd
��|j|j|_|jdk�r�|�|jd�|_|j�d�\|_}}nd|_z|��|_Wn ttfk
�r�d|_YnXdS)Nrzbad magic numberrzheader size too small�dzheader size ridiculously largezencoding not (yet) supportedrrrrzunknown encodingzbad # of channels��)r7� _soundposr!r�AUDIO_FILE_MAGICrZ _hdr_size�
_data_size�AUDIO_UNKNOWN_SIZE� _encoding�_simple_encodings�AUDIO_FILE_ENCODING_MULAW_8�AUDIO_FILE_ENCODING_ALAW_8�
_sampwidth�
_framesize�AUDIO_FILE_ENCODING_LINEAR_8�AUDIO_FILE_ENCODING_LINEAR_16�AUDIO_FILE_ENCODING_LINEAR_24�AUDIO_FILE_ENCODING_LINEAR_32�
_framerate�
_nchannelsr�_info� partition�tell� _data_pos�AttributeError�OSError)r2r�magic�_rrrr0�sV
�
zAu_read.initfpcCs|jSr5)r7r9rrr�getfp�sz
Au_read.getfpcCs|jSr5)rRr9rrr�getnchannels�szAu_read.getnchannelscCs|jSr5)rKr9rrr�getsampwidth�szAu_read.getsampwidthcCs|jSr5)rQr9rrr�getframerate�szAu_read.getframeratecCs(|jtkrtS|jtkr$|j|jSdS�Nr)rErFrGrHrLr9rrr�
getnframes�s
zAu_read.getnframescCs$|jtkrdS|jtkrdSdSdS)N�ULAW�ALAW�NONE�rGrIrJr9rrr�getcomptype�s
zAu_read.getcomptypecCs$|jtkrdS|jtkrdSdSdS)N�CCITT G.711 u-law�CCITT G.711 A-law�not compressedrdr9rrr�getcompname�s
zAu_read.getcompnamecCs*t|��|��|��|��|��|���Sr5�rr\r]r^r`rerir9rrr� getparamss�zAu_read.getparamscCsdSr5rr9rrr�
getmarkersszAu_read.getmarkerscCstd��dS)Nzno marks)r)r2�idrrr�getmarkszAu_read.getmarkcCsp|jtkrl|tkr|j��}n|j�||j�}|jt|�|j7_|jtkrhddl }|�
||j�}|SdSr_)rGrHrFr7rrLrC�lenrI�audioopZulaw2linrK)r2�nframesr$rprrr�
readframess
zAu_read.readframescCs*|jdkrtd��|j�|j�d|_dS)N�cannot seekr)rVrXr7�seekrCr9rrr�rewinds
zAu_read.rewindcCs|jSr5)rCr9rrrrU!szAu_read.tellcCsP|dks||��krtd��|jdkr.td��|j�|j||j�||_dS)Nrzposition not in rangers)r`rrVrXr7rtrLrC)r2�posrrr�setpos$s
zAu_read.setposcCs"|j}|rd|_|jr|��dSr5)r7r/r8�r2rrrrr8,s
z
Au_read.closeN)rrrr4r:r;r?r0r[r\r]r^r`rerirkrlrnrrrurUrwr8rrrrr(�s( .
r(c@s�eZdZdd�Zdd�Zdd�Zdd�Zd d
�Zdd�Zd
d�Z dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)4�Au_writecCs@t|�td�kr,ddl}|�|d�}d|_nd|_|�|�dS)Nr)r�wbTFr+r1rrrr45szAu_write.__init__cCs|jr|��d|_dSr5r6r9rrrr:>szAu_write.__del__cCs|Sr5rr9rrrr;CszAu_write.__enter__cGs|��dSr5r<r=rrrr?FszAu_write.__exit__cCsF||_d|_d|_d|_d|_t|_d|_d|_d|_ d|_
d|_dS)NrrBra)r7rQrRrKrLrF�_nframes�_nframeswritten�_datawritten�_datalengthrS� _comptyperxrrrr0IszAu_write.initfpcCs(|jrtd��|dkrtd��||_dS)N�0cannot change parameters after starting to write)rrrz"only 1, 2, or 4 channels supported)r|rrR)r2� nchannelsrrr�setnchannelsVs
zAu_write.setnchannelscCs|jstd��|jS)Nznumber of channels not set)rRrr9rrrr\]szAu_write.getnchannelscCs(|jrtd��|dkrtd��||_dS)Nr�)rrrrzbad sample width)r|rrK)r2� sampwidthrrr�setsampwidthbs
zAu_write.setsampwidthcCs|jstd��|jS)N�sample width not specified)rQrrKr9rrrr]iszAu_write.getsampwidthcCs|jrtd��||_dS)Nr�)r|rrQ)r2� frameraterrr�setframeratenszAu_write.setframeratecCs|jstd��|jS)Nzframe rate not set)rQrr9rrrr^sszAu_write.getframeratecCs(|jrtd��|dkrtd��||_dS)Nr�rz# of frames cannot be negative)r|rr{)r2rqrrr�
setnframesxs
zAu_write.setnframescCs|jSr5�r|r9rrrr`szAu_write.getnframescCs|dkr||_ntd��dS)N)rcrazunknown compression type)rr)r2r,�namerrr�setcomptype�szAu_write.setcomptypecCs|jSr5�rr9rrrre�szAu_write.getcomptypecCs$|jdkrdS|jdkrdSdSdS)Nrarfrbrgrhr�r9rrrri�s
zAu_write.getcompnamecCsH|\}}}}}}|�|�|�|�|�|�|�|�|�||�dSr5)r�r�r�r�r�)r2Zparamsr�r�r�rqZcomptypeZcompnamerrr� setparams�s
zAu_write.setparamscCs*t|��|��|��|��|��|���Sr5rjr9rrrrk�s�zAu_write.getparamscCs|jSr5r�r9rrrrU�sz
Au_write.tellcCs~t|ttf�st|��d�}|��|jdkrDddl}|�||j �}t
|�|j}|j�
|�|j||_|jt
|�|_dS)N�Brar)�
isinstancer#� bytearray�
memoryview�cast�_ensure_header_writtenrrpZlin2ulawrKrorLr7r"r|r})r2r$rprqrrr�writeframesraw�s
zAu_write.writeframesrawcCs.|�|�|j|jks"|j|jkr*|��dSr5)r�r|r{r~r}�_patchheader)r2r$rrr�writeframes�s
�zAu_write.writeframescCs^|jrZz6|��|j|jks(|j|jkr0|��|j� �W5|j}d|_|jrX|��XdSr5)
r7r/r8r�r|r{r~r}r��flushrxrrrr8�s
�zAu_write.closecCs<|js8|jstd��|js"td��|js0td��|��dS)Nz# of channels not specifiedr�zframe rate not specified)r|rRrrKrQ�
_write_headerr9rrrr��szAu_write._ensure_header_writtenc Cs�|jdkrl|jdkr t}d|_q�|jdkr6t}d|_q�|jdkrLt}d|_q�|jdkrbt}d|_q�td��n|jdkr�t}d|_ntd��|j|j |_t
|jt�dt
|j�}|d d
@}t
|j|�|jtkr�t}n|j|j}z|j��|_Wn ttfk
�rd|_YnXt
|j|�||_t
|j|�t
|j|j�t
|j|j �|j�|j�|j�d|t
|j�d�dS)
Nrcrrrrzinternal errorrar
r
i����rAr)rrKrMrLrNrOrPrrIrRr'r7rDrorSr{rFrU�_form_length_posrWrXr~rQr")r2�encoding�header_sizeZlengthrrrr��sJ
zAu_write._write_headercCsH|jdkrtd��|j�|j�t|j|j�|j|_|j�dd�dS)Nrsrr)r�rXr7rtr'r}r~r9rrrr��s
zAu_write._patchheaderN)rrrr4r:r;r?r0r�r\r�r]r�r^r�r`r�rerir�rkrUr�r�r8r�r�r�rrrrry3s2
*rycCsJ|dkrt|d�r|j}nd}|dkr.t|�S|dkr>t|�Std��dS)N�moder*)�rr*)�wrzz$mode must be 'r', 'rb', 'w', or 'wb')�hasattrr�r(ryr�r3r�rrrr.s
r.cCstjdtdd�t||d�S)NzDsunau.openfp is deprecated since Python 3.7. Use sunau.open instead.r)�
stacklevel)r�)�warnings�warn�DeprecationWarningr.r�rrr�openfps
�r�)N)N)�collectionsrr�rrDrIrMrNrOrPZAUDIO_FILE_ENCODING_FLOATZAUDIO_FILE_ENCODING_DOUBLEZAUDIO_FILE_ENCODING_ADPCM_G721ZAUDIO_FILE_ENCODING_ADPCM_G722Z AUDIO_FILE_ENCODING_ADPCM_G723_3Z AUDIO_FILE_ENCODING_ADPCM_G723_5rJrFrH� Exceptionrrr'r(ryr.r�rrrr�<module>jsD�� Q
?>