chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / crt.h
1 /*
2  * crt.h:
3  *
4  * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
5  * All rights reserved.
6  *
7  */
8
9 /*
10  * $Id$
11  */
12
13 /*
14  * $Log$
15  * Revision 1.2  2008/02/04 20:23:55  james
16  * *** empty log message ***
17  *
18  * Revision 1.1  2008/02/03 23:31:25  james
19  * *** empty log message ***
20  *
21  */
22
23 #ifndef __CRT_H__
24 #define __CRT_H__
25
26 #define CRT_ROWS 25
27 #define CRT_COLS 80
28
29 #define CRT_CELS (CRT_ROWS*CRT_COLS)
30 #define CRT_ADDR(r,c) (((r)*CRT_COLS)+(c))
31 #define CRT_ADDR_POS(p) ((((p)->y)*CRT_COLS)+((p)->x))
32
33 #define CRT_ATTR_NORMAL    0x0
34 #define CRT_ATTR_UNDERLINE 0x1
35 #define CRT_ATTR_REVERSE   0x2
36 #define CRT_ATTR_BLINK     0x4
37 #define CRT_ATTR_BOLD      0x8
38
39 typedef struct {
40         uint8_t chr;
41         uint8_t attr;
42 } CRT_CA;
43
44 typedef struct {
45         int x;
46         int y;
47 } CRT_Pos;
48
49
50 typedef struct {
51         CRT_CA screen[CRT_CELS];
52         CRT_Pos pos;
53         int hide_cursor;
54 } CRT;
55
56
57 static inline crt_ca_cmp(CRT_CA a,CRT_CA b) {
58         return memcmp(&a,&b,sizeof(a));
59 }
60
61 #endif /* __CRT_H__ */