
    =Og                        	 d dl Z d dlZd dlZddgZ ej        ed            G d de          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d Zd Z ej                    5   ej        de           d dlmZ ddd           n# 1 swxY w Y   d dlmZ  edd          Zdej        _        dej         _        dej!        _        dej"        _        dej#        _        dej$        _         G d  d!          Z% G d" d#          Z&d5d$Z'ed%k    rd dl(Z(e(j)        d&d         se(j)        *                    d'           e(j)        d&         Z+ e'e+d(          5 Z, e-d)e+            e-d*e,.                                            e-d+e,/                                            e-d,e,0                                            e-d-e,1                                            e-d.e,2                                            e-d/e,3                                           e(j)        d0d         re(j)        d0         Z4 e-d1e4            e'e4d2          5 Z5e56                    e,7                                           	 e,8                    d3          Z9e9sne5:                    e9           .	 ddd           n# 1 swxY w Y    e-d4           ddd           dS # 1 swxY w Y   dS dS )6    NErroropen)      )removec                       e Zd ZdS )r   N)__name__
__module____qualname__     /usr/lib64/python3.11/aifc.pyr   r      s        Dr   l   @Q E c                     	 t          j        d|                     d                    d         S # t           j        $ r	 t          d w xY w)N>l   r   structunpackreaderrorEOFErrorfiles    r   
_read_longr      M    !}T499Q<<0033< ! ! !D !	   -0 Ac                     	 t          j        d|                     d                    d         S # t           j        $ r	 t          d w xY w)N>Lr   r   r   r   s    r   _read_ulongr      r   r   c                     	 t          j        d|                     d                    d         S # t           j        $ r	 t          d w xY w)N>h   r   r   r   s    r   _read_shortr#      r   r   c                     	 t          j        d|                     d                    d         S # t           j        $ r	 t          d w xY w)N>Hr"   r   r   r   s    r   _read_ushortr&      r   r   c                     t          |                     d                    }|dk    rd}n|                     |          }|dz  dk    r|                     d          }|S )N   r   r   )ordr   )r   lengthdatadummys       r   _read_stringr-      s[    1F{{yy  zQ		!Kr   gc                    t          |           }d}|dk     rd}|dz   }t          |           }t          |           }||cxk    r|cxk    rdk    rn nd} n/|dk    rt          } n!|dz
  }|dz  |z   t          d	|d
z
            z  } || z  S )Nr(   r      g          i?  l        g       @?   )r#   r   	_HUGE_VALpow)fexponsignhimantlomants        r   _read_floatr:      s    NNEDqyy^^F^^F%%%%&%%%%A%%%%%	&k!F*c#urz.B.BB!8Or   c                 V    |                      t          j        d|                     d S )Nr!   writer   packr5   xs     r   _write_shortrA      &    GGFKa  !!!!!r   c                 V    |                      t          j        d|                     d S )Nr%   r<   r?   s     r   _write_ushortrD      rB   r   c                 V    |                      t          j        d|                     d S )Nr   r<   r?   s     r   _write_longrF      rB   r   c                 V    |                      t          j        d|                     d S )Nr   r<   r?   s     r   _write_ulongrH      rB   r   c                 8   t          |          dk    rt          d          |                     t          j        dt          |                               |                     |           t          |          dz  dk    r|                     d           d S d S )N   z%string exceeds maximum pstring lengthBr(   r       )len
ValueErrorr=   r   r>   )r5   ss     r   _write_stringrP      s    
1vv||@AAAGGFKSVV$$%%%GGAJJJ
1vvzQ	 r   c                 N   dd l }|dk     rd}|dz  }nd}|dk    rd}d}d}n|                    |          \  }}|dk    s|dk    s||k    r
|dz  }d}d}n|dz   }|dk     r|                    ||          }d}||z  }|                    |d          }|                    |          }t	          |          }|                    ||z
  d          }|                    |          }t	          |          }t          | |           t          | |           t          | |           d S )	Nr   r0   r/   i @  r(   r1   i?      )mathfrexpldexpfloorintrD   rH   )	r5   r@   rS   r7   r6   r8   r9   fmantfsmants	            r   _write_floatrZ      sO   KKK1uuFAvvzz!}}u5==EQJJ%5..KEFFFEMEqyy

