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.1  2008/02/03 23:31:25  james
16  * *** empty log message ***
17  *
18  */
19
20 #ifndef __CRT_H__
21 #define __CRT_H__
22
23 #define CRT_ROWS 25
24 #define CRT_COLS 80
25
26 #define CRT_CELS (CRT_ROWS*CRT_COLS)
27 #define CRT_ADDR(r,c) (((r)*CRT_ROWS)+(c))
28 #define CRT_ADDR_POS(p) ((((p)->y)*CRT_ROWS)+((p)->x))
29
30 #define CRT_ATTR_NORMAL    0x0
31 #define CRT_ATTR_UNDERLINE 0x1
32 #define CRT_ATTR_REVERSE   0x2
33 #define CRT_ATTR_BLINK     0x4
34 #define CRT_ATTR_BOLD      0x8
35
36 typedef struct {
37         uint8_t chr;
38         uint8_t attr;
39 } CRT_CA;
40
41 typedef struct {
42         int x;
43         int y;
44 } CRT_Pos;
45
46
47 typedef struct {
48         CRT_CA screen[CRT_CELS];
49         CRT_Pos pos;
50         int hide_cursor;
51 } CRT;
52
53
54 static inline crt_ca_cmp(CRT_CA a,CRT_CA b) {
55         return memcmp(&a,&b,sizeof(a));
56 }
57
58 #endif /* __CRT_H__ */