
    z%i                     `   	 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       d dlmZ  edd      Zdej<                  _        dej@                  _        dejB                  _        dejD                  _        dejF                  _        dejH                  _         G d  d!      Z% G d" d#      Z&d5d$Z'ed%k(  rkd dl(Z(e(jR                  d&d se(jR                  jU                  d'       e(jR                  d&   Z+ e'e+d(      5 Z, e-d)e+        e-d*e,j]                                 e-d+e,j_                                 e-d,e,ja                                 e-d-e,jc                                 e-d.e,je                                 e-d/e,jg                                e(jR                  d0d rye(jR                  d0   Z4 e-d1e4        e'e4d2      5 Z5e5jm                  e,jo                                	 e,jq                  d3      Z9e9sne5ju                  e9       &	 ddd        e-d4       ddd       yy# 1 sw Y   	xY w# 1 sw Y   (xY w# 1 sw Y   yxY w)6    NErroropen)      )removec                       e Zd Zy)r   N)__name__
__module____qualname__     8/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/aifc.pyr   r      s    r   l   @Q E c                     	 t        j                  d| j                  d            d   S # t         j                  $ r t        d w xY w)N>l   r   structunpackreaderrorEOFErrorfiles    r   
_read_longr      @    !}}T499Q<033<< !D !	   '* Ac                     	 t        j                  d| j                  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| j                  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| j                  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        | j                  d            }|dk(  rd}n| j                  |      }|dz  dk(  r| j                  d      }|S )N   r   r   )ordr   )r   lengthdatadummys       r   _read_stringr-      sK    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} || z  S |dk(  rt        } || z  S |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    NEDqy^F^F%&%A% !8O 
& !8O k!F*c#urz.BB!8Or   c                 N    | j                  t        j                  d|             y )Nr!   writer   packr5   xs     r   _write_shortrA          GGFKKa !r   c                 N    | j                  t        j                  d|             y )Nr%   r<   r?   s     r   _write_ushortrD      rB   r   c                 N    | j                  t        j                  d|             y )Nr   r<   r?   s     r   _write_longrF      rB   r   c                 N    | j                  t        j                  d|             y )Nr   r<   r?   s     r   _write_ulongrH      rB   r   c                     t        |      dkD  rt        d      | j                  t        j                  dt        |                   | j                  |       t        |      dz  dk(  r| j                  d       y y )N   z%string exceeds maximum pstring lengthBr(   r       )len
ValueErrorr=   r   r>   )r5   ss     r   _write_stringrP      s_    
1v|@AAGGFKKSV$%GGAJ
1vzQ	 r   c                    dd l }|dk  rd}|dz  }nd}|dk(  rd}d}d}n|j                  |      \  }}|dkD  s
|dk\  s||k7  r
|dz  }d}d}n|dz   }|dk  r|j                  ||      }d}||z  }|j                  |d      }|j                  |      }t	        |      }|j                  ||z
  d      }|j                  |      }t	        |      }t        | |       t        | |       t        | |       y )	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      s
   1uFAvzz!}u5=EQJ%5.KEFFEMEqy

5%0DLEJJub)EZZ&F[FJJuv~r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y)	Aifc_readNc                    d| _         d | _        g | _        d| _        || _        t        |      }|j                         dk7  rt        d      |j                  d      }|dk(  rd| _	        n|dk(  rd| _	        nt        d      d| _
        d | _        	 d| _        	 t        | j                        }|j                         }|d	k(  r| j                  |       d| _
        nQ|d
k(  r || _        |j                  d      }d| _        n,|dk(  rt        |      | _         n|dk(  r| j!                  |       |j#                          # t        $ r Y nw xY w| j                  r| j                  st        d      y )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:  sk   
d==?g%:;;::a=wDJ DJ455 !%&D"djj) IG#%%e,()%g%#( 

1)*&g% +E 2g%u%JJL%    $$D,<,<>?? -=s   D? ?	E
Ec                     t        |t              r)t        j                  |d      }	 | j	                  |       y | j	                  |       y #  |j                           xY w)Nrb)
isinstancestrbuiltinsr   r{   closerw   r5   file_objects      r   __init__zAifc_read.__init__b  sP    a"--40KK( KKN!!#s   A Ac                     | S Nr   rw   s    r   	__enter__zAifc_read.__enter__n      r   c                 $    | j                          y 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    zzr   c                      d| _         d| _        y )Nr(   r   )rs   rm   r   s    r   rewindzAifc_read.rewindz  s    !"r   c                 P    | j                   }|d | _         |j                          y y r   )rn   r   rw   r   s     r   r   zAifc_read.close~  s&    zzDJJJL 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        | j                         | j                         | j                         | j	                         | j                         | j                               S r   )r^   r   r   r   r   r   r   r   s    r   	getparamszAifc_read.getparams  sS    D--/1B1B1D --/1B ,,.0@0@0BD 	Dr   c                 L    t        | j                        dk(  ry | j                  S Nr   rM   rl   r   s    r   
getmarkerszAifc_read.getmarkers       t}}"}}r   c                 p    | j                   D ]  }||d   k(  s|c S  t        dj                  |            Nr   zmarker {0!r} does not existrl   r   formatrw   idmarkers      r   getmarkzAifc_read.getmark  >    mm 	FVAY	 188<==r   c                 ^    |dk  s|| j                   kD  rt        d      || _        d| _        y )Nr   zposition not in ranger(   )r   r   rm   rs   )rw   poss     r   setposzAifc_read.setpos  s/    7cDMM)/00!"r   c                    | j                   rv| j                  j                  d       | j                  j                  d      }| j                  | j
                  z  }|r| j                  j                  |dz          d| _         |dk(  ry| j                  j                  || j
                  z        }| j                  r|r| j                  |      }| 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<$$Wt%>?==T==&D#d):>//9J +K Kr   c                     t        j                         5  t        j                  dt               dd l}d d d        j                  |d      S # 1 sw Y   xY wNr[   categoryr   r"   )warningscatch_warningssimplefilterDeprecationWarningaudioopalaw2linrw   r+   r   s      r   	_alaw2linzAifc_read._alaw2lin  L    $$& 	!!(5GH	 a((	 	    AAc                     t        j                         5  t        j                  dt               dd l}d d d        j                  |d      S # 1 sw Y   xY w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        t        | d      sd | _        j                  |d| j                        \  }| _        |S # 1 sw Y   CxY wNr[   r   r   _adpcmstater"   )r   r   r   r   r   hasattrr   	adpcm2linr   s      r   
_adpcm2linzAifc_read._adpcm2lin  sr    $$& 	!!(5GH	 t]+#D!(!2!24D<L<L!Md	 	    A77B c                     t        j                         5  t        j                  dt               dd l}d d d        j                  |d      S # 1 sw Y   xY wr   r   r   r   r   r   byteswapr   s      r   	_sowt2linzAifc_read._sowt2lin  r   r   c                 4   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                  r\d}|j                  dk(  rd}t        j                  d       d	|_        |j                  d
      | _        |rat!        |j"                  j                  d            }|dz  dk(  r|dz   }|j                  |z   |_        |j"                  j%                  dd       t'        |      | _        | j                  dk7  r| j                  dk(  r| j*                  | _        nk| j                  dv r| j.                  | _        nK| j                  dv r| j0                  | _        n+| j                  dv r| j2                  | _        nt        d      d| _        y y d| _        d| _        y )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1??a*++??a+,,//DOO;::F"$<="$"ZZ]DNUZZ__Q/0A:?#aZF"'//F":

A&)%0DN~~(>>W,$(OODM^^'99$(NNDM^^'99$(NNDM^^'99$(NNDM >??"# ) %DN.DNr   c                 |   t        |      }	 t        |      D ]F  }t        |      }t        |      }t        |      }|s|s)| j                  j                  |||f       H y # t        $ rP dt        | j                        dt        | j                        dk(  rdndd|}t        j                  |       Y y 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*$ MM(("c49:  	dmm$C,>!,Cb&LA MM!		s   3A"  A" "AB;:B;)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

>#*)))*/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(y)'
Aifc_writeNc                     t        |t              rBt        j                  |d      }	 | j	                  |       |j                  d      rd| _        y y | j	                  |       y #  |j                           xY w)Nwbz.aiffr   )r~   r   r   r   r{   r   endswithrp   r   s      r   r   zAifc_write.__init__C  sj    a"--40KK( zz'"
 # KKN!!#s   A% %A8c                     || _         t        | _        d| _        d| _        d | _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        g | _        d| _        d| _        y )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  so    
% * 
r   c                 $    | j                          y 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                 $    | j                          y r   r   r   s     r   r   zAifc_write.__exit__j  r   r   c                 @    | j                   rt        d      d| _        y )N0cannot change parameters after starting to writer   r  r   rp   r   s    r   aiffzAifc_write.aiffp      JKK
r   c                 @    | j                   rt        d      d| _        y )Nr  r(   r  r   s    r   aifczAifc_write.aifcu  r  r   c                 `    | j                   rt        d      |dk  rt        d      || _        y )Nr  r(   r   )r  r   r   )rw   	nchannelss     r   setnchannelszAifc_write.setnchannelsz  s1    JKKq=+,,#r   c                 H    | j                   st        d      | j                   S )Nznumber of channels not set)r   r   r   s    r   r   zAifc_write.getnchannels  s    455r   c                 j    | j                   rt        d      |dk  s|dkD  rt        d      || _        y )Nr  r(   r   r   )r  r   r   )rw   	sampwidths     r   setsampwidthzAifc_write.setsampwidth  s7    JKKq=IM*++#r   c                 H    | j                   st        d      | j                   S )Nzsample width not set)r   r   r   s    r   r   zAifc_write.getsampwidth  s    .//r   c                 `    | j                   rt        d      |dk  rt        d      || _        y )Nr  r   zbad frame rate)r  r   r   )rw   	framerates     r   setframeratezAifc_write.setframerate  s1    JKK>())#r   c                 H    | 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      || _        y )Nr  )r  r   r   )rw   r   s     r   
setnframeszAifc_write.setnframes  s    JKKr   c                     | j                   S r   r  r   s    r   r   zAifc_write.getnframes      ###r   c                 l    | j                   rt        d      |dvrt        d      || _        || _        y Nr  )r   r   r   r   r   r   r   r   r   )r  r   r   r   )rw   comptypecompnames      r   setcomptypezAifc_write.setcomptype  s@    JKK I I6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      | j                  |       | j                  |       | j	                  |       | j                  |       | j                  ||       y 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JKK I I6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  sU    dooT__011DOOT__doo MM4>>4>>K 	Kr   c                 N   |dk  rt        d      |dk  rt        d      t        |t              st        d      t        t	        | j
                              D ]+  }|| j
                  |   d   k(  s|||f| j
                  |<    y  | j
                  j                  |||f       y )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    7/007677$&344s4==)* 	AT]]1%a((#%sD=a 	 	b#t_-r   c                 p    | j                   D ]  }||d   k(  s|c S  t        dj                  |            r   r   r   s      r   r   zAifc_write.getmark  r   r   c                 L    t        | j                        dk(  ry | 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        |      j	                  d      }| j                  t        |             t        |      | j                  | j                  z  z  }| j                  r| j                  |      }| j                  j                  |       | j                  |z   | _        | j                  t        |      z   | _        y )NrK   )r~   r3  	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d#((-D##CI.d)$// AB====&D

#33g= --D	9r   c                     | j                  |       | j                  | j                  k7  s| j                  | j                  k7  r| j                          y y r   )r=  r  r   r	  r  _patchheader)rw   r+   s     r   writeframeszAifc_write.writeframes  sG    D!4==0$"3"33 4r   c                 ,   | j                   y 	 | j                  d       | j                  dz  r/| j                   j                  d       | j                  dz   | _        | j	                          | j
                  | j                  k7  s%| j                  | j                  k7  s| j                  r| j                          d | _
        | j                   }d | _         |j                          y # d | _
        | j                   }d | _         |j                          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    ::	''*  1$

  )$($5$5$9! ##t}}4""d&7&77""!!# !DM

ADJGGI !DM

ADJGGIs   B-C' ',Dc                     t        j                         5  t        j                  dt               dd l}d d d        j                  |d      S # 1 sw Y   xY w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        j                  |d      S # 1 sw Y   xY w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        t        | d      sd | _        j                  |d| j                        \  }| _        |S # 1 sw Y   CxY wr   )r   r   r   r   r   r   r   	lin2adpcmr   s      r   
_lin2adpcmzAifc_write._lin2adpcm  sr    $$& 	!!(5GH	 t]+#D!(!2!24D<L<L!Md	 	r   c                     t        j                         5  t        j                  dt               dd l}d d d        j                  |d      S # 1 sw Y   xY wr   r   r   s      r   	_lin2sowtzAifc_write._lin2sowt'  r   r   c                 @   | j                   s| j                  dv r-| j                  sd| _        | j                  dk7  rt        d      | j                  st        d      | j                  st        d      | j
                  st        d      | j                  |       y y )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 ??677??899??9::x(! $r   c                    | j                   dk(  r| j                  | _        y | j                   dv r| j                  | _        y | j                   dv r| j                  | _        y | j                   dv r| j
                  | _        y y )Nr   r   r   r   )r   rK  rk   rH  rE  rM  r   s    r   _init_compressionzAifc_write._init_compression@  sf    >>W$ OODM^^11 NNDM^^11 NNDM^^11 NNDM 2r   c                 h   | j                   r| j                  dk7  r| j                          | j                  j	                  d       | j
                  s!|| j                  | j                  z  z  | _        | j
                  | j                  z  | j                  z  | _        | j                  dz  r| j                  dz   | _        | j                   r| j                  dv r8| j                  dz  | _        | j                  dz  r^| j                  dz   | _        nI| j                  dk(  r:| j                  dz   dz  | _        | j                  dz  r| j                  dz   | _        	 | j                  j                         | _
        | j                  | j                        }| j                   rm| j                  j	                  d	       | j                  j	                  d
       t        | j                  d       t        | j                  | j                         n| j                  j	                  d       | j                  j	                  d       t        | j                  |       t!        | j                  | j                         | j                  | j                  j                         | _        t        | j                  | j
                         | j                  dv rt!        | j                  d       n#t!        | j                  | j                  dz         t%        | j                  | j&                         | j                   rE| j                  j	                  | j                         t)        | j                  | j*                         | j                  j	                  d       | j                  | j                  j                         | _        t        | j                  | j                  dz          t        | j                  d       t        | j                  d       y # t        t        f$ r d | _
        Y w xY w)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   rR  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   rO  zAifc_write._write_headerJ  s   ::$..G3""$