5%00DLEJJub))EZZ&&F[[FJJuv~r22EZZ&&F[[F!UFFr   ignore)Chunk)
namedtuple_aifc_paramsz7nchannels sampwidth framerate nframes comptype compnamez3Number of audio channels (1 for mono, 2 for stereo)zSample width in byteszSampling frequencyzNumber of audio framesz(Compression type ("NONE" for AIFF files)zRA human-readable version of the compression type
('not compressed' for AIFF files)c                       e 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d 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d Zd ZdS )	Aifc_readNc                 B   d| _         d | _        g | _        d| _        || _        t          |          }|                                dk    rt          d          |                    d          }|dk    rd| _	        n|dk    rd| _	        nt          d          d| _
        d | _        	 d| _        	 t          | j                  }n# t          $ r Y nw xY w|                                }|d	k    r|                     |           d| _
        n`|d
k    r$|| _        |                    d          }d| _        n6|dk    rt          |          | _         n|dk    r|                     |           |                                 | j
        r| j        st          d          d S )Nr      FORMz file does not start with FORM idr      AIFF   AIFCr(   znot an AIFF or AIFF-C file   COMM   SSND      FVER   MARKz$COMM chunk and/or SSND chunk missing)_version_convert_markers	_soundpos_filer\   getnamer   r   _aifc_comm_chunk_read_ssnd_chunk_ssnd_seek_neededr   _read_comm_chunkr   	_readmarkskip)selfr   chunkformdata	chunknamer,   s         r   initfpzAifc_read.initfp:  s   
d==??g%%:;;;::a==wDJJ  DJJ4555 !	%&D"dj))   IG##%%e,,,()%%g%%#( 

1)*&&g%% +E 2 2g%%u%%%JJLLL%	& $ 	@D,< 	@>???	@ 	@s   1C 
CCc                     t          |t                    rGt          j        |d          }	 |                     |           d S #  |                                  xY w|                     |           d S )Nrb)
isinstancestrbuiltinsr   r{   closerw   r5   file_objects      r   __init__zAifc_read.__init__b  su    a 		"-400KK(((((!!### KKNNNNNs   A Ac                     | S Nr   rw   s    r   	__enter__zAifc_read.__enter__n      r   c                 .    |                                   d S r   r   rw   argss     r   __exit__zAifc_read.__exit__q      

r   c                     | j         S r   )rn   r   s    r   getfpzAifc_read.getfpw  s
    zr   c                 "    d| _         d| _        d S )Nr(   r   )rs   rm   r   s    r   rewindzAifc_read.rewindz  s    !"r   c                 R    | j         }|d | _         |                                 d S d S r   )rn   r   rw   r   s     r   r   zAifc_read.close~  s/    zDJJJLLLLL r   c                     | j         S r   )rm   r   s    r   tellzAifc_read.tell  
    ~r   c                     | j         S r   )
_nchannelsr   s    r   getnchannelszAifc_read.getnchannels  
    r   c                     | j         S r   )_nframesr   s    r   
getnframeszAifc_read.getnframes  s
    }r   c                     | j         S r   )
_sampwidthr   s    r   getsampwidthzAifc_read.getsampwidth  r   r   c                     | j         S r   )
_framerater   s    r   getframeratezAifc_read.getframerate  r   r   c                     | j         S r   	_comptyper   s    r   getcomptypezAifc_read.getcomptype  r   r   c                     | j         S r   	_compnamer   s    r   getcompnamezAifc_read.getcompname  r   r   c           	         t          |                                 |                                 |                                 |                                 |                                 |                                           S r   )r^   r   r   r   r   r   r   r   s    r   	getparamszAifc_read.getparams  sk    D--//1B1B1D1D --//1B1B ,,..0@0@0B0BD D 	Dr   c                 D    t          | j                  dk    rd S | j        S Nr   rM   rl   r   s    r   
getmarkerszAifc_read.getmarkers  $    t}""4}r   c                 z    | j         D ]}||d         k    r|c S t          d                    |                    Nr   zmarker {0!r} does not existrl   r   formatrw   idmarkers      r   getmarkzAifc_read.getmark  K    m 	 	FVAY 188<<===r   c                 b    |dk     s|| j         k    rt          d          || _        d| _        d S )Nr   zposition not in ranger(   )r   r   rm   rs   )rw   poss     r   setposzAifc_read.setpos  s;    77cDM))/000!"r   c                    | j         ri| j                            d           | j                            d          }| j        | j        z  }|r| j                            |dz              d| _         |dk    rdS | j                            || j        z            }| j        r|r|                     |          }| j        t          |          | j        | j	        z  z  z   | _        |S )Nr   rg   r   )
rs   rr   seekr   rm   
_framesizerk   rM   r   r   )rw   nframesr,   r   r+   s        r   
readframeszAifc_read.readframes  s    ! 	'!!!$$$$))!,,E.4?2C / %%cAg...%&D"a<<3$$Wt%>??= 	'T 	'==&&D#d)):>/9J +K Kr   c                     t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   |                    |d          S Nr[   categoryr   r"   )warningscatch_warningssimplefilterDeprecationWarningaudioopalaw2linrw   r+   r   s      r   	_alaw2linzAifc_read._alaw2lin      $&& 	 	!(5GHHHHNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 a(((    A  AAc                     t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   |                    |d          S r   )r   r   r   r   r   ulaw2linr   s      r   	_ulaw2linzAifc_read._ulaw2lin  r   r   c                    t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   t          | d          sd | _        |                    |d| j                  \  }| _        |S Nr[   r   r   _adpcmstater"   )r   r   r   r   r   hasattrr   	adpcm2linr   s      r   
_adpcm2linzAifc_read._adpcm2lin  s    $&& 	 	!(5GHHHHNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 t]++ 	$#D!(!2!24D<L!M!Mdr   c                     t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   |                    |d          S r   r   r   r   r   r   byteswapr   s      r   	_sowt2linzAifc_read._sowt2lin  r   r   c                    t          |          | _        t          |          | _        t          |          dz   dz  | _        t          t          |                    | _        | j        dk    rt          d          | j        dk    rt          d          | j        | j        z  | _	        | j
        r8d}|j        dk    rd}t          j        d           d	|_        |                    d
          | _        |r_t!          |j                            d                    }|dz  dk    r|dz   }|j        |z   |_        |j                            dd           t'          |          | _        | j        dk    rr| j        dk    r| j        | _        nQ| j        dv r| j        | _        n;| j        dv r| j        | _        n%| j        dv r| j        | _        nt          d          d| _        d S d S d| _        d| _        d S )N   rg   r   bad sample widthbad # of channels   r(   zWarning: bad COMM chunk size   r   r/      NONE   G722   ulaw   ULAW   alaw   ALAW   sowt   SOWTunsupported compression typer"      not compressed)r#   r   r   r   r   rW   r:   r   r   r   rp   	chunksizer   warnr   r   r)   r   r   r-   r   r   rk   r   r   r   )rw   rx   kludger*   s       r   rt   zAifc_read._read_comm_chunk  s   %e,,"5))&u--1a7k%0011?a*+++?a+,,,/DO;:  	/F"$$<==="$"ZZ]]DN 'UZ__Q//00A:??#aZF"'/F":
A&&&)%00DN~((>W,,$(ODMM^'999$(NDMM^'999$(NDMM^'999$(NDMM >???"# )( %DN.DNNNr   c                    t          |          }	 t          |          D ]P}t          |          }t          |          }t          |          }|s|r| j                            |||f           Qd S # t          $ rO dt          | j                  dt          | j                  dk    rdndd|}t          j	        |           Y d S w xY w)Nz"Warning: MARK chunk contains only z markerr(    rO   z instead of )
r#   ranger   r-   rl   appendr   rM   r   r   )rw   rx   nmarkersir   r   namews           r   ru   zAifc_read._readmark  s   u%%	8__ : : '' ''#E** :$ : M(("c4999: :  	 	 	 	dm$$$$C,>,>!,C,Cbb&L&L(A M!		s   A A3 3ACC)r	   r
   r   rn   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rt   ru   r   r   r   r`   r`     s       H E&@ &@ &@P
 
 
                        D D D
  
> > ># # #  *) ) )) ) )  ) ) )*/ */ */X    r   r`   c                       e 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d 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d 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'd& Z(dS )'
Aifc_writeNc                 &   t          |t                    rft          j        |d          }	 |                     |           n#  |                                  xY w|                    d          r	d| _        d S d S |                     |           d S )Nwbz.aiffr   )r~   r   r   r   r{   r   endswithrp   r   s      r   r   zAifc_write.__init__C  s    a 	"-400KK((((!!### zz'"" 


  KKNNNNNs   A Ac                     || _         t          | _        d| _        d| _        d | _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        g | _        d| _        d| _        d S )Nr   r   r   r(   )rn   _AIFC_versionrj   r   r   rk   r   r   r   r   _nframeswritten_datawritten_datalengthrl   _marklengthrp   r   s     r   r{   zAifc_write.initfpS  ss    
% * 


r   c                 .    |                                   d S r   r   r   s    r   __del__zAifc_write.__del__d  r   r   c                     | S r   r   r   s    r   r   zAifc_write.__enter__g  r   r   c                 .    |                                   d S r   r   r   s     r   r   zAifc_write.__exit__j  r   r   c                 @    | j         rt          d          d| _        d S )N0cannot change parameters after starting to writer   r  r   rp   r   s    r   aiffzAifc_write.aiffp  (     	LJKKK


r   c                 @    | j         rt          d          d| _        d S )Nr  r(   r  r   s    r   aifczAifc_write.aifcu  r  r   c                 j    | j         rt          d          |dk     rt          d          || _        d S )Nr  r(   r   )r  r   r   )rw   	nchannelss     r   setnchannelszAifc_write.setnchannelsz  s@     	LJKKKq==+,,,#r   c                 <    | j         st          d          | j         S )Nznumber of channels not set)r   r   r   s    r   r   zAifc_write.getnchannels  s#     	64555r   c                 v    | j         rt          d          |dk     s|dk    rt          d          || _        d S )Nr  r(   r   r   )r  r   r   )rw   	sampwidths     r   setsampwidthzAifc_write.setsampwidth  sH     	LJKKKq==IMM*+++#r   c                 <    | j         st          d          | j         S )Nzsample width not set)r   r   r   s    r   r   zAifc_write.getsampwidth  s#     	0.///r   c                 j    | j         rt          d          |dk    rt          d          || _        d S )Nr  r   zbad frame rate)r  r   r   )rw   	framerates     r   setframeratezAifc_write.setframerate  s@     	LJKKK>>()))#r   c                 <    | j         st          d          | j         S )Nzframe rate not set)r   r   r   s    r   r   zAifc_write.getframerate  s#     	.,---r   c                 @    | j         rt          d          || _        d S )Nr  )r  r   r   )rw   r   s     r   
setnframeszAifc_write.setnframes  s(     	LJKKKr   c                     | j         S r   r  r   s    r   r   zAifc_write.getnframes      ##r   c                 t    | j         rt          d          |dvrt          d          || _        || _        d S Nr  )r   r   r   r   r   r   r   r   r   )r  r   r   r   )rw   comptypecompnames      r   setcomptypezAifc_write.setcomptype  sS     	LJKKK I I I6777!!r   c                     | j         S r   r   r   s    r   r   zAifc_write.getcomptype  r   r   c                     | j         S r   r   r   s    r   r   zAifc_write.getcompname  r   r   c                 >   |\  }}}}}}| j         rt          d          |dvrt          d          |                     |           |                     |           |                     |           |                     |           |                     ||           d S r'  )r  r   r  r  r  r"  r*  )rw   paramsr  r  r  r   r(  r)  s           r   	setparamszAifc_write.setparams  s    GMD	9i(H 	LJKKK I I I6777)$$$)$$$)$$$   8,,,,,r   c                     | j         r| j        r| j        st          d          t	          | j         | j        | j        | j        | j        | j                  S )Nznot all parameters set)r   r   r   r   r^   r   r   r   r   s    r   r   zAifc_write.getparams  s[     	2do 	2T_ 	20111DOT_do M4>4>K K 	Kr   c                 r   |dk    rt          d          |dk     rt          d          t          |t                    st          d          t          t	          | j                            D ])}|| j        |         d         k    r|||f| j        |<    d S *| j                            |||f           d S )Nr   zmarker ID must be > 0zmarker position must be >= 0zmarker name must be bytes)r   r~   bytesr   rM   rl   r   )rw   r   r   r   r   s        r   setmarkzAifc_write.setmark  s    77/000776777$&& 	53444s4=))** 	 	AT]1%a(((#%sD=a  ) 	b#t_-----r   c                 z    | j         D ]}||d         k    r|c S t          d                    |                    r   r   r   s      r   r   zAifc_write.getmark  r   r   c                 D    t          | j                  dk    rd S | j        S r   r   r   s    r   r   zAifc_write.getmarkers  r   r   c                     | j         S r   r$  r   s    r   r   zAifc_write.tell  r%  r   c                    t          |t          t          f          s"t          |                              d          }|                     t          |                     t          |          | j        | j        z  z  }| j	        r| 	                    |          }| j
                            |           | j        |z   | _        | j        t          |          z   | _        d S )NrK   )r~   r2  	bytearray
