
    =Og                        	 d dl Z  e j        ed           ddgZ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 Zd Zg Zd Ze                    e           d Ze                    e           d Ze                    e           d Ze                    e           d Ze                    e           d Ze                    e           d Ze                    e           d Ze                    e           d Zd Zd Zd Zd Zd Zedk    r e             dS dS )    N)      )removewhatwhathdr)
namedtuple
SndHeadersz.filetype framerate nchannels nframes sampwidthzThe value for type indicates the data type
and will be one of the strings 'aifc', 'aiff', 'au','hcom',
'sndr', 'sndt', 'voc', 'wav', '8svx', 'sb', 'ub', or 'ul'.zYThe sampling_rate will be either the actual
value or 0 if unknown or difficult to decode.z^The number of channels or 0 if it cannot be
determined or if the value is difficult to decode.z?The value for frames will be either the number
of frames or -1.zAEither the sample size in bits or
'A' for A-LAW or 'U' for u-LAW.c                 &    	 t          |           }|S )N)r   )filenameress     /usr/lib64/python3.11/sndhdr.pyr   r   8   s    )
(

CJ    c                     	 t          | d          5 }|                    d          }t          D ]'} |||          }|rt          | c cd d d            S (	 d d d            d S # 1 swxY w Y   d S )Nrbi   )openreadtestsr	   )r   fhtfr   s        r   r   r   >   s    "	h		 FF3KK 	( 	(B"Q((C (!3'''       (                 s   7A%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d S | dd         dk    rd}n| dd         d	k    rd
}nd S |                    d           	 |                    |d          }n# t          |j	        f$ r Y d S w xY w||
                                |                                |                                d|                                z  fS )Nignore)categoryr      FORM      s   AIFCaifcs   AIFFaiffr)warningscatch_warningssimplefilterDeprecationWarningr   
startswithseekr   EOFErrorErrorgetframerategetnchannels
getnframesgetsampwidth)r   r   r   fmtas        r   	test_aifcr.   O   sp   		 	"	"  h1CDDDD               <<   t2w'	
1R4G		tFF1IIIIIadj!   tt!!1>>#3#3LLNNA 0 002 2s#    AAAB4 4C	C	c                    	 |                      d          rt          }n| d d         dv rt          }nd S d} || dd                   } || dd                   } || dd                   } || dd                   } || dd	                   }d
}	|d
k    rd}
n|dk    rd}
n|dk    rd}
d}	nd}
|	|z  }|r||z  }nd}|||||
fS )Ns   .snd   )s    ds.s   dns.aur   r               U   r   ?)r$   get_long_beget_long_le)r   r   funcfiletypehdr_size	data_sizeencodingrate	nchannelssample_sizesample_bits
frame_sizenframes                r   test_aurG   g   s!   ||G 	
2A2%	%	%tHtAacF||HQqtWItAbeH~~H4"R%>>DQr"uXIK1}}	Q	Qy(J Z'T9fk99r   c                     	 | dd         dk    s| dd         dk    rd S t          | dd                   }|rd	|z  }nd
}d|dddfS )NA   E   s   FSSD      s   HCOM      i"V  r   hcomr5   r9   r   )r:   )r   r   divisorrA   s       r   	test_hcomrQ      sm    Bx7aCjG33t!CG*%%G w4B!!r   c                     	 |                      d          sd S t          | dd                   }d}d|cxk    rdk     r1n n.| |         dk    r"d| |dz            z
  }|rt          d	|z            }d
