Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <draw.h>
4 #include <bio.h>
6 static ulong
7 getval(char **p)
8 {
9 ulong v;
10 char *q;
12 v = strtoul(*p, &q, 0);
13 v |= v<<8;
14 v |= v<<16;
15 *p = q;
16 return v;
17 }
19 void
20 readcolmap(Display *d, RGB *colmap)
21 {
22 int i;
23 char *p, *q;
24 Biobuf *b;
25 char buf[128];
27 USED(screen);
29 sprint(buf, "/dev/draw/%d/colormap", d->dirno);
30 b = Bopen(buf, OREAD);
31 if(b == 0)
32 drawerror(d, "rdcolmap: can't open colormap device");
34 for(;;) {
35 p = Brdline(b, '\n');
36 if(p == 0)
37 break;
38 i = strtoul(p, &q, 0);
39 if(i < 0 || i > 255) {
40 fprint(2, "rdcolmap: bad index\n");
41 exits("bad");
42 }
43 p = q;
44 colmap[255-i].red = getval(&p);
45 colmap[255-i].green = getval(&p);
46 colmap[255-i].blue = getval(&p);
47 }
48 Bterm(b);
49 }