!}}&4??T__+LMDM==4??:T__La#//!3D::~~!EE#'#3#3q#8 ##a''+'7'7!';D$7*$($4$4q$8Q#> ##a''+'7'7!';D$	)$(JJOO$5D! ,,T-=-=>
::JJW%JJW%Q'T]]3JJW%

!TZZ,TZZ1  , $

 1DTZZ/>>JJQ'T__q%89TZZ1::JJT^^,$**dnn5

!  ,$(JJOO$5D!TZZ!1!1A!56TZZ#TZZ#; ( 	)$(D!	)s   P P10P1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   
datalengthr[  
verslengths       r   rW  zAifc_write._write_form_length}  s    ::#dnn"55JA~'!^
JJJTZZZ$2B2B!B"#"$&(")+5"6 	7r   c                 L   | j                   j                         }| j                  dz  r+| j                  dz   }| j                   j                  d       n| j                  }|| j                  k(  rE| j
                  | j                  k(  r,| j                  dk(  r| j                   j                  |d       y | j                   j                  | j                  d       | j                  |      }| j                   j                  | j                  d       t        | j                   | j                         | j                   j                  | j                  d       t        | j                   |dz          | j                   j                  |d       | j                  | _        || _        y )Nr(   rL   r   rg   )rn   r   r  r=   r	  r   r  r
  r   rT  rW  rX  rH   rY  )rw   curposr_  r,   s       r   r?  zAifc_write._patchheader  s5   "q **Q.JJJW%**J)))mmt333!#JJOOFA&

