xref: /original-bsd/sys/sys/tablet.h (revision 50f8aa26)
1 /*
2  * Copyright (c) 1985, 1986 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)tablet.h	7.1 (Berkeley) 06/04/86
7  */
8 
9 #ifndef _TABLET_
10 /*
11  * Tablet line discipline.
12  */
13 #ifdef KERNEL
14 #include "../h/ioctl.h"
15 #else
16 #include <sys/ioctl.h>
17 #endif
18 
19 /*
20  * Reads on the tablet return one of the following
21  * structures, depending on the underlying tablet type.
22  * The first two are defined such that a read of
23  * sizeof (gtcopos) on a non-gtco tablet will return
24  * meaningful info.  The in-proximity bit is simulated
25  * where the tablet does not directly provide the information.
26  */
27 struct	tbpos {
28 	int	xpos, ypos;	/* raw x-y coordinates */
29 	short	status;		/* buttons/pen down */
30 #define	TBINPROX	0100000		/* pen in proximity of tablet */
31 	short	scount;		/* sample count */
32 };
33 
34 struct	gtcopos {
35 	int	xpos, ypos;	/* raw x-y coordinates */
36 	short	status;		/* as above */
37 	short	scount;		/* sample count */
38 	short	xtilt, ytilt;	/* raw tilt */
39 	short	pressure;
40 	short	pad;		/* pad to longword boundary */
41 };
42 
43 struct	polpos {
44 	short	p_x, p_y, p_z;	/* raw 3-space coordinates */
45 	short	p_azi, p_pit, p_rol;	/* azimuth, pitch, and roll */
46 	short	p_stat;		/* status, as above */
47 	char	p_key;		/* calculator input keyboard */
48 };
49 
50 #define BIOSMODE	_IOW(b, 1, int)		/* set mode bit(s) */
51 #define BIOGMODE	_IOR(b, 2, int)		/* get mode bit(s) */
52 #define	TBMODE		0xfff0		/* mode bits: */
53 #define		TBPOINT		0x0010		/* single point */
54 #define		TBRUN		0x0000		/* runs contin. */
55 #define		TBSTOP		0x0020		/* shut-up */
56 #define		TBGO		0x0000		/* ~TBSTOP */
57 #define	TBTYPE		0x000f		/* tablet type: */
58 #define		TBUNUSED	0x0000
59 #define		TBHITACHI	0x0001		/* hitachi tablet */
60 #define		TBTIGER		0x0002		/* hitachi tiger */
61 #define		TBGTCO		0x0003		/* gtco */
62 #define		TBPOL		0x0004		/* polhemus 3space */
63 #define		TBHDG		0x0005		/* hdg-1111b, low res */
64 #define		TBHDGHIRES	0x0006		/* hdg-1111b, high res */
65 #define BIOSTYPE	_IOW(b, 3, int)		/* set tablet type */
66 #define BIOGTYPE	_IOR(b, 4, int)		/* get tablet type*/
67 #endif
68