diff --git a/Demo/sgi/cd/sendcd.py b/Demo/sgi/cd/sendcd.py index 499000044b4..850f6a55e2e 100755 --- a/Demo/sgi/cd/sendcd.py +++ b/Demo/sgi/cd/sendcd.py @@ -1,15 +1,23 @@ # Read CD audio data from the SCSI CD player and send it as UDP -# packets to "readcd.py" on another host. -# Option: -# "-l" lists track info and quits. -# "-s" displays status and quits. +# packets to "recvcd.py" on another host. +# +# Usage: python sendcd.py [options] host [track | minutes seconds [frames]] +# +# Options: +# "-l" list track info and quit. +# "-s" display status and quit. +# +# Arguments: +# host host to send the audio data to (required unless -l or -s). +# track track number where to start; alternatively, +# min sec [frames] absolute address where to start; +# default is continue at current point according to status. import cd import sys from socket import * import getopt -HOST = 'voorn.cwi.nl' # The host where readcd.py is run PORT = 50505 # Must match the port in readcd.py def main(): @@ -31,10 +39,15 @@ def main(): prstatus(player) return + if not args: + sys.stderr.write('usage: ' + sys.argv[0] + ' host [track]\n') + sys.exit(2) + host, args = args[0], args[1:] + sys.stdout.write('waiting for socket... ') sys.stdout.flush() port = socket(AF_INET, SOCK_DGRAM) - port.connect(HOST, PORT) + port.connect(host, PORT) print 'socket connected' parser = cd.createparser() @@ -52,7 +65,7 @@ def main(): [min, sec, frame] = args[:3] else: [min, sec] = args - frame = 0 + frame = '0' min, sec, frame = eval(min), eval(sec), eval(frame) print 'Seek to', triple(min, sec, frame) dummy = player.seek(min, sec, frame) @@ -61,7 +74,7 @@ def main(): print 'Seek to track', track dummy = player.seektrack(track) else: - min, sec, frame = player.getstatus()[5:8] + min, sec, frame = player.getstatus()[3] print 'Try to seek back to', triple(min, sec, frame) try: player.seek(min, sec, frame) @@ -87,11 +100,8 @@ def prtrackinfo(player): except RuntimeError: break for i in range(len(info)): - start_min, start_sec, start_frame, \ - total_min, total_sec, total_frame = info[i] - print 'Track', zfill(i+1), \ - triple(start_min, start_sec, start_frame), \ - triple(total_min, total_sec, total_frame) + start, total = info[i] + print 'Track', zfill(i+1), triple(start), triple(total) def audiocallback(port, type, data): ## sys.stdout.write('#') @@ -117,25 +127,24 @@ def controlcallback(arg, type, data): statedict = ['ERROR', 'NODISK', 'READY', 'PLAYING', 'PAUSED', 'STILL'] def prstatus(player): - state, track, min, sec, frame, abs_min, abs_sec, abs_frame, \ - total_min, total_sec, total_frame, first, last, scsi_audio, \ - cur_block, dum1, dum2, dum3 = player.getstatus() + state, track, curtime, abstime, totaltime, first, last, \ + scsi_audio, cur_block, dummy = player.getstatus() print 'Status:', if 0 <= state < len(statedict): print statedict[state] else: print state print 'Track: ', track - print 'Time: ', triple(min, sec, frame) - print 'Abs: ', triple(abs_min, abs_sec, abs_frame) - print 'Total: ', triple(total_min, total_sec, total_frame) + print 'Time: ', triple(curtime) + print 'Abs: ', triple(abstime) + print 'Total: ', triple(totaltime) print 'First: ', first print 'Last: ', last print 'SCSI: ', scsi_audio print 'Block: ', cur_block - print 'Future:', (dum1, dum2, dum3) + print 'Future:', dummy -def triple(a, b, c): +def triple((a, b, c)): return zfill(a) + ':' + zfill(b) + ':' + zfill(c) def zfill(n):