def __init__(self, *arg): if len(arg) == 0: self.player = cd.open() elif len(arg) == 1: self.player = cd.open(arg[0]) elif len(arg) == 2: self.player = cd.open(arg[0], arg[1]) else: raise Error, 'bad __init__ call' self.list = [] self.callbacks = [(None, None)] * 8 self.parser = cd.createparser() self.playing = 0 self.end = 0 self.status = None self.trackinfo = None
# Class interface to the CD module.
elif opt == '-s': 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) print 'socket connected' parser = cd.createparser() parser.setcallback(cd.audio, audiocallback, port) parser.setcallback(cd.pnum, pnumcallback, player) parser.setcallback(cd.index, indexcallback, None) ## cd.ptime: too many calls ## cd.atime: too many calls parser.setcallback(cd.catalog, catalogcallback, None) parser.setcallback(cd.ident, identcallback, None) parser.setcallback(cd.control, controlcallback, None) if len(args) >= 2: if len(args) >= 3: [min, sec, frame] = args[:3] else: [min, sec] = args frame = '0'
# Read CD audio data from the SCSI CD player and send it as UDP # 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 PORT = 50505 # Must match the port in readcd.py def main(): try: optlist, args = getopt.getopt(sys.argv[1:], 'ls') except getopt.error, msg: sys.stderr.write(msg + '\n') sys.exit(2) player = cd.open() prstatus(player) size = player.bestreadsize() if optlist: for opt, arg in optlist: