1 """Interpret sun audio headers."""
5 class error(Exception):
10 """Convert a 4-char value to integer."""
11 return (ord(s
[0])<<24) |
(ord(s
[1])<<16) |
(ord(s
[2])<<8) |
ord(s
[3])
15 """Read a sound header from an open file."""
16 if fp
.read(4) != MAGIC
:
17 raise error
, 'gethdr: bad magic word'
18 hdr_size
= get_long_be(fp
.read(4))
19 data_size
= get_long_be(fp
.read(4))
20 encoding
= get_long_be(fp
.read(4))
21 sample_rate
= get_long_be(fp
.read(4))
22 channels
= get_long_be(fp
.read(4))
23 excess
= hdr_size
- 24
25 raise error
, 'gethdr: bad hdr_size'
27 info
= fp
.read(excess
)
30 return (data_size
, encoding
, sample_rate
, channels
, info
)
34 """Read and print the sound header of a named file."""
35 hdr
= gethdr(open(file, 'r'))
36 data_size
, encoding
, sample_rate
, channels
, info
= hdr
37 while info
[-1:] == '\0':
39 print 'File name: ', file
40 print 'Data size: ', data_size
41 print 'Encoding: ', encoding
42 print 'Sample rate:', sample_rate
43 print 'Channels: ', channels
44 print 'Info: ', repr(info
)