File: //proc/thread-self/root/usr/local/lib/python3.7/test/__pycache__/test_ossaudiodev.cpython-37.pyc
B
��g: � @ s� d dl mZ e�d� d dlmZ e�d�Zd dlZd dlZd dl Z d dl
Z
d dlZd dlZyd dlm
Z
W n, ek
r� ejdkr�ejZ
nejZ
Y nX dd � ZG d
d� dej�Zdd
� Zedkr�e� dS )� )�supportZaudio)�findfile�ossaudiodevN)�AFMT_S16_NE�littlec C sr t | d��8}t� |�}|�� }|�� }|j}|�d� |�� }W d Q R X |tjkrZtd��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 �1/usr/local/lib/python3.7/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� yt �d�}W nL tk
rZ } z.|jd tjtjtjtjfkrHt �
|��� W d d }~X Y nX |�� |�� |�
� |�� |�� | �|j� | �|jd� | �|jdd|j � xDdD ]<}yt||d� W n ttfk
r� Y q�X | �d| � q�W tt|��|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�timeZ monotonic�write�close)
�selfr r Zssizer �dsp�msg�attrZ
expected_timeZt1Zt2Zelapsed_timeZpercent_diffr r r �play_sound_file, sB
z OSSAudioDevTests.play_sound_filec C s� t jddf}tddf}xN||gD ]:}|\}}}|�|�|kr |�|�|kr |�|�|kr P q W td��|�|||d�}| �||||fd||f � |�|||d�}| �||||fd||f � d S ) N� i@ r iD� zRunable to set audio sampling parameters: you must have really weird audio hardwareFzsetparameters%r: returned %rT) r ZAFMT_U8r Zsetfmt�channelsZspeedr r7 r0 ) r= r>