Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 1 | import sys |
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 2 | import readcd |
Guido van Rossum | 697e7ab | 1993-07-10 12:11:56 +0000 | [diff] [blame] | 3 | import aifc |
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 4 | import AL |
5 | import CD | ||||
6 | |||||
Guido van Rossum | b1ccc6a | 1992-06-03 16:49:44 +0000 | [diff] [blame] | 7 | Error = 'cdaiff.Error' |
8 | |||||
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 9 | def writeaudio(a, type, data): |
Guido van Rossum | 697e7ab | 1993-07-10 12:11:56 +0000 | [diff] [blame] | 10 | a.writeframesraw(data) |
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 11 | |
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 12 | def main(): |
Guido van Rossum | b1ccc6a | 1992-06-03 16:49:44 +0000 | [diff] [blame] | 13 | if len(sys.argv) > 1: |
Guido van Rossum | 697e7ab | 1993-07-10 12:11:56 +0000 | [diff] [blame] | 14 | a = aifc.open(sys.argv[1], 'w') |
Guido van Rossum | b1ccc6a | 1992-06-03 16:49:44 +0000 | [diff] [blame] | 15 | else: |
Guido van Rossum | 697e7ab | 1993-07-10 12:11:56 +0000 | [diff] [blame] | 16 | a = aifc.open('@', 'w') |
17 | a.setsampwidth(AL.SAMPLE_16) | ||||
18 | a.setnchannels(AL.STEREO) | ||||
19 | a.setframerate(AL.RATE_44100) | ||||
Guido van Rossum | d9feb59 | 1992-04-22 13:39:10 +0000 | [diff] [blame] | 20 | r = readcd.Readcd().init() |
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 21 | for arg in sys.argv[2:]: |
Guido van Rossum | d9feb59 | 1992-04-22 13:39:10 +0000 | [diff] [blame] | 22 | x = eval(arg) |
23 | try: | ||||
Guido van Rossum | b1ccc6a | 1992-06-03 16:49:44 +0000 | [diff] [blame] | 24 | if len(x) <> 2: |
25 | raise Error, 'bad argument' | ||||
Guido van Rossum | d9feb59 | 1992-04-22 13:39:10 +0000 | [diff] [blame] | 26 | r.appendstretch(x[0], x[1]) |
27 | except TypeError: | ||||
28 | r.appendtrack(x) | ||||
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 29 | r.setcallback(CD.AUDIO, writeaudio, a) |
Guido van Rossum | b1ccc6a | 1992-06-03 16:49:44 +0000 | [diff] [blame] | 30 | r.play() |
Guido van Rossum | 697e7ab | 1993-07-10 12:11:56 +0000 | [diff] [blame] | 31 | a.close() |
Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 32 | |
33 | main() |