;
Ìâ"Ic               @   s  d  d l  m Z e j d ƒ d  d l m Z m 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 d  d l Z y d  d l m Z Wn: e k
 o. e j d k o e j Z n
 e j Z Yn Xd „  Z Gd „  d	 e j ƒ Z d
 „  Z e d k o e ƒ  n d S(   i    (   u   supportu   audio(   u   findfileu   TestSkippedN(   u   AFMT_S16_NEu   littlec       	   
   C   s¿   t  |  d ƒ j } j ƒ  } zV | ~ } t j  | ƒ } | j ƒ  } | j ƒ  } | j } | j d ƒ | j ƒ  } Wd  | ~ QX| t j	 k o t
 d ƒ ‚ n t j | d ƒ } | | d | f S(   Nu   rbi    u)   Expect .au file with 8-bit mu-law samplesi   i   (   u   openu   __exit__u	   __enter__u   sunauu   getframerateu   getnchannelsu	   _encodingu   seeku   readu   AUDIO_FILE_ENCODING_MULAW_8u   RuntimeErroru   audioopu   ulaw2lin(	   u   pathu   _[2]u   _[1]u   fpu   auu   rateu	   nchannelsu   encodingu   data(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   read_sound_file   s    (	c             B   s;   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d S(   c             C   s  y t  j d ƒ } Wnf t k
 oZ } zD | j d t j t j t j t j f k o t	 | ƒ ‚ n ‚  WYd  d  } ~ Xn X| j
 ƒ  | j ƒ  | j ƒ  | j ƒ  | j ƒ  |  j | j ƒ |  j | j d ƒ |  j | j d d | j ƒ xP d D]H } y t | | d ƒ Wn t t f k
 o Yqõ 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 | | f ƒ d  S(   Nu   wi    u   /dev/dspu   bad dsp.mode: %ru   closedu   nameu   modei*   u   dsp.%s not read-onlyi   g…ëQ¸…@g{®Gáz„?id   g      $@u2   elapsed time (%s) > 10%% off of expected time (%s)(   u   closedu   nameu   mode("   u   ossaudiodevu   openu   IOErroru   argsu   errnou   EACCESu   ENOENTu   ENODEVu   EBUSYu   TestSkippedu   bufsizeu	   obufcountu   obuffreeu   getptru   filenou   failIfu   closedu   assertEqualu   nameu   modeu   setattru	   TypeErroru   AttributeErroru   failu   floatu   lenu   setparametersu   AFMT_S16_NEu
   assertTrueu   absu   timeu   writeu   closeu
   failUnless(   u   selfu   datau   rateu   ssizeu	   nchannelsu   dspu   msgu   attru   expected_timeu   t1u   t2u   elapsed_timeu   percent_diff(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   play_sound_file+   sD    




 " 

c       	      C   s  t  j d d f } t d d f } xv | | g D]\ } | \ } } } | j | ƒ | k o1 | j | ƒ | k o | j | ƒ | k o Pq. q. Wt d ƒ ‚ | j | | | d ƒ } |  j	 | | | | f d | | f ƒ | j | | | d ƒ } |  j	 | | | | f d | | f ƒ d  S(	   Ni   i@  i   iD¬  uR   unable to set audio sampling parameters: you must have really weird audio hardwareu   setparameters%r: returned %rFT(   u   ossaudiodevu   AFMT_U8u   AFMT_S16_NEu   setfmtu   channelsu   speedu   RuntimeErroru   setparametersu   Falseu   assertEqualu   True(	   u   selfu   dspu   config1u   config2u   configu   fmtu   channelsu   rateu   result(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   set_parametersZ   s      	c             C   sÛ   t  } d } d } xÂ | d | f | d | f | | d f g D]– } | \ } } } | j | | | d ƒ } |  j | | d ƒ y | j | | | d	 ƒ } Wn* t j k
 o } z WYd  d  } ~ Xq= X|  j d ƒ q= Wd  S(
   NiD¬  i   i,  iûÿÿÿiÎÿÿÿu(   unexpectedly got requested configurationu   expected OSSAudioErrorFT(   u   AFMT_S16_NEu   setparametersu   Falseu   failIfEqualu   Trueu   ossaudiodevu   OSSAudioErroru   fail(   u   selfu   dspu   fmtu   rateu   channelsu   configu   resultu   err(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   set_bad_parametersx   s      c             C   s#   t  t d ƒ ƒ } |  j | Œ  d  S(   Nu   audiotest.au(   u   read_sound_fileu   findfileu   play_sound_file(   u   selfu
   sound_info(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   test_playback‘   s    c          	   C   sB   t  j d ƒ } z |  j | ƒ Wd  | j ƒ  |  j | j ƒ Xd  S(   Nu   w(   u   ossaudiodevu   openu   set_parametersu   closeu
   failUnlessu   closed(   u   selfu   dsp(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   test_set_parameters•   s
    
N(   u   __name__u
   __module__u   play_sound_fileu   set_parametersu   set_bad_parametersu   test_playbacku   test_set_parameters(   u
   __locals__(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   OSSAudioDevTests)   s
   
	/			u   OSSAudioDevTestsc              C   s    y t  j d ƒ }  Wno t  j t f k
 oZ } zD | j d t j t j t j t j	 f k o t
 | ƒ ‚ n ‚  WYd  d  } ~ Xn X|  j ƒ  t j t ƒ d  S(   Nu   wi    (   u   ossaudiodevu   openu   erroru   IOErroru   argsu   errnou   EACCESu   ENOENTu   ENODEVu   EBUSYu   TestSkippedu   closeu   supportu   run_unittestu   __name__(   u   dspu   msg(    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu	   test_main¢   s    
u   __main__(   u   testu   supportu   requiresu   test.supportu   findfileu   TestSkippedu   errnou   ossaudiodevu   sysu   sunauu   timeu   audioopu   unittestu   AFMT_S16_NEu   ImportErroru	   byteorderu   AFMT_S16_LEu   AFMT_S16_BEu   read_sound_fileu   TestCaseu   OSSAudioDevTestsu	   test_mainu   __name__(    (    (    u2   /mit/python/lib/python3.0/test/test_ossaudiodev.pyu   <module>   s(   	y	