blob: a1b490f4ab370a2f702a6ddcb33fd37b19bbc5ea [file] [log] [blame]
Guido van Rossumf8b7e921992-04-15 17:52:27 +00001import sys
Guido van Rossumf8b7e921992-04-15 17:52:27 +00002import readcd
Guido van Rossum697e7ab1993-07-10 12:11:56 +00003import aifc
Guido van Rossumf8b7e921992-04-15 17:52:27 +00004import AL
Sjoerd Mullenderf1bb3341995-04-06 14:46:31 +00005import cd
Guido van Rossumf8b7e921992-04-15 17:52:27 +00006
Guido van Rossumb1ccc6a1992-06-03 16:49:44 +00007Error = 'cdaiff.Error'
8
Guido van Rossumf8b7e921992-04-15 17:52:27 +00009def writeaudio(a, type, data):
Guido van Rossum697e7ab1993-07-10 12:11:56 +000010 a.writeframesraw(data)
Guido van Rossumf8b7e921992-04-15 17:52:27 +000011
Guido van Rossumf8b7e921992-04-15 17:52:27 +000012def main():
Guido van Rossumb1ccc6a1992-06-03 16:49:44 +000013 if len(sys.argv) > 1:
Guido van Rossum697e7ab1993-07-10 12:11:56 +000014 a = aifc.open(sys.argv[1], 'w')
Guido van Rossumb1ccc6a1992-06-03 16:49:44 +000015 else:
Guido van Rossum697e7ab1993-07-10 12:11:56 +000016 a = aifc.open('@', 'w')
17 a.setsampwidth(AL.SAMPLE_16)
18 a.setnchannels(AL.STEREO)
19 a.setframerate(AL.RATE_44100)
Guido van Rossumfc146cb1994-10-07 10:25:49 +000020 r = readcd.Readcd()
Guido van Rossumf8b7e921992-04-15 17:52:27 +000021 for arg in sys.argv[2:]:
Guido van Rossumd9feb591992-04-22 13:39:10 +000022 x = eval(arg)
23 try:
Guido van Rossumb1ccc6a1992-06-03 16:49:44 +000024 if len(x) <> 2:
25 raise Error, 'bad argument'
Guido van Rossumd9feb591992-04-22 13:39:10 +000026 r.appendstretch(x[0], x[1])
27 except TypeError:
28 r.appendtrack(x)
Sjoerd Mullenderf1bb3341995-04-06 14:46:31 +000029 r.setcallback(cd.audio, writeaudio, a)
Guido van Rossumb1ccc6a1992-06-03 16:49:44 +000030 r.play()
Guido van Rossum697e7ab1993-07-10 12:11:56 +000031 a.close()
Guido van Rossumf8b7e921992-04-15 17:52:27 +000032
33main()