#! /usr/local/python import sys import audio import string import getopt import auds debug = [] DEF_RATE = 3 def main(): # gain = 100 rate = 0 starter = audio.write stopper = 0 # optlist, args = getopt.getopt(sys.argv[1:], 'adg:r:') # for optname, optarg in optlist: if 0: pass elif optname == '-d': debug.append(1) elif optname == '-g': gain = string.atoi(optarg) if not (0 < gain < 256): raise optarg.error, '-g gain out of range' elif optname == '-r': rate = string.atoi(optarg) if not (1 <= rate <= 3): raise optarg.error, '-r rate out of range' elif optname == '-a': starter = audio.start_playing stopper = audio.wait_playing # audio.setoutgain(gain) audio.setrate(rate) # if not args: play(starter, rate, auds.loadfp(sys.stdin)) else: real_stopper = 0 for file in args: if real_stopper: real_stopper() play(starter, rate, auds.load(file)) real_stopper = stopper def play(starter, rate, data): magic = data[:4] if magic == '0008': mrate = 3 elif magic == '0016': mrate = 2 elif magic == '0032': mrate = 1 else: mrate = 0 if mrate: data = data[4:] else: mrate = DEF_RATE if not rate: rate = mrate audio.setrate(rate) starter(data) try: main() finally: audio.setoutgain(0) audio.done()