ó
čžbc           @   s    d  Z  d d l m Z e d d d [ d d g Z d e f d     YZ d	 d d
     YZ d d d     YZ d   Z d d  Z
 e d k r e
   n  d S(   sG   Classes for manipulating audio devices (currently only for Sun and SGI)i˙˙˙˙(   t   warnpy3ks2   the audiodev module has been removed in Python 3.0t
   stackleveli   t   errort   AudioDevc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s   /usr/lib/python2.7/audiodev.pyR      s   t   Play_Audio_sgic           B   s   e  Z d  Z d Z Z Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z RS(   i    c         C   sĐ   d d  l  } d | j f d | j f d | j f d | j f d | j f d | j f d | j f g |  _ d	 | j	 f d
 | j
 f d | j f g |  _ d	 | j f d
 | j f d | j f g |  _ d	 |  _ d  S(   Ni˙˙˙˙iť  iDŹ  i }  i"V  i>  i+  i@  i   i   i   i   (   t   ALt
   RATE_48000t
   RATE_44100t
   RATE_32000t
   RATE_22050t
   RATE_16000t
   RATE_11025t	   RATE_8000t   frameratelistt   MONOt   STEREOt   QUADROt   nchannelslistt   SAMPLE_8t	   SAMPLE_16t	   SAMPLE_24t   sampwidthlistt   classinited(   t   selfR   (    (    s   /usr/lib/python2.7/audiodev.pyt	   initclass   s    c         C   s   d d  l  } d d  l } |  j s. |  j   n  g  |  _ | j d g |  _ | j   |  _ d |  _	 d |  _
 d |  _ d  |  _ d  |  _ d  S(   Ni˙˙˙˙i    (   t   alR   R   R   t	   oldparamst   OUTPUT_RATEt   paramst	   newconfigt   configt   inited_outratet   inited_widtht   inited_nchannelst   Nonet	   convertert   port(   R   R   R   (    (    s   /usr/lib/python2.7/audiodev.pyt   __init__+   s    							c         C   s]   |  j  r |  j   n  |  j rY d d  l } d d  l } | j | j |  j  g  |  _ n  d  S(   Ni˙˙˙˙(   R&   t   stopR   R   R   t	   setparamst   DEFAULT_DEVICE(   R   R   R   (    (    s   /usr/lib/python2.7/audiodev.pyt   __del__9   s    		c         C   sP   |  j  s d  Sd d  l } x& |  j  j   d k rA | j d  q W|  j   d  S(   Ni˙˙˙˙i    gš?(   R&   t   timet	   getfilledt   sleepR(   (   R   R,   (    (    s   /usr/lib/python2.7/audiodev.pyt   waitA   s    	c         C   si   |  j  r" |  j  j   d  |  _  n  |  j re d d  l } d d  l } | j | j |  j  g  |  _ n  d  S(   Ni˙˙˙˙(   R&   t	   closeportR$   R   R   R   R)   R*   (   R   R   R   (    (    s   /usr/lib/python2.7/audiodev.pyR(   I   s    		c         C   sM   xF |  j  D]2 \ } } | | k r
 | |  j d <d |  _ Pq
 q
 Wt d  d  S(   Ni   s   bad output rate(   R   R   R!   R   (   R   t   ratet   rawt   cooked(    (    s   /usr/lib/python2.7/audiodev.pyt
   setoutrateR   s    	c         C   s   x |  j  D]5 \ } } | | k r
 |  j j |  d |  _ Pq
 q
 W| d k r d d  l } d |  _ |  j j | j  |  j |  _ n	 t d  d  S(   Ni   i    i˙˙˙˙s   bad sample width(	   R   R    t   setwidthR"   R   R   t   ulaw2linR%   R   (   R   t   widthR2   R3   R   (    (    s   /usr/lib/python2.7/audiodev.pyt   setsampwidth[   s    		c         C   sP   xI |  j  D]5 \ } } | | k r
 |  j j |  d |  _ Pq
 q
 Wt d  d  S(   Ni   s   bad # of channels(   R   R    t   setchannelsR#   R   (   R   t	   nchannelsR2   R3   (    (    s   /usr/lib/python2.7/audiodev.pyt   setnchannelsj   s    	c         C   sĹ   |  j  o |  j s t d  n  |  j s d d  l } d d  l } | j d d |  j  |  _ |  j |  _	 | j
 | j |  j	  | j | j |  j  n  |  j rą |  j |  } n  |  j j |  d  S(   Ns   params not specifiedi˙˙˙˙t   Pythont   w(   R!   R#   R   R&   R   R   t   openportR    R   R   t	   getparamsR*   R)   R%   t
   writesamps(   R   t   dataR   R   (    (    s   /usr/lib/python2.7/audiodev.pyt   writeframess   s    		c         C   s   |  j  r |  j  j   Sd Sd  S(   Ni    (   R&   R-   (   R   (    (    s   /usr/lib/python2.7/audiodev.pyR-      s    	c         C   s'   |  j  r |  j  j   S|  j j   Sd  S(   N(   R&   t   getfillableR    t   getqueuesize(   R   (    (    s   /usr/lib/python2.7/audiodev.pyRC      s    	c         C   s   d d  l  } | j | d  S(   Ni˙˙˙˙i   (   t   audioopR6   (   R   RA   RE   (    (    s   /usr/lib/python2.7/audiodev.pyR6      s    N(   R   R   R   R$   R   R   R   R   R'   R+   R/   R(   R4   R8   R;   RB   R-   RC   R6   (    (    (    s   /usr/lib/python2.7/audiodev.pyR      s   															t   Play_Audio_sunc           B   sY   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   c         C   sL   d |  _  d |  _ d |  _ d |  _ d |  _ d |  _ d  |  _ d  |  _ d  S(   Ni    (	   t   outratet	   sampwidthR:   R!   R"   R#   R$   R%   R&   (   R   (    (    s   /usr/lib/python2.7/audiodev.pyR'      s    								c         C   s   |  j    d  S(   N(   R(   (   R   (    (    s   /usr/lib/python2.7/audiodev.pyR+   ˘   s    c         C   s   | |  _  d |  _ d  S(   Ni   (   RG   R!   (   R   R1   (    (    s   /usr/lib/python2.7/audiodev.pyR4   Ľ   s    	c         C   s   | |  _  d |  _ d  S(   Ni   (   RH   R"   (   R   R7   (    (    s   /usr/lib/python2.7/audiodev.pyR8   Š   s    	c         C   s   | |  _  d |  _ d  S(   Ni   (   R:   R#   (   R   R:   (    (    s   /usr/lib/python2.7/audiodev.pyR;   ­   s    	c         C   s  |  j  o |  j o |  j s' t d  n  |  j s× d d  l } d d  l } | j d  |  _ |  j j   } |  j	 | _
 |  j | _ |  j d k r¨ d | _ | j |  _ q× d |  j | _ | j | _ |  j j |  n  |  j rň |  j |  } n  |  j j |  d  S(   Ns   params not specifiedi˙˙˙˙R=   i    i   (   R!   R"   R#   R   R&   t   sunaudiodevt   SUNAUDIODEVt   opent   getinfoRG   t   o_sample_rateR:   t
   o_channelsRH   t   o_precisiont   ENCODING_ULAWt
   o_encodingt   ENCODING_LINEARt   setinfoR%   t   write(   R   RA   RI   RJ   t   info(    (    s   /usr/lib/python2.7/audiodev.pyRB   ą   s"    			c         C   s(   |  j  s d  S|  j  j   |  j   d  S(   N(   R&   t   drainR(   (   R   (    (    s   /usr/lib/python2.7/audiodev.pyR/   Ć   s    	c         C   s3   |  j  r/ |  j  j   |  j  j   d  |  _  n  d  S(   N(   R&   t   flusht   closeR$   (   R   (    (    s   /usr/lib/python2.7/audiodev.pyR(   Ě   s    	c         C   s   |  j  r |  j  j   Sd Sd  S(   Ni    (   R&   t	   obufcount(   R   (    (    s   /usr/lib/python2.7/audiodev.pyR-   Ň   s    	(   R   R   R'   R+   R4   R8   R;   RB   R/   R(   R-   (    (    (    s   /usr/lib/python2.7/audiodev.pyRF      s   								c          C   s   y d d  l  }  Wns t k
 r y d d  l } t   SWq t k
 r y d d  l } Wn t k
 rs t d  q X| j   Sq Xn Xt   Sd  S(   Ni˙˙˙˙s   no audio device(   R   t   ImportErrorRI   RF   t	   Audio_macR   t   Play_Audio_macR   (   R   RI   R[   (    (    s   /usr/lib/python2.7/audiodev.pyR   Ü   s    c         C   s  d d  l  } | j d r) | j d }  n d }  d d  l } | j |  d  } |  G| j   GHt   } | j | j    | j | j	    | j
 | j    | j   | j	   | j   } x5 | j |  } | sÚ Pn  t |  GH| j |  qÁ W| j   d  S(   Ni˙˙˙˙i   s   f:just samples:just.aift   r(   t   syst   argvt   aifcRK   R?   R   R4   t   getframerateR8   t   getsampwidthR;   t   getnchannelst
   readframest   lenRB   R/   (   t   fnR^   R`   t   aft   pt   BUFSIZRA   (    (    s   /usr/lib/python2.7/audiodev.pyt   testî   s&    	  t   __main__N(    (    (   t   __doc__t   warningsR    t   __all__t	   ExceptionR   R   RF   R   R$   Rj   R   (    (    (    s   /usr/lib/python2.7/audiodev.pyt   <module>   s   I	