Your IP : 216.73.216.196
o
S�g�F�@s� ddlmZedd�ZdZdZdZdZdZd Zd
Z dZ
dZd
ZdZ
dZdZdZeeeeeegZGdd�de�Zdd�Zdd�ZGdd�d�ZGdd�d�Zddd�ZdS) �)�
namedtuple�
_sunau_paramsz7nchannels sampwidth framerate nframes comptype compnameidns.������������l��c@seZdZdS)�ErrorN)�__name__�
__module__�__qualname__�rr�,/opt/alt/python310/lib64/python3.10/sunau.pyr�srcCs8d}td�D]}|�d�}|st�|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_readcC�@t|�td�krddl}|�|d�}d|_nd|_|�|�dS)N�r�rbTF��type�builtins�open�_opened�initfp��self�fr.rrr�__init__��zAu_read.__init__cCs|jr |��dSdS�N��_file�close�r3rrr�__del__�s�zAu_read.__del__cC�|Sr7rr;rrr� __enter__��zAu_read.__enter__cG�|��dSr7�r:�r3�argsrrr�__exit__��zAu_read.__exit__c Cs�||_d|_tt|��}|tkrtd��tt|��|_|jdkr$td��|jdkr-td��t|�|_|jtkr=t|j�|_tt|��|_ |j t
vrMtd��|j ttfvr[d|_
d |_n4|j tkrgd |_|_
n(|j tkrsd|_|_
n|j tkrd
|_|_
n|j tkr�d|_|_
ntd��tt|��|_tt|��|_|js�td
��|j|j|_|jdkr�|�|jd�|_|j�d�\|_}}nd|_z|��|_WdSttfy�d|_YdSw)Nrzbad magic numberrzheader size too small�dzheader size ridiculously largezencoding not (yet) supportedrrrrzunknown encodingzbad # of channels��)r9� _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)r3r�magic�_rrrr1�sX
�
�zAu_read.initfpcC�|jSr7)r9r;rrr�getfp��z
Au_read.getfpcCrar7)rXr;rrr�getnchannels�rczAu_read.getnchannelscCrar7)rQr;rrr�getsampwidth�rczAu_read.getsampwidthcCrar7)rWr;rrr�getframerate�rczAu_read.getframeratecCs(|jtkrtS|jtvr|j|jSdS�Nr)rKrLrMrNrRr;rrr�
getnframes�s
zAu_read.getnframescC� |jtkrdS|jtkrdSdS)N�ULAW�ALAW�NONE�rMrOrPr;rrr�getcomptype��
zAu_read.getcomptypecCri)N�CCITT G.711 u-law�CCITT G.711 A-law�not compressedrmr;rrr�getcompname�rozAu_read.getcompnamecC�*t|��|��|��|��|��|���Sr7�rrdrerfrhrnrsr;rrr� getparams��zAu_read.getparamscCsdSr7rr;rrr�
getmarkersr?zAu_read.getmarkerscCstd��)Nzno marks)r)r3�idrrr�getmarkszAu_read.getmarkcCsp|jtvr6|tkr|j��}n |j�||j�}|jt|�|j7_|jtkr4ddl }|�
||j�}|SdSrg)rMrNrLr9rrRrI�lenrO�audioopZulaw2linrQ)r3�nframesr$r|rrr�
readframess
zAu_read.readframescCs*|jdur td��|j�|j�d|_dS)N�cannot seekr)r\r^r9�seekrIr;rrr�rewinds
zAu_read.rewindcCrar7)rIr;rrrr[!rczAu_read.tellcCsP|dks
||��krtd��|jdurtd��|j�|j||j�||_dS)Nrzposition not in ranger)rhrr\r^r9r�rRrI)r3�posrrr�setpos$s
zAu_read.setposcCs*|j}|rd|_|jr|��dSdSdSr7)r9r0r:�r3rrrrr:,s�z
Au_read.closeN)rrrr5r<r>rDr1rbrdrerfrhrnrsrvrxrzr~r�r[r�r:rrrrr(�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_writecCr))Nr*r�wbTFr,r2rrrr55r6zAu_write.__init__cCs|jr|��d|_dSr7r8r;rrrr<>�
zAu_write.__del__cCr=r7rr;rrrr>Cr?zAu_write.__enter__cGr@r7rArBrrrrDFrEzAu_write.__exit__cCsF||_d|_d|_d|_d|_t|_d|_d|_d|_ d|_
d|_dS)NrrHrj)r9rWrXrQrRrL�_nframes�_nframeswritten�_datawritten�_datalengthrY� _comptyper�rrrr1Is
zAu_write.initfpcC�(|jrtd��|dvrtd��||_dS)N�0cannot change parameters after starting to write)rrrz"only 1, 2, or 4 channels supported)r�rrX)r3� nchannelsrrr�setnchannelsV�
zAu_write.setnchannelscC�|jstd��|jS)Nznumber of channels not set)rXrr;rrrrd]�zAu_write.getnchannelscCr�)Nr�)rrrrzbad sample width)r�rrQ)r3� sampwidthrrr�setsampwidthbr�zAu_write.setsampwidthcCs|jstd��|jS)N�sample width not specified)rWrrQr;rrrreir�zAu_write.getsampwidthcCs|jrtd��||_dS)Nr�)r�rrW)r3� frameraterrr�setframeratenr�zAu_write.setframeratecCr�)Nzframe rate not set)rWrr;rrrrfsr�zAu_write.getframeratecCs(|jrtd��|dkrtd��||_dS)Nr�rz# of frames cannot be negative)r�rr�)r3r}rrr�
setnframesxr�zAu_write.setnframescCrar7�r�r;rrrrhrczAu_write.getnframescCs|dvr ||_dStd��)N)rlrjzunknown compression type)r�r)r3r-�namerrr�setcomptype�s
zAu_write.setcomptypecCrar7�r�r;rrrrn�rczAu_write.getcomptypecCs |jdkrdS|jdkrdSdS)Nrjrprkrqrrr�r;rrrrs�rozAu_write.getcompnamecCsH|\}}}}}}|�|�|�|�|�|�|�|�|�||�dSr7)r�r�r�r�r�)r3�paramsr�r�r�r}ZcomptypeZcompnamerrr� setparams�s
zAu_write.setparamscCrtr7rur;rrrrv�rwzAu_write.getparamscCrar7r�r;rrrr[�rcz
Au_write.tellcCs~t|ttf�st|��d�}|��|jdkr"ddl}|�||j �}t
|�|j}|j�
|�|j||_|jt
|�|_dS)N�Brjr)�
isinstancer#� bytearray�
memoryview�cast�_ensure_header_writtenr�r|Zlin2ulawrQr{rRr9r"r�r�)r3r$r|r}rrr�writeframesraw�s
zAu_write.writeframesrawcCs2|�|�|j|jks|j|jkr|��dSdSr7)r�r�r�r�r��_patchheader)r3r$rrr�writeframes�s
�zAu_write.writeframescCs�|jr>z+|��|j|jks|j|jkr|��|j��W|j}d|_|jr-|� �dSdS|j}d|_|jr=|� �wwdSr7)
r9r�r�r�r�r�r��flushr0r:r�rrrr:�s$��
��zAu_write.closecCs@|js|js
td��|jstd��|jstd��|��dSdS)Nz# of channels not specifiedr�zframe rate not specified)r�rXrrQrW�
_write_headerr;rrrr��s�zAu_write._ensure_header_writtenc Cs||jdkr5|jdkrt}d|_n4|jdkrt}d|_n)|jdkr&t}d|_n|jdkr1t}d|_ntd��|jdkr@t}d|_ntd��|j|j |_t
|jt�dt
|j�}|d d
@}t
|j|�|jtkrlt}n|j|j}z|j��|_Wnttfy�d|_Ynwt
|j|�||_t
|j|�t
|j|j�t
|j|j �|j�|j�|j�d|t
|j�d�dS)
Nrlrrrrzinternal errorrjr
r
i����rGr)r�rQrSrRrTrUrVrrOrXr'r9rJr{rYr�rLr[�_form_length_posr]r^r�rWr")r3�encoding�header_sizeZlengthrrrr��sL
�"zAu_write._write_headercCsH|jdur td��|j�|j�t|j|j�|j|_|j�dd�dS)Nrrr)r�r^r9r�r'r�r�r;rrrr��s
zAu_write._patchheaderN)rrrr5r<r>rDr1r�rdr�rer�rfr�rhr�rnrsr�rvr[r�r�r:r�r�r�rrrrr�3s4
*r�NcCsF|durt|d�r
|j}nd}|dvrt|�S|dvrt|�Std��)N�moder+)�rr+)�wr�z$mode must be 'r', 'rb', 'w', or 'wb')�hasattrr�r(r�r)r4r�rrrr/s
r/r7)�collectionsrrrJrOrSrTrUrVZAUDIO_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_5rPrLrN� Exceptionrrr'r(r�r/rrrr�<module>sDi�� Q
?>