summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/aifc.py26
-rwxr-xr-xLib/plat-sunos4/SUNAUDIODEV.py27
-rw-r--r--Lib/sunau.py46
-rwxr-xr-xLib/sunos4/SUNAUDIODEV.py27
4 files changed, 84 insertions, 42 deletions
diff --git a/Lib/aifc.py b/Lib/aifc.py
index e06b776..69d38dd 100644
--- a/Lib/aifc.py
+++ b/Lib/aifc.py
@@ -55,9 +55,7 @@
#
# Reading AIFF files:
# f = aifc.open(file, 'r')
-# or
-# f = aifc.openfp(filep, 'r')
-# where file is the name of a file and filep is an open file pointer.
+# where file is either the name of a file or an open file pointer.
# The open file pointer must have methods read(), seek(), and close().
# In some types of audio files, if the setpos() method is not used,
# the seek() method is not necessary.
@@ -90,9 +88,7 @@
#
# Writing AIFF files:
# f = aifc.open(file, 'w')
-# or
-# f = aifc.openfp(filep, 'w')
-# where file is the name of a file and filep is an open file pointer.
+# where file is either the name of a file or an open file pointer.
# The open file pointer must have methods write(), tell(), seek(), and
# close().
#
@@ -361,6 +357,12 @@ class Aifc_read:
# file for readframes()
# _ssnd_chunk -- instantiation of a chunk class for the SSND chunk
# _framesize -- size of one frame in the file
+
+ access _file, _nchannels, _nframes, _sampwidth, _framerate, \
+ _comptype, _compname, _markers, _soundpos, _version, \
+ _decomp, _comm_chunk_read, __aifc, _ssnd_seek_needed, \
+ _ssnd_chunk, _framesize: private
+
def initfp(self, file):
self._file = file
self._version = 0
@@ -524,6 +526,8 @@ class Aifc_read:
#
# Internal methods.
#
+ access *: private
+
def _decomp_data(self, data):
dummy = self._decomp.SetParam(CL.FRAME_BUFFER_SIZE,
len(data) * 2)
@@ -635,13 +639,17 @@ class Aifc_write:
# _datalength -- the size of the audio samples written to the header
# _datawritten -- the size of the audio samples actually written
+ access _file, _comptype, _compname, _nchannels, _sampwidth, \
+ _framerate, _nframes, _aifc, _version, _comp, \
+ _nframeswritten, _datalength, _datawritten: private
+
def __init__(self, f):
if type(f) == type(''):
filename = f
f = builtin.open(f, 'w')
else:
+ # else, assume it is an open file object already
filename = '???'
- # else, assume it is an open file object already
self.initfp(f)
if filename[-5:] == '.aiff':
self._aifc = 0
@@ -826,6 +834,8 @@ class Aifc_write:
#
# Internal methods.
#
+ access *: private
+
def _comp_data(self, data):
dum = self._comp.SetParam(CL.FRAME_BUFFER_SIZE, len(data))
dum = self._comp.SetParam(CL.COMPRESSED_BUFFER_SIZE, len(data))
@@ -987,6 +997,6 @@ def open(f, mode):
elif mode == 'w':
return Aifc_write(f)
else:
- raise Error, 'mode must be \'r\' or \'w\''
+ raise Error, "mode must be 'r' or 'w'"
openfp = open # B/W compatibility
diff --git a/Lib/plat-sunos4/SUNAUDIODEV.py b/Lib/plat-sunos4/SUNAUDIODEV.py
index 7e46871..b66610d 100755
--- a/Lib/plat-sunos4/SUNAUDIODEV.py
+++ b/Lib/plat-sunos4/SUNAUDIODEV.py
@@ -2,15 +2,26 @@
# The names are the same as in audioio.h with the leading AUDIO_
# removed.
+# Not all values are supported on all releases of SunOS.
+
# Encoding types, for fields i_encoding and o_encoding
-ENCODING_ULAW = 1
-ENCODING_ALAW = 2
+ENCODING_NONE = 0 # no encoding assigned
+ENCODING_ULAW = 1 # u-law encoding
+ENCODING_ALAW = 2 # A-law encoding
+ENCODING_LINEAR = 3 # Linear PCM encoding
# Gain ranges for i_gain, o_gain and monitor_gain
-MIN_GAIN = 0
-MAX_GAIN = 255
+MIN_GAIN = 0 # minimum gain value
+MAX_GAIN = 255 # maximum gain value
+
+# Balance values for i_balance and o_balance
+
+LEFT_BALANCE = 0 # left channel only
+MID_BALANCE = 32 # equal left/right channel
+RIGHT_BALANCE = 64 # right channel only
+BALANCE_SHIFT = 3
# Port names for i_port and o_port
@@ -19,7 +30,9 @@ PORT_B = 2
PORT_C = 3
PORT_D = 4
-SPEAKER = PORT_A
-HEADPHONE = PORT_B
+SPEAKER = 0x01 # output to built-in speaker
+HEADPHONE = 0x02 # output to headphone jack
+LINE_OUT = 0x04 # output to line out
-MICROPHONE = PORT_A
+MICROPHONE = 0x01 # input from microphone
+LINE_IN = 0x02 # input from line in
diff --git a/Lib/sunau.py b/Lib/sunau.py
index 08e4d20..00c2a28 100644
--- a/Lib/sunau.py
+++ b/Lib/sunau.py
@@ -37,9 +37,7 @@
#
# Reading audio files:
# f = au.open(file, 'r')
-# or
-# f = au.openfp(filep, 'r')
-# where file is the name of a file and filep is an open file pointer.
+# where file is either the name of a file or an open file pointer.
# The open file pointer must have methods read(), seek(), and close().
# When the setpos() and rewind() methods are not used, the seek()
# method is not necessary.
@@ -72,9 +70,7 @@
#
# Writing audio files:
# f = au.open(file, 'w')
-# or
-# f = au.openfp(filep, 'w')
-# where file is the name of a file and filep is an open file pointer.
+# where file is either the name of a file or an open file pointer.
# The open file pointer must have methods write(), tell(), seek(), and
# close().
#
@@ -151,6 +147,20 @@ def _write_u32(file, x):
file.write(chr(int(data[i])))
class Au_read:
+ access _file, _soundpos, _hdr_size, _data_size, _encoding, \
+ _sampwidth, _framesize, _framerate, _nchannels, \
+ _framesize, _info: private
+
+ def __init__(self, f):
+ if type(f) == type(''):
+ import builtin
+ f = builtin.open(f, 'r')
+ self.initfp(f)
+
+ def __del__(self):
+ if self._file:
+ self.close()
+
def initfp(self, file):
self._file = file
self._soundpos = 0
@@ -193,16 +203,6 @@ class Au_read:
else:
self._info = ''
- def __init__(self, f):
- if type(f) == type(''):
- import builtin
- f = builtin.open(f, 'r')
- self.initfp(f)
-
- def __del__(self):
- if self._file:
- self.close()
-
def getfp(self):
return self._file
@@ -278,12 +278,20 @@ class Au_read:
self._file = None
class Au_write:
+ access _file, _framerate, _nchannels, _sampwidth, _framesize, \
+ _nframes, _nframeswritten, _datawritten, _info, \
+ _comptype: private
+
def __init__(self, f):
if type(f) == type(''):
import builtin
f = builtin.open(f, 'w')
self.initfp(f)
+ def __del__(self):
+ if self._file:
+ self.close()
+
def initfp(self, file):
self._file = file
self._framerate = 0
@@ -297,10 +305,6 @@ class Au_write:
self._info = ''
self._comptype = 'ULAW' # default is U-law
- def __del__(self):
- if self._file:
- self.close()
-
def setnchannels(self, nchannels):
if self._nframeswritten:
raise Error, 'cannot change parameters after starting to write'
@@ -404,6 +408,8 @@ class Au_write:
#
# private methods
#
+ access *: private
+
def _ensure_header_written(self):
if not self._nframeswritten:
if not self._nchannels:
diff --git a/Lib/sunos4/SUNAUDIODEV.py b/Lib/sunos4/SUNAUDIODEV.py
index 7e46871..b66610d 100755
--- a/Lib/sunos4/SUNAUDIODEV.py
+++ b/Lib/sunos4/SUNAUDIODEV.py
@@ -2,15 +2,26 @@
# The names are the same as in audioio.h with the leading AUDIO_
# removed.
+# Not all values are supported on all releases of SunOS.
+
# Encoding types, for fields i_encoding and o_encoding
-ENCODING_ULAW = 1
-ENCODING_ALAW = 2
+ENCODING_NONE = 0 # no encoding assigned
+ENCODING_ULAW = 1 # u-law encoding
+ENCODING_ALAW = 2 # A-law encoding
+ENCODING_LINEAR = 3 # Linear PCM encoding
# Gain ranges for i_gain, o_gain and monitor_gain
-MIN_GAIN = 0
-MAX_GAIN = 255
+MIN_GAIN = 0 # minimum gain value
+MAX_GAIN = 255 # maximum gain value
+
+# Balance values for i_balance and o_balance
+
+LEFT_BALANCE = 0 # left channel only
+MID_BALANCE = 32 # equal left/right channel
+RIGHT_BALANCE = 64 # right channel only
+BALANCE_SHIFT = 3
# Port names for i_port and o_port
@@ -19,7 +30,9 @@ PORT_B = 2
PORT_C = 3
PORT_D = 4
-SPEAKER = PORT_A
-HEADPHONE = PORT_B
+SPEAKER = 0x01 # output to built-in speaker
+HEADPHONE = 0x02 # output to headphone jack
+LINE_OUT = 0x04 # output to line out
-MICROPHONE = PORT_A
+MICROPHONE = 0x01 # input from microphone
+LINE_IN = 0x02 # input from line in