File: //lib64/python3.6/test/__pycache__/test_ossaudiodev.cpython-36.pyc
3
\0 � @ s� d dl mZ ejd� d dlmZ ejd�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}tj |�}|j� }|j� }|j}|jd� |j� }W d Q R X |tjkrZtd��t j
|d�}||d|fS )N�rbr z)Expect .au file with 8-bit mu-law samples� � )�open�sunauZgetframerateZgetnchannelsZ _encoding�seek�readZAUDIO_FILE_ENCODING_MULAW_8�RuntimeError�audioopZulaw2lin)�path�fpZau�rate� nchannels�encoding�data� r �(/usr/lib64/python3.6/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 jd�}W nL tk
rZ } z0|jd tjtjtjtjfkrHt j
|��� W Y d d }~X nX |j� |j� |j
� |j� |j� | j|j� | j|jd� | j|jdd|j � xDdD ]<}yt||d� W n ttfk
r� Y q�X | jd | � q�W tt|��|d
| | }|jt||� | jt|d �dk |� tj� } |j |� |j!� tj� }
|
| }t|| �| d
}| j|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 r )"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�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 ]:}|\}}}|j|�|kr |j|�|kr |j|�|kr P q W td��|j|||d�}| j||||fd||f � |j|||d�}| j||||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 r6 r/ ) r<