diff options
-rw-r--r-- | Lib/sunaudio.py | 22 |
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' |