Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
#include <draw.h>
4
#include <bio.h>
5
 
6
static ulong
7
getval(char **p)
8
{
9
	ulong v;
10
	char *q;
11
 
12
	v = strtoul(*p, &q, 0);
13
	v |= v<<8;
14
	v |= v<<16;
15
	*p = q;
16
	return v;
17
}
18
 
19
void
20
readcolmap(Display *d, RGB *colmap)
21
{
22
	int i;
23
	char *p, *q;
24
	Biobuf *b;
25
	char buf[128];
26
 
27
	USED(screen);
28
 
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");
33
 
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
}