memoryviewcast_ensure_header_writtenrM   r   r   rk   rn   r=   r  r  )rw   r+   r   s      r   writeframesrawzAifc_write.writeframesraw  s    $	 233 	.d##((--D##CII...d))$/ AB= 	'==&&D
#3g= -D		9r   c                     |                      |           | j        | j        k    s| j        | j        k    r|                                  d S d S r   )r<  r  r   r  r  _patchheader)rw   r+   s     r   writeframeszAifc_write.writeframes  sW    D!!!4=00$"333 43r   c                    | j         d S 	 |                     d           | j        dz  r)| j                             d           | j        dz   | _        |                                  | j        | j        k    s| j        | j        k    s| j        r| 	                                 d | _
        | j         }d | _         |                                 d S # d | _
        | j         }d | _         |                                 w xY w)Nr   r(   rL   )rn   r;  r  r=   _writemarkersr  r   r  r	  r>  rk   r   )rw   r5   s     r   r   zAifc_write.close  s    :F	''*** 1$ :
  )))$($5$9!   #t}44"d&777" 8!!### !DM
ADJGGIIIII !DM
ADJGGIIIIs   BC +C8c                     t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   |                    |d          S r   )r   r   r   r   r   lin2alawr   s      r   	_lin2alawzAifc_write._lin2alaw  r   r   c                     t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   |                    |d          S r   )r   r   r   r   r   lin2ulawr   s      r   	_lin2ulawzAifc_write._lin2ulaw  r   r   c                    t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   t          | d          sd | _        |                    |d| j                  \  }| _        |S r   )r   r   r   r   r   r   r   	lin2adpcmr   s      r   
_lin2adpcmzAifc_write._lin2adpcm  s    $&& 	 	!(5GHHHHNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 t]++ 	$#D!(!2!24D<L!M!Mdr   c                     t          j                    5  t          j        dt                     dd l}d d d            n# 1 swxY w Y   |                    |d          S r   r   r   s      r   	_lin2sowtzAifc_write._lin2sowt'  r   r   c                 (   | j         s| j        dv r(| j        sd| _        | j        dk    rt          d          | j        st          d          | j        st          d          | j        st          d          |                     |           d S d S )N)r   r   r   r   r   r   r   r"   z]sample width must be 2 when compressing with ulaw/ULAW, alaw/ALAW, sowt/SOWT or G7.22 (ADPCM)z# channels not specifiedzsample width not specifiedzsampling rate not specified)r  r   r   r   r   r   _write_header)rw   datasizes     r   r;  z!Aifc_write._ensure_header_written-  s    # 	)~ "" " "  (&'DO?a'' !3 4 4 4 ? 86777? :8999? ;9:::x(((((!	) 	)r   c                     | j         dk    r| j        | _        d S | j         dv r| j        | _        d S | j         dv r| j        | _        d S | j         dv r| j        | _        d S d S )Nr   r   r   r   )r   rJ  rk   rG  rD  rL  r   s    r   _init_compressionzAifc_write._init_compression@  su    >W$$ ODMMM^111 NDMMM^111 NDMMM^111 NDMMM 21r   c                    | j         r| j        dk    r|                                  | j                            d           | j        s|| j        | j        z  z  | _        | j        | j        z  | j        z  | _        | j        dz  r| j        dz   | _        | j         rh| j        dv r)| j        dz  | _        | j        dz  r| j        dz   | _        n6| j        dk    r+| j        dz   dz  | _        | j        dz  r| j        dz   | _        	 | j        	                                | _
        n# t          t          f$ r
 d | _
        Y nw xY w|                     | j                  }| j         rd| j                            d	           | j                            d
           t          | j        d           t          | j        | j                   n| j                            d           | j                            d           t          | j        |           t!          | j        | j                   | j
        | j        	                                | _        t          | j        | j                   | j        dv rt!          | j        d           nt!          | j        | j        dz             t%          | j        | j                   | j         r9| j                            | j                   t)          | j        | j                   | j                            d           | j
        | j        	                                | _        t          | j        | j        dz              t          | j        d           t          | j        d           d S )Nr   rb   r(   )r   r   r   r   r"   r   r   r   rd   rh   rc   re   )r   r   r   r   r   rg   rf   r   )rp   r   rQ  rn   r=   r   r   r   r  r   _form_length_posAttributeErrorOSError_write_form_lengthrH   rj   rA   _nframes_posrZ   r   rP   r   _ssnd_length_pos)rw   
