a
´iîF ã @ s¨ d dl mZ eddƒZdZdZdZdZdZd Zd
Z dZ
dZd
ZdZ
dZdZdZeeeeeegZG dd„ deƒZdd„ Zdd„ ZG dd„ dƒZG dd„ dƒZddd„ZdS ) é )Ú
namedtupleÚ
_sunau_paramsz7nchannels sampwidth framerate nframes comptype compnameidns.é é é é é é é é é é é é l ÿÿ c @ s e Zd ZdS )ÚErrorN)Ú__name__Ú
__module__Ú__qualname__© r r ú/usr/lib64/python3.9/sunau.pyr ‰ s r c C s8 d}t dƒD ]&}| d¡}|s"t‚|d t|ƒ }q|S )Nr r r é )ÚrangeÚreadÚEOFErrorÚord)ÚfileÚxÚiZbyter r r Ú _read_u32Œ s
r c C sF g }t dƒD ]&}t|dƒ\}}| dt|ƒ¡ |}q| t|ƒ¡ d S )Nr r r )r ÚdivmodÚinsertÚintÚwriteÚbytes)r r Údatar ÚdÚmr r r Ú
_write_u32• s r' c @ s¬ e Zd Zdd„ 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_readc C s@ t |ƒt dƒkr,dd l}| |d¡}d| _nd| _| |¡ d S )NÚ r ÚrbTF©ÚtypeÚbuiltinsÚopenÚ_openedÚinitfp©ÚselfÚfr- r r r Ú__init__Ÿ s zAu_read.__init__c C s | j r| ¡ d S ©N©Ú_fileÚclose©r2 r r r Ú__del__¨ s zAu_read.__del__c C s | S r5 r r9 r r r Ú __enter__¬ s zAu_read.__enter__c G s | ¡ d S r5 ©r8 ©r2 Úargsr r r Ú__exit__¯ s zAu_read.__exit__c C sÆ || _ d| _tt|ƒƒ}|tkr(tdƒ‚tt|ƒƒ| _| jdk rHtdƒ‚| jdkrZtdƒ‚t|ƒ| _| jtkrzt| jƒ| _tt|ƒƒ| _ | j t
vrštdƒ‚| j ttfv r¶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| ¡ | _W n ttf�yÀ d | _Y n0 d S )Nr zbad magic numberr zheader size too smalléd zheader size ridiculously largezencoding not (yet) supportedr r r r zunknown encodingzbad # of channelsó ó )r7 Ú _soundposr! r ÚAUDIO_FILE_MAGICr Z _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)r2 r ÚmagicÚ_r r r r0 ² sV
ÿ
zAu_read.initfpc C s | j S r5 )r7 r9 r r r Úgetfpà s z
Au_read.getfpc C s | j S r5 )rR r9 r r r Úgetnchannelsã s zAu_read.getnchannelsc C s | j S r5 )rK r9 r r r Úgetsampwidthæ s zAu_read.getsampwidthc C s | j S r5 )rQ r9 r r r Úgetframerateé s zAu_read.getframeratec C s( | j tkrtS | jtv r$| j | j S dS ©Nr )rE rF rG rH rL r9 r r r Ú
getnframesì s
zAu_read.getnframesc C s$ | j tkrdS | j tkrdS dS d S )NÚULAWÚALAWÚNONE©rG rI rJ r9 r r r Úgetcomptypeó s
zAu_read.getcomptypec C s$ | j tkrdS | j tkrdS dS d S )NúCCITT G.711 u-lawúCCITT G.711 A-lawúnot compressedrd r9 r r r Úgetcompnameû s
zAu_read.getcompnamec C s* t | ¡ | ¡ | ¡ | ¡ | ¡ | ¡ ƒS r5 ©r r\ r] r^ r` re ri r9 r r r Ú getparams s þzAu_read.getparamsc C s d S r5 r r9 r r r Ú
getmarkers s zAu_read.getmarkersc C s t dƒ‚d S )Nzno marks)r )r2 Úidr r r Úgetmark s zAu_read.getmarkc C sp | j tv rl|tkr| j ¡ }n| j || j ¡}| jt|ƒ| j 7 _| j tkrhdd l }|
|| j¡}|S d S r_ )rG rH rF r7 r rL rC ÚlenrI ÚaudioopZulaw2linrK )r2 Únframesr$ rp r r r Ú
readframes s
zAu_read.readframesc C s* | j d u rtdƒ‚| j | j ¡ d| _d S )Núcannot seekr )rV rX r7 ÚseekrC r9 r r r Úrewind s
zAu_read.rewindc C s | j S r5 )rC r9 r r r rU ! s zAu_read.tellc C sP |dk s|| ¡ krtdƒ‚| jd u r.tdƒ‚| j | j|| j ¡ || _d S )Nr zposition not in rangers )r` r rV rX r7 rt rL rC )r2 Úposr r r Úsetpos$ s
zAu_read.setposc C s" | j }|rd | _ | jr| ¡ d S r5 )r7 r/ r8 ©r2 r r r r r8 , s
z
Au_read.closeN)r r r r4 r: r; r? r0 r[ r\ r] r^ r` re ri rk rl rn rr ru rU rw r8 r r r r r( � s( .
r( c @ sÔ e Zd Zdd„ 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_writec C s@ t |ƒt dƒkr,dd l}| |d¡}d| _nd| _| |¡ d S )Nr) r ÚwbTFr+ r1 r r r r4 5 s zAu_write.__init__c C s | j r| ¡ d | _ d S r5 r6 r9 r r r r: > s zAu_write.__del__c C s | S r5 r r9 r r r r; C s zAu_write.__enter__c G s | ¡ d S r5 r<