Your IP : 3.148.242.202
B
YI~d�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�*/opt/alt/python37/lib64/python3.7/sunau.pyr�srcCs<d}x2td�D]&}|�d�}|s$t�|dt|�}qW|S)Nrrr�)�range�read�EOFError�ord)�file�x�iZbyterrr� _read_u32�s
rcCsJg}x2td�D]&}t|d�\}}|�dt|��|}qW|�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)r0rrr�__del__�szAu_read.__del__cCs|S)Nr)r0rrr� __enter__�szAu_read.__enter__cGs|��dS)N)r4)r0�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|_y|��|_Wn ttfk
�r�d|_YnXdS)Nrzbad magic numberrzheader size too small�dzheader size ridiculously largezencoding not (yet) supportedrrrrzunknown encodingzbad # of channels��)r3� _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)r0r�magic�_rrrr/�sT
zAu_read.initfpcCs|jS)N)r3)r0rrr�getfp�sz
Au_read.getfpcCs|jS)N)rK)r0rrr�getnchannels�szAu_read.getnchannelscCs|jS)N)rD)r0rrr�getsampwidth�szAu_read.getsampwidthcCs|jS)N)rJ)r0rrr�getframerate�szAu_read.getframeratecCs(|jtkrtS|jtkr$|j|jSdS)Nr)r>r?r@rArE)r0rrr�
getnframes�s
zAu_read.getnframescCs$|jtkrdS|jtkrdSdSdS)N�ULAW�ALAW�NONE)r@rBrC)r0rrr�getcomptype�s
zAu_read.getcomptypecCs$|jtkrdS|jtkrdSdSdS)NzCCITT G.711 u-lawzCCITT G.711 A-lawznot compressed)r@rBrC)r0rrr�getcompname�s
zAu_read.getcompnamecCs*t|��|��|��|��|��|���S)N)rrUrVrWrXr\r])r0rrr� getparamsszAu_read.getparamscCsdS)Nr)r0rrr�
getmarkersszAu_read.getmarkerscCstd��dS)Nzno marks)r)r0�idrrr�getmarkszAu_read.getmarkcCsp|jtkrl|tkr|j��}n|j�||j�}|jt|�|j7_|jtkrhddl }|�
||j�}|SdS)Nr)r@rAr?r3rrEr<�lenrB�audioopZulaw2linrD)r0�nframesr$rcrrr�
readframess
zAu_read.readframescCs*|jdkrtd��|j�|j�d|_dS)Nzcannot seekr)rOrQr3�seekr<)r0rrr�rewinds
zAu_read.rewindcCs|jS)N)r<)r0rrrrN!szAu_read.tellcCsP|dks||��krtd��|jdkr.td��|j�|j||j�||_dS)Nrzposition not in rangezcannot seek)rXrrOrQr3rfrEr<)r0�posrrr�setpos$s
zAu_read.setposcCs"|j}|rd|_|jr|��dS)N)r3r.r4)r0rrrrr4,s
z
Au_read.closeN)rrrr2r5r6r8r/rTrUrVrWrXr\r]r^r_rarergrNrir4rrrrr(�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�wbTF)r+r,r-r.r/)r0r1r,rrrr25szAu_write.__init__cCs|jr|��d|_dS)N)r3r4)r0rrrr5>szAu_write.__del__cCs|S)Nr)r0rrrr6CszAu_write.__enter__cGs|��dS)N)r4)r0r7rrrr8FszAu_write.__exit__cCsF||_d|_d|_d|_d|_t|_d|_d|_d|_ d|_
d|_dS)Nrr;rY)r3rJrKrDrEr?�_nframes�_nframeswritten�_datawritten�_datalengthrL� _comptype)r0rrrrr/IszAu_write.initfpcCs(|jrtd��|dkrtd��||_dS)Nz0cannot change parameters after starting to write)rrrz"only 1, 2, or 4 channels supported)rmrrK)r0� nchannelsrrr�setnchannelsVs
zAu_write.setnchannelscCs|jstd��|jS)Nznumber of channels not set)rKr)r0rrrrU]szAu_write.getnchannelscCs(|jrtd��|dkrtd��||_dS)Nz0cannot change parameters after starting to write)rrrrzbad sample width)rmrrD)r0� sampwidthrrr�setsampwidthbs
zAu_write.setsampwidthcCs|jstd��|jS)Nzsample width not specified)rJrrD)r0rrrrViszAu_write.getsampwidthcCs|jrtd��||_dS)Nz0cannot change parameters after starting to write)rmrrJ)r0� frameraterrr�setframeratenszAu_write.setframeratecCs|jstd��|jS)Nzframe rate not set)rJr)r0rrrrWsszAu_write.getframeratecCs(|jrtd��|dkrtd��||_dS)Nz0cannot change parameters after starting to writerz# of frames cannot be negative)rmrrl)r0rdrrr�
setnframesxs
zAu_write.setnframescCs|jS)N)rm)r0rrrrXszAu_write.getnframescCs|dkr||_ntd��dS)N)r[rYzunknown compression type)rpr)r0r+�namerrr�setcomptype�szAu_write.setcomptypecCs|jS)N)rp)r0rrrr\�szAu_write.getcomptypecCs$|jdkrdS|jdkrdSdSdS)NrYzCCITT G.711 u-lawrZzCCITT G.711 A-lawznot compressed)rp)r0rrrr]�s
zAu_write.getcompnamecCsH|\}}}}}}|�|�|�|�|�|�|�|�|�||�dS)N)rrrtrvrwry)r0�paramsrqrsrurdZcomptypeZcompnamerrr� setparams�s
zAu_write.setparamscCs*t|��|��|��|��|��|���S)N)rrUrVrWrXr\r])r0rrrr^�szAu_write.getparamscCs|jS)N)rm)r0rrrrN�sz
Au_write.tellcCs~t|ttf�st|��d�}|��|jdkrDddl}|�||j �}t
|�|j}|j�
|�|j||_|jt
|�|_dS)N�BrYr)�
isinstancer#� bytearray�
memoryview�cast�_ensure_header_writtenrprcZlin2ulawrDrbrEr3r"rmrn)r0r$rcrdrrr�writeframesraw�s
zAu_write.writeframesrawcCs.|�|�|j|jks"|j|jkr*|��dS)N)r�rmrlrorn�_patchheader)r0r$rrr�writeframes�s
zAu_write.writeframescCs^|jrZz6|��|j|jks(|j|jkr0|��|j��Wd|j}d|_|jrX|� �XdS)N)
r3r�rmrlrornr��flushr.r4)r0rrrrr4�szAu_write.closecCs<|js8|jstd��|js"td��|js0td��|��dS)Nz# of channels not specifiedzsample width not specifiedzframe rate not specified)rmrKrrDrJ�
_write_header)r0rrrr��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}y|j��|_Wn ttfk
�rd|_YnXt
|j|�||_t
|j|�t
|j|j�t
|j|j �|j�|j�|j�d|t
|j�d�dS)
Nr[rrrrzinternal errorrYr
r
i����r:r)rprDrFrErGrHrIrrBrKr'r3r=rbrLrlr?rN�_form_length_posrPrQrorJr")r0�encodingZheader_size�lengthrrrr��sJ
zAu_write._write_headercCsH|jdkrtd��|j�|j�t|j|j�|j|_|j�dd�dS)Nzcannot seekrr)r�rQr3rfr'rnro)r0rrrr��s
zAu_write._patchheaderN)rrrr2r5r6r8r/rrrUrtrVrvrWrwrXryr\r]r{r^rNr�r�r4r�r�r�rrrrrj3s2
*rjcCsJ|dkrt|d�r|j}nd}|dkr.t|�S|dkr>t|�Std��dS)N�moder*)�rr*)�wrkz$mode must be 'r', 'rb', 'w', or 'wb')�hasattrr�r(rjr)r1r�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-)r1r�rrr�openfps
r�)N)N)�collectionsrr�rr=rBrFrGrHrIZAUDIO_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_5rCr?rA� Exceptionrrr'r(rjr-r�rrrr�<module>js@ Q
?>