ref: babf901b4a508c3ec5d1f89655f10377bbdf9637
dir: /appl/cmd/irtest.b/
implement Irtest;
include "sys.m";
sys: Sys;
include "draw.m";
include "ir.m";
ir: Ir;
Irtest: module
{
init: fn(nil: ref Draw->Context, argv: list of string);
};
stderr: ref Sys->FD;
init(nil: ref Draw->Context, nil: list of string)
{
x := chan of int;
p := chan of int;
sys = load Sys Sys->PATH;
stderr = sys->fildes(2);
ir = load Ir Ir->PATH;
if(ir == nil)
ir = load Ir Ir->SIMPATH;
if(ir == nil) {
sys->fprint(stderr, "load ir: %r\n");
return;
}
if(ir->init(x,p) != 0) {
sys->fprint(stderr, "Ir->init: %r\n");
return;
}
<-p;
names := array[] of {
"Zero",
"One",
"Two",
"Three",
"Four",
"Five",
"Six",
"Seven",
"Eight",
"Nine",
"ChanUP",
"ChanDN",
"VolUP",
"VolDN",
"FF",
"Rew",
"Up",
"Dn",
"Select",
"Power",
};
while((c := <-x) != Ir->EOF){
c = ir->translate(c);
if(c == ir->Error)
sys->print("Error\n");
else if(c >= len names)
sys->print("unknown %d\n", c);
else
sys->print("%s\n", names[c]);
}
}