diff -r 000000000000 -r ae805ac0140d python-2.5.2/win32/Lib/sunaudio.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python-2.5.2/win32/Lib/sunaudio.py Fri Apr 03 17:19:34 2009 +0100 @@ -0,0 +1,44 @@ +"""Interpret sun audio headers.""" + +MAGIC = '.snd' + +class error(Exception): + pass + + +def get_long_be(s): + """Convert a 4-char value to integer.""" + return (ord(s[0])<<24) | (ord(s[1])<<16) | (ord(s[2])<<8) | ord(s[3]) + + +def gethdr(fp): + """Read a sound header from an open file.""" + if fp.read(4) != MAGIC: + raise error, 'gethdr: bad magic word' + hdr_size = get_long_be(fp.read(4)) + data_size = get_long_be(fp.read(4)) + encoding = get_long_be(fp.read(4)) + sample_rate = get_long_be(fp.read(4)) + channels = get_long_be(fp.read(4)) + excess = hdr_size - 24 + if excess < 0: + raise error, 'gethdr: bad hdr_size' + if excess > 0: + info = fp.read(excess) + else: + info = '' + return (data_size, encoding, sample_rate, channels, info) + + +def printhdr(file): + """Read and print the sound header of a named file.""" + hdr = gethdr(open(file, 'r')) + data_size, encoding, sample_rate, channels, info = hdr + while info[-1:] == '\0': + info = info[:-1] + print 'File name: ', file + print 'Data size: ', data_size + print 'Encoding: ', encoding + print 'Sample rate:', sample_rate + print 'Channels: ', channels + print 'Info: ', repr(info)