o 0¦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 ú,/opt/alt/python310/lib64/python3.10/sunau.pyr ‰ s r c C s8 d}t dƒD ]}| d¡}|st‚|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 ó@ t |ƒt dƒkrdd l}| |d¡}d| _nd| _| |¡ d S )NÚ r ÚrbTF©ÚtypeÚbuiltinsÚopenÚ_openedÚinitfp©ÚselfÚfr. r r r Ú__init__Ÿ ó zAu_read.__init__c C s | j r | ¡ d S d S ©N©Ú_fileÚclose©r3 r r r Ú__del__¨ s ÿzAu_read.__del__c C ó | S r7 r r; r r r Ú __enter__¬ ó zAu_read.__enter__c G ó | ¡ d S r7 ©r: ©r3 Úargsr r r Ú__exit__¯ ó zAu_read.__exit__c C s¾ || _ d| _tt|ƒƒ}|tkrtdƒ‚tt|ƒƒ| _| jdk r$tdƒ‚| jdkr-tdƒ‚t|ƒ| _| jtkr=t| jƒ| _tt|ƒƒ| _ | j t vrMtdƒ‚| j ttfv r[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| ¡ | _W d S ttfyÞ d | _Y d S w )Nr zbad magic numberr zheader size too smalléd zheader size ridiculously largezencoding not (yet) supportedr r r r zunknown encodingzbad # of channelsó ó )r9 Ú _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)r3 r ÚmagicÚ_r r r r1 ² sX ÿ ÿzAu_read.initfpc C ó | j S r7 )r9 r; r r r Úgetfpà ó z Au_read.getfpc C ra r7 )rX r; r r r Úgetnchannelsã rc zAu_read.getnchannelsc C ra r7 )rQ r; r r r Úgetsampwidthæ rc zAu_read.getsampwidthc C ra r7 )rW r; r r r Úgetframerateé rc zAu_read.getframeratec C s( | j tkrtS | jtv r| j | j S dS ©Nr )rK rL rM rN rR r; r r r Ú getnframesì s zAu_read.getnframesc C ó | j tkrdS | j tkrdS dS )NÚULAWÚALAWÚNONE©rM rO rP r; r r r Úgetcomptypeó ó zAu_read.getcomptypec C ri )NúCCITT G.711 u-lawúCCITT G.711 A-lawúnot compressedrm r; r r r Úgetcompnameû ro zAu_read.getcompnamec C ó* t | ¡ | ¡ | ¡ | ¡ | ¡ | ¡ ƒS r7 ©r rd re rf rh rn rs r; r r r Ú getparams ó þzAu_read.getparamsc C s d S r7 r r; r r r Ú getmarkers r? zAu_read.getmarkersc C s t dƒ‚)Nzno marks)r )r3 Úidr r r Úgetmark s zAu_read.getmarkc C sp | j tv r6|tkr| j ¡ }n | j || j ¡}| jt|ƒ| j 7 _| j tkr4dd l }| || j¡}|S d S rg )rM rN rL r9 r rR rI ÚlenrO ÚaudioopZulaw2linrQ )r3 Únframesr$ r| r r r Ú readframes s zAu_read.readframesc C s* | j d u r tdƒ‚| j | j ¡ d| _d S )Núcannot seekr )r\ r^ r9 ÚseekrI r; r r r Úrewind s zAu_read.rewindc C ra r7 )rI r; r r r r[ ! rc zAu_read.tellc C sP |dk s || ¡ krtdƒ‚| jd u rtdƒ‚| j | j|| j ¡ || _d S )Nr zposition not in ranger )rh r r\ r^ r9 r€ rR rI )r3 Úposr r r Úsetpos$ s zAu_read.setposc C s* | j }|rd | _ | jr| ¡ d S d S d S r7 )r9 r0 r: ©r3 r r r r r: , s ýz Au_read.closeN)r r r r5 r<