summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/sunaudio.py22
1 files changed, 7 insertions, 15 deletions
diff --git a/Lib/sunaudio.py b/Lib/sunaudio.py
index b6e5047..96def15 100644
--- a/Lib/sunaudio.py
+++ b/Lib/sunaudio.py
@@ -1,7 +1,5 @@
# Module 'sunaudio' -- interpret sun audio headers
-import audio
-
MAGIC = '.snd'
error = 'sunaudio sound header conversion error'
@@ -9,14 +7,8 @@ error = 'sunaudio sound header conversion error'
# convert a 4-char value to integer
-def c2i(data):
- if type(data) <> type('') or len(data) <> 4:
- raise error, 'c2i: bad arg (not string[4])'
- bytes = audio.chr2num(data)
- for i in (1, 2, 3):
- if bytes[i] < 0:
- bytes[i] = bytes[i] + 256
- return ((bytes[0]*256 + bytes[1])*256 + bytes[2])*256 + bytes[3]
+def get_long_be(s):
+ return (ord(s[0])<<24) | (ord(s[1])<<16) | (ord(s[2])<<8) | ord(s[3])
# read a sound header from an open file
@@ -24,11 +16,11 @@ def c2i(data):
def gethdr(fp):
if fp.read(4) <> MAGIC:
raise error, 'gethdr: bad magic word'
- hdr_size = c2i(fp.read(4))
- data_size = c2i(fp.read(4))
- encoding = c2i(fp.read(4))
- sample_rate = c2i(fp.read(4))
- channels = c2i(fp.read(4))
+ 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'