(py-indent-right, py-outdent-left): new commands, bound to C-c C-r and
[python/dscho.git] / Demo / sgi / al / playold.py
blob9792c168c5d105cccf02b6f845f731ab71aa1427
1 # Play old style sound files (Guido's private format)
3 import al, sys, time
4 import AL
6 BUFSIZE = 8000
8 def main():
9 if len(sys.argv) < 2:
10 f = sys.stdin
11 filename = sys.argv[0]
12 else:
13 if len(sys.argv) <> 2:
14 sys.stderr.write('usage: ' + \
15 sys.argv[0] + ' filename\n')
16 sys.exit(2)
17 filename = sys.argv[1]
18 f = open(filename, 'r')
20 magic = f.read(4)
21 extra = ''
22 if magic == '0008':
23 rate = 8000
24 elif magic == '0016':
25 rate = 16000
26 elif magic == '0032':
27 rate = 32000
28 else:
29 sys.stderr.write('no magic header; assuming 8k samples/sec.\n')
30 rate = 8000
31 extra = magic
33 pv = [AL.OUTPUT_RATE, rate]
34 al.setparams(AL.DEFAULT_DEVICE, pv)
35 c = al.newconfig()
36 c.setchannels(AL.MONO)
37 c.setwidth(AL.SAMPLE_8)
38 port = al.openport(filename, 'w', c)
39 if extra:
40 port.writesamps(extra)
41 while 1:
42 buf = f.read(BUFSIZE)
43 if not buf: break
44 port.writesamps(buf)
45 while port.getfilled() > 0:
46 time.sleep(0.1)
48 try:
49 main()
50 except KeyboardInterrupt:
51 sys.exit(1)