Qf.H ddlmZddlZejededdZdZdZd Zd Z d Z d Z d Z dZ dZdZdZdZdZdZeee e e egZGddeZdZdZGddZGddZddZy)) namedtupleN) )remove _sunau_paramsz7nchannels sampwidth framerate nframes comptype compnameidns.rlc eZdZy)ErrorN)__name__ __module__ __qualname__,/opt/alt/python312/lib64/python3.12/sunau.pyrrsrrc~d}tdD],}|jd}|st|dzt|z}.|S)Nrr r)rangereadEOFErrorord)filexibytes r _read_u32r%sC A 1Xyy|N cECI   Hrcg}tdD].}t|d\}}|jdt||}0|j t |y)Nr rr)rdivmodinsertintwritebytes)r!r"datar#dms r _write_u32r/sM D 1Xa~1 As1v  JJuT{rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZy)Au_readct|trddl}|j|d}d|_nd|_|j |y)NrrbTF isinstancestrbuiltinsopen_openedinitfpselffr7s r__init__zAu_read.__init__8 a   a&ADL DL Arc>|jr|jyyN_filecloser<s r__del__zAu_read.__del__s :: JJL rc|SrArrEs r __enter__zAu_read.__enter__ rc$|jyrArDr<argss r__exit__zAu_read.__exit__  rcR||_d|_tt|}|tk7r t dtt||_|j dkr t d|j dkDr t dt||_|jtk7rt|j|_tt||_ |jtvr t d|jttfvrd|_ d |_n|jtk(rd x|_|_ nq|jt k(rdx|_|_ nO|jt"k(rd x|_|_ n-|jt$k(rd x|_|_ n t d tt||_tt||_|j(s t d |j|j(z|_|j dkDrH|j+|j dz |_|j,j/d\|_}}nd|_ |j1|_y#t4t6f$r d|_YywxYw)Nrzbad magic numberrzheader size too smalldzheader size ridiculously largezencoding not (yet) supportedr rrr zunknown encodingzbad # of channelsr)rC _soundposr)r%AUDIO_FILE_MAGICr _hdr_size _data_sizeAUDIO_UNKNOWN_SIZE _encoding_simple_encodingsAUDIO_FILE_ENCODING_MULAW_8AUDIO_FILE_ENCODING_ALAW_8 _sampwidth _framesizeAUDIO_FILE_ENCODING_LINEAR_8AUDIO_FILE_ENCODING_LINEAR_16AUDIO_FILE_ENCODING_LINEAR_24AUDIO_FILE_ENCODING_LINEAR_32 _framerate _nchannelsr_info partitiontell _data_posAttributeErrorOSError)r<r!magic_s rr:zAu_read.initfps IdO$ $ $*+ +Yt_- >>B /0 0 >>C 89 9#D/ ??0 0!$//2DOYt_- >>!2 267 7 >>9,. .DODO ^^; ;01 1DOdo ^^< <01 1DOdo ^^< <01 1DOdo ^^< <01 1DOdo*+ +io.io.+, ,//DOO; >>B 4>>B#67DJ#zz33E: DJ1DJ "!YY[DN( "!DN "s7J J&%J&c|jSrA)rCrEs rgetfpz Au_read.getfps zzrc|jSrA)rcrEs r getnchannelszAu_read.getnchannels rc|jSrA)r\rEs r getsampwidthzAu_read.getsampwidthrprc|jSrA)rbrEs r getframeratezAu_read.getframeraterprc|jtk(rtS|jtvr|j|jzSy)Nr)rVrWrXrYr]rEs r getnframeszAu_read.getnframess8 ??0 0% % >>. .??doo5 5rcT|jtk(ry|jtk(ryy)NULAWALAWNONErXrZr[rEs r getcomptypezAu_read.getcomptypes% >>8 8 ^^9 9rcT|jtk(ry|jtk(ryy)NCCITT G.711 u-lawCCITT G.711 A-lawnot compressedr{rEs r getcompnamezAu_read.getcompnames% >>8 8& ^^9 9&#rc t|j|j|j|j |j |j SrArrorrrtrvr|rrEs r getparamszAu_read.getparamsQT..0$2C2C2E##%t'8""$d&6&6&8: :rcyrArrEs r getmarkerszAu_read.getmarkers srctd)Nzno marks)r)r<ids rgetmarkzAu_read.getmarks Jrc|jtvr|tk(r|jj }n(|jj ||j z}|xj t||j zz c_|jtk(rXtj5tjdtddl }dddj||j}|Sy#1swY(xYw)Nignorecategoryr)rXrYrWrCrr]rSlenrZwarningscatch_warnings simplefilterDeprecationWarningaudioopulaw2linr\)r<nframesr,rs r readframeszAu_read.readframess >>. .,,zz(zzw'@A NNc$i4??: :N~~!<<,,.))(=OP"/''doo>K /.s 1 C88Dc|j td|jj|jd|_y)N cannot seekr)rgrirCseekrSrEs rrewindzAu_read.rewind s2 >> !-( ( 'rc|jSrA)rSrEs rrfz Au_read.tell& ~~rc|dks||jkDr td|j td|jj |j||j zz||_y)Nrzposition not in ranger)rvrrgrirCrr]rS)r<poss rsetposzAu_read.setpos)sa 7cDOO--/0 0 >> !-( ( t)>>?rcj|j}|r%d|_|jr|jyyyrA)rCr9rDr<r!s rrDz Au_read.close1s/zz DJ||  rN)rrrr>rFrHrNr:rmrorrrtrvr|rrrrrrrfrrDrrrr1r1sg,"\$:    rr1ceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZy)Au_writect|trddl}|j|d}d|_nd|_|j |y)NrwbTFr4r;s rr>zAu_write.__init__:r?rcJ|jr|jd|_yrArBrEs rrFzAu_write.__del__Cs :: JJL rc|SrArrEs rrHzAu_write.__enter__HrIrc$|jyrArKrLs rrNzAu_write.__exit__KrOrc||_d|_d|_d|_d|_t |_d|_d|_d|_ d|_ d|_ y)Nrrrx) rCrbrcr\r]rW_nframes_nframeswritten _datawritten _datalengthrd _comptypers rr:zAu_write.initfpNsR *   rc^|jr td|dvr td||_y)N0cannot change parameters after starting to write)rr r z"only 1, 2, or 4 channels supported)rrrc)r< nchannelss r setnchannelszAu_write.setnchannels[s2   JK K I %<= =#rcH|js td|jS)Nznumber of channels not set)rcrrEs rrozAu_write.getnchannelsb45 5rc^|jr td|dvr td||_y)Nr)rr rr zbad sample width)rrr\)r< sampwidths r setsampwidthzAu_write.setsampwidthgs2   JK K L (*+ +#rcH|js td|jS)Nsample width not specified)rbrr\rEs rrrzAu_write.getsampwidthnrrc@|jr td||_y)Nr)rrrb)r< framerates r setframeratezAu_write.setframeratess   JK K#rcH|js td|jS)Nzframe rate not set)rbrrEs rrtzAu_write.getframeratexs,- -rc`|jr td|dkr td||_y)Nrrz# of frames cannot be negative)rrr)r<rs r setnframeszAu_write.setnframes}s1   JK K Q;89 9 rc|jSrArrEs rrvzAu_write.getnframes###rc0|dvr||_ytd)N)rzrxzunknown compression type)rr)r<typenames r setcomptypezAu_write.setcomptypes # #!DN23 3rc|jSrArrEs rr|zAu_write.getcomptyperrcD|jdk(ry|jdk(ryy)Nrxr~ryrrrrEs rrzAu_write.getcompnames# >>V #& ^^v %&#rc|\}}}}}}|j||j||j||j||j ||yrA)rrrrr)r<paramsrrrrcomptypecompnames r setparamszAu_write.setparamssZGMD 9i(H )$ )$ )$   8,rc t|j|j|j|j |j |j SrArrEs rrzAu_write.getparamsrrc|jSrArrEs rrfz Au_write.tellrrc2t|ttfst|j d}|j |j dk(rXtj5tjdtddl }dddj||j}t||jz}|j j#||j$|z|_|j&t|z|_y#1swYxYw)NBrxrrr)r5r+ bytearray memoryviewcast_ensure_header_writtenrrrrrrlin2ulawr\rr]rCr*rr)r<r,rrs rwriteframesrawzAu_write.writeframesraws$ 23d#((-D ##% >>V #((*%%h9KL+##D$//:Dd)t. #33g= --D 9+*s $ D  Dc|j||j|jk7s|j|jk7r|j yyrA)rrrrr _patchheader)r<r,s r writeframeszAu_write.writeframessG D!   4== 0""d&7&77    8rc|jr |j|j|jk7s|j|j k7r|j |jj|j}d|_|jr|jyyy#|j}d|_|jr|jwwxYwrA) rCrrrrrrflushr9rDrs rrDzAu_write.closes :: !++-''4==8((D,=,==%%'   "zz! <<JJL  zz! <<JJL s A,B,,2Cc|jsV|js td|js td|js td|j yy)Nz# of channels not specifiedrzframe rate not specified)rrcrr\rb _write_headerrEs rrzAu_write._ensure_header_writtensU##??9::??899??677    $rc|jdk(r|jdk(rt}d|_n|jdk(rt}d|_nm|jdk(rt }d|_nP|jdk(rt }d|_n3td|jdk(rt}d|_n td|j|jz|_t|jtdt|jz}|d zd z}t|j||jt k(rt }n|j|jz} |jj#|_t|j|||_t|j|t|j|j,t|j|j|jj/|j|jj/d |t|jz d z zy#t&t(f$r d|_YwxYw) Nrzrr rr zinternal errorrxrr irRr)rr\r^r]r_r`rarrZrcr/rCrTrrdrrWrf_form_length_posrhrirrbr*)r<encoding header_sizelengths rrzAu_write._write_headers >>V #!#7"#A%8"#A%8"#A%8"#,-- ^^v %2HDO() )//DOO;4::/03tzz?* "Q", 4::{+ ==. .'F]]T__4F )$(JJOO$5D ! 4::v&!4::x(4::t/4::t/ $  c$**o = BCD( )$(D ! )sII! I!c|j td|jj|jt |j|j |j |_|jjddy)Nrrr )rrirCrr/rrrEs rrzAu_write._patchheadersc  (-( ( --.4::t001,, 1rN)rrrr>rFrHrNr:rrorrrrrtrrvrr|rrrrfrrrDrrrrrrrr8s   $ $ $   $4 $-: $ : !$!(ETrrc|t|dr |j}nd}|dvr t|S|dvr t|St d)Nmoder3)rr3)wrz$mode must be 'r', 'rb', 'w', or 'wb')hasattrrr1rr)r=rs rr8r8 sO | 1f 66DD {qz  {:;;rrA) collectionsrr _deprecatedrrrTrZr^r_r`raAUDIO_FILE_ENCODING_FLOATAUDIO_FILE_ENCODING_DOUBLEAUDIO_FILE_ENCODING_ADPCM_G721AUDIO_FILE_ENCODING_ADPCM_G722 AUDIO_FILE_ENCODING_ADPCM_G723_3 AUDIO_FILE_ENCODING_ADPCM_G723_5r[rWrY Exceptionrr%r/r1rr8rrrrsgR#Xg.?TV   ! ! !!#!##% #%  01222/ 1 I  VVpPPd