Mercurial > cpython-lru_cache-weakref
annotate Lib/sunaudio.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | f9481aa5e776 |
| children | 6f4146846337 |
| rev | line source |
|---|---|
| 103 | 1 # Module 'sunaudio' -- interpret sun audio headers |
| 2 | |
| 3 MAGIC = '.snd' | |
| 4 | |
| 5 error = 'sunaudio sound header conversion error' | |
| 6 | |
| 7 | |
| 8 # convert a 4-char value to integer | |
| 9 | |
|
879
f9481aa5e776
Remove reference to obsolete module 'audio'
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
10 def get_long_be(s): |
|
f9481aa5e776
Remove reference to obsolete module 'audio'
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
11 return (ord(s[0])<<24) | (ord(s[1])<<16) | (ord(s[2])<<8) | ord(s[3]) |
| 103 | 12 |
| 13 | |
| 14 # read a sound header from an open file | |
| 15 | |
| 16 def gethdr(fp): | |
| 17 if fp.read(4) <> MAGIC: | |
| 18 raise error, 'gethdr: bad magic word' | |
|
879
f9481aa5e776
Remove reference to obsolete module 'audio'
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
19 hdr_size = get_long_be(fp.read(4)) |
|
f9481aa5e776
Remove reference to obsolete module 'audio'
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
20 data_size = get_long_be(fp.read(4)) |
|
f9481aa5e776
Remove reference to obsolete module 'audio'
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
21 encoding = get_long_be(fp.read(4)) |
|
f9481aa5e776
Remove reference to obsolete module 'audio'
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
22 sample_rate = get_long_be(fp.read(4)) |
|
f9481aa5e776
Remove reference to obsolete module 'audio'
Guido van Rossum <guido@python.org>
parents:
559
diff
changeset
|
23 channels = get_long_be(fp.read(4)) |
| 103 | 24 excess = hdr_size - 24 |
| 25 if excess < 0: | |
| 26 raise error, 'gethdr: bad hdr_size' | |
| 27 if excess > 0: | |
| 28 info = fp.read(excess) | |
| 29 else: | |
| 30 info = '' | |
| 31 return (data_size, encoding, sample_rate, channels, info) | |
| 32 | |
| 33 | |
| 34 # read and print the sound header of a named file | |
| 35 | |
| 36 def printhdr(file): | |
| 37 hdr = gethdr(open(file, 'r')) | |
| 38 data_size, encoding, sample_rate, channels, info = hdr | |
| 559 | 39 while info[-1:] == '\0': |
| 103 | 40 info = info[:-1] |
| 41 print 'File name: ', file | |
| 42 print 'Data size: ', data_size | |
| 43 print 'Encoding: ', encoding | |
| 44 print 'Sample rate:', sample_rate | |
| 45 print 'Channels: ', channels | |
| 46 print 'Info: ', `info` |
