ó
­«Y]c           @   s  d  d l  m Z e j d ƒ d  d l m Z e j d ƒ Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z y d  d l m Z Wn5 e k
 rÏ e j d k rÃ e j Z qÐ e j Z n Xd „  Z d	 e j f d
 „  ƒ  YZ d „  Z e d k re ƒ  n  d S(   iÿÿÿÿ(   t   test_supportt   audio(   t   findfilet   ossaudiodevN(   t   AFMT_S16_NEt   littlec         C   s¡   t  |  d ƒ P } t j  | ƒ } | j ƒ  } | j ƒ  } | j } | j d ƒ | j ƒ  } Wd  QX| t j k r t d ƒ ‚ n  t	 j
 | d ƒ } | | d | f S(   Nt   rbi    s)   Expect .au file with 8-bit mu-law samplesi   i   (   t   opent   sunaut   getframeratet   getnchannelst	   _encodingt   seekt   readt   AUDIO_FILE_ENCODING_MULAW_8t   RuntimeErrort   audioopt   ulaw2lin(   t   patht   fpt   aut   ratet	   nchannelst   encodingt   data(    (    s&   lib/python2.7/test/test_ossaudiodev.pyt   read_sound_file   s    	t   OSSAudioDevTestsc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   så  y t  j d ƒ } WnS t k
 rh } | j d t j t j t j t j f k rb t	 j
 | ƒ ‚ n  ‚  n X| j ƒ  | j ƒ  | j ƒ  | j ƒ  | j ƒ  |  j | j ƒ |  j | j d ƒ |  j | j d d | j ƒ xG d D]? } y t | | d ƒ Wn t k
 rqâ X|  j d	 | ƒ qâ Wt t | ƒ ƒ | d
 | | } | j t | | ƒ |  j t | d ƒ d k  | ƒ t j ƒ  }	 | j | ƒ | j  ƒ  t j ƒ  }
 |
 |	 } t | | ƒ | d } |  j | d k d ƒ d  S(   Nt   wi    s   /dev/dsps   bad dsp.mode: %rt   closedt   namet   modei*   s   dsp.%s not read-onlyi   g®Gáz@g{®Gáz„?id   g      $@s'   elapsed time > 10% off of expected time(   R   R   R   (!   R   R   t   IOErrort   argst   errnot   EACCESt   ENOENTt   ENODEVt   EBUSYt   unittestt   SkipTestt   bufsizet	   obufcountt   obuffreet   getptrt   filenot   assertFalseR   t   assertEqualR   R   t   setattrt	   TypeErrort   failt   floatt   lent   setparametersR   t
   assertTruet   abst   timet   writet   close(   t   selfR   R   t   ssizeR   t   dspt   msgt   attrt   expected_timet   t1t   t2t   elapsed_timet   percent_diff(    (    s&   lib/python2.7/test/test_ossaudiodev.pyt   play_sound_file,   s@    




" 

c   	      C   s  t  j d d f } t d d f } xr | | g D]X } | \ } } } | j | ƒ | k r. | j | ƒ | k r. | j | ƒ | k r. Pq. q. Wt d ƒ ‚ | j | | | t ƒ } |  j	 | | | | f d | | f ƒ | j | | | t
 ƒ } |  j	 | | | | f d | | f ƒ d  S(   Ni   i@  i   iD¬  sR   unable to set audio sampling parameters: you must have really weird audio hardwares   setparameters%r: returned %r(   R   t   AFMT_U8R   t   setfmtt   channelst   speedR   R4   t   FalseR.   t   True(	   R:   R<   t   config1t   config2t   configt   fmtRG   R   t   result(    (    s&   lib/python2.7/test/test_ossaudiodev.pyt   set_parametersZ   s    c         C   sÇ   t  } d } d } x® | d | f | d | f | | d f g D]‚ } | \ } } } | j | | | t ƒ } |  j | | d ƒ y | j | | | t ƒ } Wn t j k
 r± } q= X|  j d ƒ q= Wd  S(   NiD¬  i   i,  iûÿÿÿiÎÿÿÿs(   unexpectedly got requested configurations   expected OSSAudioError(   R   R4   RI   t   assertNotEqualRJ   R   t   OSSAudioErrorR1   (   R:   R<   RN   R   RG   RM   RO   t   err(    (    s&   lib/python2.7/test/test_ossaudiodev.pyt   set_bad_parametersx   s    c         C   s#   t  t d ƒ ƒ } |  j | Œ  d  S(   Ns   audiotest.au(   R   R   RD   (   R:   t
   sound_info(    (    s&   lib/python2.7/test/test_ossaudiodev.pyt   test_playback‘   s    c         C   sB   t  j d ƒ } z |  j | ƒ Wd  | j ƒ  |  j | j ƒ Xd  S(   NR   (   R   R   RP   R9   R5   R   (   R:   R<   (    (    s&   lib/python2.7/test/test_ossaudiodev.pyt   test_set_parameters•   s
    
(   t   __name__t
   __module__RD   RP   RT   RV   RW   (    (    (    s&   lib/python2.7/test/test_ossaudiodev.pyR   *   s
   	.			c          C   s   y t  j d ƒ }  Wn\ t  j t f k
 rq } | j d t j t j t j t j	 f k rk t
 j | ƒ ‚ n  ‚  n X|  j ƒ  t j t ƒ d  S(   NR   i    (   R   R   t   errorR   R    R!   R"   R#   R$   R%   R&   R'   R9   R    t   run_unittestRX   (   R<   R=   (    (    s&   lib/python2.7/test/test_ossaudiodev.pyt	   test_main¢   s    
t   __main__(   t   testR    t   requirest   test.test_supportR   t   import_moduleR   R!   t   sysR   R7   R   R&   R   t   ImportErrort	   byteordert   AFMT_S16_LEt   AFMT_S16_BER   t   TestCaseR   R\   RX   (    (    (    s&   lib/python2.7/test/test_ossaudiodev.pyt   <module>   s(   	x	