--q1''
3

))1-TZZ!5!56

--q1TZZa0

",,%r   c                 8   t        | j                        dk(  ry | j                  j                  d       d}| j                  D ]3  }|\  }}}|t        |      z   dz   dz   }t        |      dz  dk(  s/|dz   }5 t	        | j                  |       |dz   | _        t        | j                  t        | j                               | j                  D ]J  }|\  }}}t        | j                  |       t	        | j                  |       t        | j                  |       L y )Nr   ri   r"   r(      rg   )rM   rl   rn   r=   rH   r
  rA   rP   )rw   r*   r   r   r   r   s         r   rB  zAifc_write._writemarkers  s    t}}"

!mm 	$F"MBTc$i'!+a/F4y1}!!		$
 	TZZ(!A:TZZT]]!34mm 	,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   r0  r   r4  r   r   r   r=  r@  r   rE  rH  rK  rM  r<  rR  rO  rW  r?  rB  r   r   r   r  r  #  s    < E "

$
$
$
 
$"-K.>
$	: 2))))&+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   rf  r`   r  r   )r5   rf  s     r   r   r     sO    |1f66DD{|		!}:;;r   __main__r(   z/usr/demos/data/audio/bach.aiffrg  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gr0  r   r   r+   r@  r   r   r   <module>rv     s  FP   F
   Xg .	I 	 !!!! "	"""""B X H($67 #.SU "W   !8   !5   7    J   "%   
M M^N, N,`< z88AB<9:	!B	b# !imQ^^-.mQ\\^,mQ^^-.mQ^^-.mQ]]_-mQ]]_-88AB<!B)R b# (!AKKM*<<-DMM$'	  ( 'N%   ^( ( s2   *J%CJ$)AJ1J$JJ!	J$$J-