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<