initlength
commlengths      r   rN  zAifc_write._write_headerJ  sb   : 	%$.G33""$$$
!!!} 	N&4?T_+LMDM=4?:T_La 	4#/!3D: 	<~!EEE#'#3q#8 #a' <'+'7!';D$7**$($4q$8Q#> #a' <'+'7!';D$	)$(JOO$5$5D!!( 	) 	) 	)$(D!!!	),,T-=>>
: 	&JW%%%JW%%%Q'''T]3333JW%%%
!!!TZ,,,TZ111 , $
 1 1DTZ///>JJJQ''''T_q%8999TZ111: 	6JT^,,,$*dn555
!!! ,$(JOO$5$5D!TZ!1A!5666TZ###TZ#####s   D# #D>=D>c                     | j         r$dt          | j                  z   }|dz  r|dz   }d}nd}d}t          | j        d|z   | j        z   dz   |z   dz   |z              |S )	Nr   r(      r   r   r   rg      )rp   rM   r   rH   rn   r	  )rw   
datalengthrZ  
verslengths       r   rV  zAifc_write._write_form_length}  s    : 	#dn"5"55JA~ ,'!^
JJJJTZZ$2B!B"#"$&(")+5"6 	7 	7 	7r   c                    | j                                         }| j        dz  r%| j        dz   }| j                             d           n| j        }|| j        k    r8| j        | j        k    r(| j        dk    r| j                             |d           d S | j                             | j	        d           | 
                    |          }| j                             | j        d           t          | j         | j                   | j                             | j        d           t          | j         |dz              | j                             |d           | j        | _        || _        d S )Nr(   rL   r   rg   )rn   r   r  r=   r  r   r  r	  r   rS  rV  rW  rH   rX  )rw   curposr^  r,   s       r   r>  zAifc_write._patchheader  sO   ""q  	+*Q.JJW%%%%*J)))mt333!##JOOFA&&&F
