Fix use of exceptions; new getstatus(); command line argument for trackno.

This commit is contained in:
Guido van Rossum 1992-04-15 17:49:14 +00:00
parent 632d49274e
commit 67aad284dd

View file

@ -1,6 +1,7 @@
# Read CD audio data from the SCSI bus and play it back over the # Read CD audio data from the SCSI bus and play it back over the
# built-in speaker or audio jack. # built-in speaker or audio jack.
import sys
import al import al
import AL import AL
import cd import cd
@ -15,27 +16,36 @@ callbacks = ['audio', 'pnum', 'index', 'ptime', 'atime', 'catalog', 'ident', 'co
def callback(port, type, data): def callback(port, type, data):
print 'type', callbacks[type], 'data', `data` print 'type', callbacks[type], 'data', `data`
Error = 'playcd.error'
def main(): def main():
player = cd.open() player = cd.open()
parser = cd.createparser() parser = cd.createparser()
state, track, min, sec, frame, abs_min, abs_sec, abs_frame, \ state, track, (min, sec, frame), (abs_min, abs_sec, abs_frame), \
total_min, total_sec, total_frame, first, last, scsi_audio, \ (total_min, total_sec, total_frame), \
cur_block, dum1, dum2, dum3 = player.getstatus() first, last, scsi_audio, \
print `state, track, min, sec, frame, abs_min, abs_sec, abs_frame, \ cur_block, (dum1, dum2, dum3) = player.getstatus()
total_min, total_sec, total_frame, first, last, scsi_audio, \ print state, track, (min, sec, frame), \
cur_block, dum1, dum2, dum3` (abs_min, abs_sec, abs_frame), \
(total_min, total_sec, total_frame), \
first, last, scsi_audio, \
cur_block, (dum1, dum2, dum3)
if state <> CD.READY: if state <> CD.READY:
player.close() player.close()
raise 'playcd.Error', 'CD not ready' raise Error, 'CD not ready'
if not scsi_audio: if not scsi_audio:
player.close() player.close()
raise 'playcd.Error', 'not an audio-capable CD-ROM player' raise Error, 'not an audio-capable CD-ROM player'
for i in range(first, last+1): for i in range(first, last+1):
trackinfo = player.gettrackinfo(i) trackinfo = player.gettrackinfo(i)
print `trackinfo` print 'Track', i, trackinfo
if sys.argv[1:]:
print 'Start at track', sys.argv[1]
player.seektrack(eval(sys.argv[1]))
size = player.bestreadsize() size = player.bestreadsize()