| 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 |
| Sjoerd Mullender | f1bb334 | 1995-04-06 14:46:31 +0000 | [diff] [blame] | 5 | import cd |
| Guido van Rossum | f8b7e92 | 1992-04-15 17:52:27 +0000 | [diff] [blame] | 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 | fc146cb | 1994-10-07 10:25:49 +0000 | [diff] [blame] | 20 | r = readcd.Readcd() |
| 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) | ||||
| Sjoerd Mullender | f1bb334 | 1995-04-06 14:46:31 +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() | ||||