File: //usr/local/lib/python3.10/test/__pycache__/test_ossaudiodev.cpython-310.opt-1.pyc
o
�iJ � @ s� d dl mZ d dlmZ e�d� d dlmZ e�d�Zd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
zd dlmZ W n eyQ e jdkrLejZnejZY nw d d
� ZG dd� de
j�Zd
d� Zedkrme
�� dS dS )� )�support)�
import_helperZaudio)�findfile�ossaudiodevN)�AFMT_S16_NE�littlec C s� t | d��!}t� |�}|�� }|�� }|j}|�d� |�� }W d � n1 s)w Y |tjkr7td��t �
|d�}||d|fS )N�rbr z)Expect .au file with 8-bit mu-law samples� � )�open�sunauZgetframerateZgetnchannels� _encoding�seek�readZAUDIO_FILE_ENCODING_MULAW_8�RuntimeError�audioopZulaw2lin)�path�fpZau�rate� nchannels�encoding�data� r �2/usr/local/lib/python3.10/test/test_ossaudiodev.py�read_sound_file s
�
r c @ sL e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dS )�OSSAudioDevTestsc
C s� zt �d�}W n! ty( } z|jd tjtjtjtjfv r#t �
|��� d }~ww |�� |�� |�
� |�� |�� | �|j� | �|jd� | �|jdd|j � dD ]}zt||d� W n ttfyl Y qWw | �d| � qWtt|��|d | | }|�t||� | �t|d �d
k |� t� � } |�!|� |�"� t� � }
|
| }t|| �| d }| �|dkd
||f � d S )N�wr z/dev/dspzbad dsp.mode: %r)�closed�name�mode�* zdsp.%s not read-only� g�G�z@g{�G�z�?�d g $@z2elapsed time (%s) > 10%% off of expected time (%s))#r r �OSError�args�errno�EACCES�ENOENT�ENODEV�EBUSY�unittest�SkipTest�bufsize� obufcount�obuffree�getptr�filenoZassertFalser �assertEqualr r �setattr� TypeError�AttributeError�fail�float�len�
setparametersr �
assertTrue�abs�time� monotonic�write�close)
�selfr r Zssizer �dsp�msg�attrZ
expected_time�t1�t2Zelapsed_timeZpercent_diffr r r �play_sound_file- sN �
���
��z OSSAudioDevTests.play_sound_filec C s� t jddf}tddf}||fD ]}|\}}}|�|�|kr-|�|�|kr-|�|�|kr- nqtd��|�|||d�}| �||||fd||f � |�|||d�}| �||||fd||f � d S ) N� i@ r �D� zRunable to set audio sampling parameters: you must have really weird audio hardwareFzsetparameters%r: returned %rT) r ZAFMT_U8r Zsetfmt�channelsZspeedr r8 r1 ) r? r@ Zconfig1Zconfig2�config�fmtrH r �resultr r r �set_parameters\ s$
�
�
�zOSSAudioDevTests.set_parametersc C s� t }d}d}|d|f|d|f||dffD ]9}|\}}}|�|||d�}| �||d� z
|�|||d�}W n tjyG } zW Y d }~qd }~ww | �d � qd S )
NrG r i, ���i���Fz(unexpectedly got requested configurationTzexpected OSSAudioError)r r8 ZassertNotEqualr Z
OSSAudioErrorr5 )r? r@ rJ r rH rI rK �errr r r �set_bad_parametersz s( �
����z#OSSAudioDevTests.set_bad_parametersc C s t td��}| j|� d S )Nzaudiotest.au)r r rE )r? Z
sound_infor r r �
test_playback� s zOSSAudioDevTests.test_playbackc C sF t �d�}z| �|� W |�� | �|j� d S |�� | �|j� w �Nr )r r rL r>