-q111''
33
)1---TZ!5666
-q111TZa000
""",%r   c                 "   t          | j                  dk    rd S | j                            d           d}| j        D ];}|\  }}}|t          |          z   dz   dz   }t          |          dz  dk    r|dz   }<t	          | j        |           |dz   | _        t          | j        t          | j                             | j        D ]G}|\  }}}t          | j        |           t	          | j        |           t          | j        |           Hd S )Nr   ri   r"   r(      rg   )rM   rl   rn   r=   rH   r	  rA   rP   )rw   r*   r   r   r   r   s         r   rA  zAifc_write._writemarkers  s%   t}""F
!!!m 	$ 	$F"MBTc$ii'!+a/F4yy1}!!!TZ(((!A:TZT]!3!3444m 	, 	,F"MBTR(((S)))$*d++++		, 	,r   ))r	   r
   r   rn   r   r{   r  r   r   r  r  r  r   r  r   r  r   r"  r   r*  r   r   r/  r   r3  r   r   r   r<  r?  r   rD  rG  rJ  rL  r;  rQ  rN  rV  r>  rA  r   r   r   r   r   #  sJ       < E     "        
  
$ $ $  
$ $ $  
$ $ $  
     
$ $ $" " "    - - -K K K. . .> > >  
$ $ $	: 	: 	:       2) ) )) ) )  ) ) )) ) )&+ + +1$ 1$ 1$f  & & &,, , , , ,r   r   c                     |t          | d          r| j        }nd}|dv rt          |           S |dv rt          |           S t	          d          )Nmoder}   )rr}   )r   r  z$mode must be 'r', 'rb', 'w', or 'wb')r   re  r`   r   r   )r5   re  s     r   r   r     sd    |1f 	6DDD{||			!}}:;;;r   __main__r(   z/usr/demos/data/audio/bach.aiffrf  Readingznchannels =znframes   =zsampwidth =zframerate =zcomptype  =zcompname  =r"   Writingr   i   zDone.r   );r   r   r   __all___deprecatedr	   	Exceptionr   r  r   r   r#   r&   r-   r3   r:   rA   rD   rF   rH   rP   rZ   r   r   r   rx   r\   collectionsr]   r^   r  __doc__r  r  r   r(  r)  r`   r   r   sysargvr   fnr5   printr   r   r   r   r   r   gngr/  r   r   r+   r?  r   r   r   <module>ru     s  FP   F
  Xg . . . .	 	 	 	 	I 	 	 	 ! ! !! ! !! ! !! ! !   "	  "" " "" " "" " "" " "    B X  H($6777               # " " " " "z.SU U "W  !8  !5  7   J  "%  
M M M M M M M M^N, N, N, N, N, N, N, N,`< < < < zJJJ8ABB< ;9:::	!B	b# !imQ^^--...mQ\\^^,,,mQ^^--...mQ^^--...mQ]]__---mQ]]__---8ABB< 
	!BE)R   b# (!AKKMM***(<<--D MM$'''	( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( E'NNN%                  sJ   )BBBC5KAJ6*K6J:	:K=J:	>KK K