a XC?hTF ã @ sŒ d dl mZ d dlmZ d dlZd dlZd dlZd dlZg d¢ZG dd„ de ƒZ dZdZed d ƒZ G dd„ dƒZG d d„ dƒZddd„ZdS )é )ÚChunk)Ú namedtupleN)ÚopenÚErrorÚ Wave_readÚ Wave_writec @ s e Zd ZdS )r N)Ú__name__Ú __module__Ú__qualname__© r r ú)/opt/alt/python39/lib64/python3.9/wave.pyr T s r é )NÚbÚhNÚiÚ_wave_paramsz7nchannels sampwidth framerate nframes comptype compnamec @ 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+S ),r c C sú d | _ d| _t|dd�| _| j ¡ dkr0tdƒ‚| j d¡dkrHtdƒ‚d| _d | _d| _ zt| jdd�}W n t y‚ Y qâY n0 | ¡ }|d kr¦| |¡ d| _n2|d krØ| js¼tdƒ‚|| _|j| j | _d| _ qâ| ¡ qT| jrî| jsötdƒ‚d S ) Nr )Z bigendianó RIFFz file does not start with RIFF idé ó WAVEznot a WAVE filer ó fmt ó datazdata chunk before fmt chunkz#fmt chunk and/or data chunk missing)Ú_convertÚ _soundposr Ú_fileZgetnamer ÚreadZ_fmt_chunk_readÚ_data_chunkÚ_data_seek_neededÚEOFErrorÚ_read_fmt_chunkZ chunksizeÚ _framesizeÚ_nframesÚskip)ÚselfÚfileÚchunkZ chunknamer r r Úinitfp} s8 zWave_read.initfpc C sR d | _ t|tƒr"t |d¡}|| _ z| |¡ W n | j rF| ¡ ‚ Y n0 d S )NÚrb©Ú_i_opened_the_fileÚ isinstanceÚstrÚbuiltinsr r% Úclose©r" Úfr r r Ú__init__œ s zWave_read.__init__c C s | ¡ d S ©N©r, ©r" r r r Ú__del__© s zWave_read.__del__c C s | S r0 r r2 r r r Ú __enter__¬ s zWave_read.__enter__c G s | ¡ d S r0 r1 ©r" Úargsr r r Ú__exit__¯ s zWave_read.__exit__c C s | j S r0 )r r2 r r r Úgetfpµ s zWave_read.getfpc C s d| _ d| _d S )Nr r )r r r2 r r r Úrewind¸ s zWave_read.rewindc C s" d | _ | j}|rd | _| ¡ d S r0 )r r( r, ©r" r# r r r r, ¼ s zWave_read.closec C s | j S r0 )r r2 r r r Útellà s zWave_read.tellc C s | j S r0 )Ú _nchannelsr2 r r r ÚgetnchannelsÆ s zWave_read.getnchannelsc C s | j S r0 )r r2 r r r Ú getnframesÉ s zWave_read.getnframesc C s | j S r0 )Ú _sampwidthr2 r r r ÚgetsampwidthÌ s zWave_read.getsampwidthc C s | j S r0 )Ú _framerater2 r r r ÚgetframerateÏ s zWave_read.getframeratec C s | j S r0 ©Ú _comptyper2 r r r ÚgetcomptypeÒ s zWave_read.getcomptypec C s | j S r0 ©Ú _compnamer2 r r r ÚgetcompnameÕ s zWave_read.getcompnamec C s* t | ¡ | ¡ | ¡ | ¡ | ¡ | ¡ ƒS r0 )r r= r@ rB r> rE rH r2 r r r Ú getparamsØ s þzWave_read.getparamsc C s d S r0 r r2 r r r Ú getmarkersÝ s zWave_read.getmarkersc C s t dƒ‚d S ©Nzno marks©r ©r" Úidr r r Úgetmarkà s zWave_read.getmarkc C s* |dk s|| j krtdƒ‚|| _d| _d S )Nr zposition not in ranger )r r r r )r" Úposr r r Úsetposã s zWave_read.setposc C s¬ | j r8| j dd¡ | j| j }|r2| j |d¡ d| _ |dkrDdS | j || j ¡}| jdkrxtjdkrxt || j¡}| jrŒ|rŒ| |¡}| jt|ƒ| j | j | _|S )Nr ó r Úbig)r r Úseekr r r r? ÚsysÚ byteorderÚaudioopÚbyteswapr Úlenr<