// MeterList -- prints out listing of Spruce activities:
get "Spruce.d"
get "SpruceFiles.d"
external [
OpenFile
Closes
Wss
Wns
Puts
ReadBlock
Gets
CallSwat
]
static [
so
time
reftime
]
let doit() be
[
let si=OpenFile("Spruce.Meter")
so=OpenFile("Spruce.MeterList", 0, 1)
[
let v=vec 200
ReadBlock(si, v, size M/16)
let t=v>>M.type
time=v>>M.time
if reftime eq 0 then reftime=time
if v>>M.length then ReadBlock(si, v, v>>M.length)
switchon t into [
case METERRead: case METERWrite:
[
Title((t eq METERRead? "File read","File write"))
let f=v>>FLStat.File
let n=selecton f into [
case FILEBands: "Bands"
case FILEMeter: "Meter"
case FILEFontDictionary: "Font"
case FILESpruceProgram: "Spruce"
case FILEPress rem 256: "Press file"
default: "??"
]
P(n)
P(": page="); Pn(v>>FLStat.Page)
P(", count="); Pn(v>>FLStat.Cnt)
]
endcase
case METEREnd: break
default: CallSwat("Illegal entry")
]
P("*n")
] repeat
Closes(so)
]
and Title(s) be
[
P(s)
P(" [time=")
Pn(time-reftime)
P("] ")
]
and P(s) be Wss(so, s)
and Pn(s) be Wns(so, s)