|dddfS )Ns   Creative Voice Filer3      r   i  r5      r0   g    .Avocr9   r   )r$   get_short_leint)r   r   sbseekrA   ratecodes        r   test_vocrZ      s    <<233 t!BrE(##FDFSQvY!^^6!8$ 	-y8+,,D$2q  r   c                    	 dd l }|                     d          r| dd         dk    s| dd         dk    rd S |                    d           	 |                    |d          }n# t          |j        f$ r Y d S w xY wd	|                                |                                |                                d|	                                z  fS )
Nr   s   RIFFr   r   s   WAVEr2   s   fmt r   wav)
waver$   r%   r   r&   r'   r(   r)   r*   r+   )r   r   r]   ws       r   test_wavr_      s    KKK<<   AadGw$6$6!BrE(g:M:MtFF1IIIIIadj!   tt1>>##Q^^%5%5<<>>1Q^^%5%5#57 7s   A& &A;:A;c                 R    	 |                      d          r| dd         dk    rd S dS )Nr   r   r   s   8SVX)8svxr   r5   r   r   )r$   )r   r   s     r   	test_8svxrb      s6    <<   AadGw$6$6tr   c                     	 |                      d          r5t          | dd                   }t          | dd                   }d|d|dfS d S )Ns   SOUNDr   r   r3   rS   sndtr5   )r$   r;   rV   )r   r   nsamplesrA   s       r   	test_sndtrf      s^    ||H ,q2w''AbeH%%tQ!++, ,r   c                     	 |                      d          r/t          | dd                   }d|cxk    rdk    rn d S d|ddd	fS d S d S )
Ns     r7   r0   i  ia  sndrr5   r9   r   )r$   rV   )r   r   rA   s      r   	test_sndrri      st    ||G *AacF##4    5      4B))* *  r   c                 Z    | d         dz  | d         dz  z  | d         dz  z  | d         z  S )Nr   r4   r5   r2   r7   r   r    bs    r   r:   r:      3    aDBJ1Q42:&!A$!)4qt;;r   c                 Z    | d         dz  | d         dz  z  | d         dz  z  | d         z  S )Nr   r4   r7   r2   r5   r   r   rk   rl   s    r   r;   r;      rn   r   c                 *    | d         dz  | d         z  S )Nr   r   r5   rk   rl   s    r   get_short_berq          aDAI1r   c                 *    | d         dz  | d         z  S )Nr5   r   r   rk   rl   s    r   rV   rV      rr   r   c                  n   dd l } d}| j        dd          r| j        d         dk    r| j        dd= d}	 | j        dd          r t          | j        dd          |d           d S t          dg|d           d S # t          $ r3 | j                            d           |                     d           Y d S w xY w)Nr   r5   z-rr7   .z
[Interrupted]
)sysargvtestallKeyboardInterruptstderrwriteexit)rv   	recursives     r   testr~      s    JJJI
x| t++HQqSM	8ABB< 	)CHQRRL)Q/////SE9a(((((   
,---s   -A7 #A7 79B43B4c                 F   dd l }dd l}| D ]}|j                            |          rt	          |dz   d           |s|rft	          d           dd l}|                    |j                            |                    |          d                    }t          ||d           t	          d           t	          |dz   d           |j	        
                                 	 t	          t          |                     # t          $ r t	          d	           Y w xY wd S )
Nr   z/: )endzrecursing down:*z*** directory (use -r) ***:z*** not found ***)rv   ospathisdirprintglobjoinescaperx   stdoutflushr   OSError)listr}   toplevelrv   r   r   r   namess           r   rx   rx      sL   JJJIII + +7=="" 	+(T/s++++ 4H 4'(((		"',,t{{8/D/Dc"J"JKKy!,,,,23333(S.c****J+d8nn%%%% + + +)*****++ +s   $DDD__main__)r    _deprecated__name____all__collectionsr   r	   r=   __doc__	frameraterB   nframes	sampwidthr   r   r   r.   appendrG   rQ   rZ   r_   rb   rf   ri   r:   r;   rq   rV   r~   rx   rk   r   r   <module>r      s_  :   Xg . . . .
 9
 " " " " " "ZHJ J
 >
  !1
  !6
  
  !#
       	2 2 2* Y   : : :> W   	" 	" 	" Y   
! 
! 
! X   7 7 7 X      Y   , , , Y   * * * Y   < < << < <      + + +* zDFFFFF r   