summaryrefslogtreecommitdiffstats
path: root/Demo/sgi/cd/playcd.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/sgi/cd/playcd.py')
-rwxr-xr-xDemo/sgi/cd/playcd.py102
1 files changed, 0 insertions, 102 deletions
diff --git a/Demo/sgi/cd/playcd.py b/Demo/sgi/cd/playcd.py
deleted file mode 100755
index 44fa5a0..0000000
--- a/Demo/sgi/cd/playcd.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# Play CD audio on speaker or headphones.
-
-callbacktypes = ['audio','pnum','index','ptime','atime','catalog','ident','control']
-
-def playaudio(port, type, audio):
- port.writesamps(audio)
-
-def prtrack(cdinfo, type, pnum):
- if cdinfo.track[pnum] <> '':
- print 'playing "' + cdinfo.track[pnum] + '"'
- else:
- print callbacktypes[type]+': '+`pnum`
-
-def callback(arg, type, data):
- print callbacktypes[type]+': '+`data`
-
-def tcallback(arg, type, data):
- print callbacktypes[type]+': '+triple(data)
-
-def triple((a, b, c)):
- return zfill(a) + ':' + zfill(b) + ':' + zfill(c)
-
-def zfill(n):
- s = `n`
- return '0' * (2 - len(s)) + s
-
-def prtrackinfo(info):
- for i in range(len(info)):
- start, total = info[i]
- print 'Track', zfill(i+1), triple(start), triple(total)
-
-statedict = ['ERROR', 'NODISK', 'READY', 'PLAYING', 'PAUSED', 'STILL']
-
-def prstatus(status):
- state, track, curtime, abstime, totaltime, first, last, \
- scsi_audio, cur_block, dummy = status
- print 'Status:',
- if 0 <= state < len(statedict):
- print statedict[state]
- else:
- print state
- print 'Track: ', track
- 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:', dummy
-
-def main():
- import sys, readcd, al, AL, cd, cdplayer
- verbose = 0
- r = readcd.Readcd()
- prstatus(r.getstatus())
- prtrackinfo(r.gettrackinfo())
- cdinfo = cdplayer.Cdplayer(r.gettrackinfo())
- if cdinfo.title <> '':
- print 'Title: "' + cdinfo.title + '"'
- if cdinfo.artist <> '':
- print 'Artist: ' + cdinfo.artist
- for arg in sys.argv[1:]:
- if arg == '-v':
- verbose = 1
- continue
- x = eval(arg)
- try:
- l = len(x)
- r.appendstretch(x[0], x[1])
- except TypeError:
- r.appendtrack(x)
- try:
- oldparams = [AL.OUTPUT_RATE, 0]
- params = oldparams[:]
- al.getparams(AL.DEFAULT_DEVICE, oldparams)
- params[1] = AL.RATE_44100
- al.setparams(AL.DEFAULT_DEVICE, params)
- config = al.newconfig()
- config.setwidth(AL.SAMPLE_16)
- config.setchannels(AL.STEREO)
- port = al.openport('CD Player', 'w', config)
-
- for i in range(8):
- r.setcallback(i, callback, None)
- if verbose:
- r.setcallback(cd.ptime, tcallback, None)
- r.setcallback(cd.atime, tcallback, None)
- else:
- r.removecallback(cd.ptime)
- r.removecallback(cd.atime)
- r.setcallback(cd.pnum, prtrack, cdinfo)
- r.setcallback(cd.audio, playaudio, port)
-
- data = r.play()
- except KeyboardInterrupt:
- status = r.getstatus()
- print 'Interrupted at '+triple(status[2])+' into track '+ \
- `status[1]`+' (absolute time '+triple(status[3])+')'
- al.setparams(AL.DEFAULT_DEVICE, oldparams)
-
-main()