source: libcaca/trunk/caca/caca_conio.h @ 3588

Last change on this file since 3588 was 3588, checked in by Sam Hocevar, 11 years ago

Start implementing a full <conio.h> replacement with a libcaca backend.

  • Property svn:keywords set to Id
File size: 7.8 KB
Line 
1/*
2 *  libcaca       Colour ASCII-Art library
3 *  Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net>
4 *                All Rights Reserved
5 *
6 *  $Id: caca_conio.h 3588 2009-07-26 23:26:21Z sam $
7 *
8 *  This library is free software. It comes without any warranty, to
9 *  the extent permitted by applicable law. You can redistribute it
10 *  and/or modify it under the terms of the Do What The Fuck You Want
11 *  To Public License, Version 2, as published by Sam Hocevar. See
12 *  http://sam.zoy.org/wtfpl/COPYING for more details.
13 */
14
15/*
16 *  This header contains a conio.h reimplementation.
17 */
18
19#ifndef __CACA_CONIO_H__
20#define __CACA_CONIO_H__
21
22#include <caca.h>
23
24#if !defined(__KERNEL__)
25#   include <stdio.h>
26#endif
27
28#undef __extern
29#if defined(_DOXYGEN_SKIP_ME)
30#elif defined(_WIN32) && defined(__LIBCACA__)
31#   define __extern extern __declspec(dllexport)
32#else
33#   define __extern extern
34#endif
35
36#ifdef __cplusplus
37extern "C"
38{
39#endif
40
41/* conio.h defines and global variables */
42#define CACA_CONIO_BLINK 128
43#define CACA_CONIO_BLACK 0
44#define CACA_CONIO_BLUE 1
45#define CACA_CONIO_GREEN 2
46#define CACA_CONIO_CYAN 3
47#define CACA_CONIO_RED 4
48#define CACA_CONIO_MAGENTA 5
49#define CACA_CONIO_BROWN 6
50#define CACA_CONIO_LIGHTGRAY 7
51#define CACA_CONIO_DARKGRAY 8
52#define CACA_CONIO_LIGHTBLUE 9
53#define CACA_CONIO_LIGHTGREEN 10
54#define CACA_CONIO_LIGHTCYAN 11
55#define CACA_CONIO_LIGHTRED 12
56#define CACA_CONIO_LIGHTMAGENTA 13
57#define CACA_CONIO_YELLOW 14
58#define CACA_CONIO_WHITE 15
59__extern int caca_conio_directvideo;
60#define CACA_CONIO__NOCURSOR 0
61#define CACA_CONIO__SOLIDCURSOR 1
62#define CACA_CONIO__NORMALCURSOR 2
63struct caca_conio_text_info
64{
65    unsigned char winleft;        /* left window coordinate */
66    unsigned char wintop;         /* top window coordinate */
67    unsigned char winright;       /* right window coordinate */
68    unsigned char winbottom;      /* bottom window coordinate */
69    unsigned char attribute;      /* text attribute */
70    unsigned char normattr;       /* normal attribute */
71    unsigned char currmode;       /* current video mode:
72                                     BW40, BW80, C40, C80, or C4350 */
73    unsigned char screenheight;   /* text screen's height */
74    unsigned char screenwidth;    /* text screen's width */
75    unsigned char curx;           /* x-coordinate in current window */
76    unsigned char cury;           /* y-coordinate in current window */
77};
78#define CACA_CONIO_LASTMODE -1
79#define CACA_CONIO_BW40 0
80#define CACA_CONIO_C40 1
81#define CACA_CONIO_BW80 2
82#define CACA_CONIO_C80 3
83#define CACA_CONIO_MONO 7
84#define CACA_CONIO_C4350 64
85__extern int caca_conio__wscroll;
86
87#if !defined _DOXYGEN_SKIP_ME && !defined __LIBCACA__
88#   undef BLINK
89#   define BLINK CACA_CONIO_BLINK
90#   undef BLACK
91#   define BLACK CACA_CONIO_BLACK
92#   undef BLUE
93#   define BLUE CACA_CONIO_BLUE
94#   undef GREEN
95#   define GREEN CACA_CONIO_GREEN
96#   undef CYAN
97#   define CYAN CACA_CONIO_CYAN
98#   undef RED
99#   define RED CACA_CONIO_RED
100#   undef MAGENTA
101#   define MAGENTA CACA_CONIO_MAGENTA
102#   undef BROWN
103#   define BROWN CACA_CONIO_BROWN
104#   undef LIGHTGRAY
105#   define LIGHTGRAY CACA_CONIO_LIGHTGRAY
106#   undef DARKGRAY
107#   define DARKGRAY CACA_CONIO_DARKGRAY
108#   undef LIGHTBLUE
109#   define LIGHTBLUE CACA_CONIO_LIGHTBLUE
110#   undef LIGHTGREEN
111#   define LIGHTGREEN CACA_CONIO_LIGHTGREEN
112#   undef LIGHTCYAN
113#   define LIGHTCYAN CACA_CONIO_LIGHTCYAN
114#   undef LIGHTRED
115#   define LIGHTRED CACA_CONIO_LIGHTRED
116#   undef LIGHTMAGENTA
117#   define LIGHTMAGENTA CACA_CONIO_LIGHTMAGENTA
118#   undef YELLOW
119#   define YELLOW CACA_CONIO_YELLOW
120#   undef WHITE
121#   define WHITE CACA_CONIO_WHITE
122#   undef directvideo
123#   define directvideo caca_conio_directvideo
124#   undef _NOCURSOR
125#   define _NOCURSOR CACA_CONIO__NOCURSOR
126#   undef _SOLIDCURSOR
127#   define _SOLIDCURSOR CACA_CONIO__SOLIDCURSOR
128#   undef _NORMALCURSOR
129#   define _NORMALCURSOR CACA_CONIO__NORMALCURSOR
130#   undef text_info
131#   define text_info caca_conio_text_info
132#   undef LASTMODE
133#   define LASTMODE CACA_CONIO_LASTMODE
134#   undef BW40
135#   define BW40 CACA_CONIO_BW40
136#   undef C40
137#   define C40 CACA_CONIO_C40
138#   undef BW80
139#   define BW80 CACA_CONIO_BW80
140#   undef C80
141#   define C80 CACA_CONIO_C80
142#   undef MONO
143#   define MONO CACA_CONIO_MONO
144#   undef C4350
145#   define C4350 CACA_CONIO_C4350
146#   undef _wscroll
147#   define _wscroll caca_conio__wscroll
148#endif
149
150/* conio.h functions */
151__extern char * caca_conio_cgets(char *str);
152__extern void   caca_conio_clreol(void);
153__extern void   caca_conio_clrscr(void);
154__extern int    caca_conio_cprintf(const char *format, ...);
155__extern int    caca_conio_cputs(const char *str);
156__extern int    caca_conio_cscanf(char *format, ...);
157__extern void   caca_conio_delline(void);
158__extern int    caca_conio_getch(void);
159__extern int    caca_conio_getche(void);
160__extern char * caca_conio_getpass(const char *prompt);
161__extern int    caca_conio_gettext(int left, int top, int right, int bottom,
162                                   void *destin);
163__extern void   caca_conio_gettextinfo(struct caca_conio_text_info *r);
164__extern void   caca_conio_gotoxy(int x, int y);
165__extern void   caca_conio_highvideo(void);
166__extern void   caca_conio_insline(void);
167__extern int    caca_conio_kbhit(void);
168__extern void   caca_conio_lowvideo(void);
169__extern int    caca_conio_movetext(int left, int top, int right, int bottom,
170                                    int destleft, int desttop);
171__extern void   caca_conio_normvideo(void);
172__extern int    caca_conio_printf(const char *format, ...);
173__extern int    caca_conio_putch(int ch);
174__extern int    caca_conio_puttext(int left, int top, int right, int bottom,
175                                   void *destin);
176__extern void   caca_conio__setcursortype(int cur_t);
177__extern void   caca_conio_textattr(int newattr);
178__extern void   caca_conio_textbackground(int newcolor);
179__extern void   caca_conio_textcolor(int newcolor);
180__extern void   caca_conio_textmode(int newmode);
181__extern int    caca_conio_ungetch(int ch);
182__extern int    caca_conio_wherex(void);
183__extern int    caca_conio_wherey(void);
184__extern void   caca_conio_window(int left, int top, int right, int bottom);
185
186#if !defined _DOXYGEN_SKIP_ME && !defined __LIBCACA__
187#   undef cgets
188#   define cgets caca_conio_cgets
189#   undef clreol
190#   define clreol caca_conio_clreol
191#   undef clrscr
192#   define clrscr caca_conio_clrscr
193#   undef cprintf
194#   define cprintf caca_conio_cprintf
195#   undef cputs
196#   define cputs caca_conio_cputs
197#   undef cscanf
198#   define cscanf caca_conio_cscanf
199#   undef delline
200#   define delline caca_conio_delline
201#   undef getch
202#   define getch caca_conio_getch
203#   undef getche
204#   define getche caca_conio_getche
205#   undef getpass
206#   define getpass caca_conio_getpass
207#   undef gettext
208#   define gettext caca_conio_gettext
209#   undef gettextinfo
210#   define gettextinfo caca_conio_gettextinfo
211#   undef gotoxy
212#   define gotoxy caca_conio_gotoxy
213#   undef highvideo
214#   define highvideo caca_conio_highvideo
215#   undef insline
216#   define insline caca_conio_insline
217#   undef kbhit
218#   define kbhit caca_conio_kbhit
219#   undef lowvideo
220#   define lowvideo caca_conio_lowvideo
221#   undef movetext
222#   define movetext caca_conio_movetext
223#   undef normvideo
224#   define normvideo caca_conio_normvideo
225#   undef printf
226#   define printf caca_conio_printf
227#   undef putch
228#   define putch caca_conio_putch
229#   undef puttext
230#   define puttext caca_conio_puttext
231#   undef _setcursortype
232#   define _setcursortype caca_conio__setcursortype
233#   undef textattr
234#   define textattr caca_conio_textattr
235#   undef textbackground
236#   define textbackground caca_conio_textbackground
237#   undef textcolor
238#   define textcolor caca_conio_textcolor
239#   undef textmode
240#   define textmode caca_conio_textmode
241#   undef ungetch
242#   define ungetch caca_conio_ungetch
243#   undef wherex
244#   define wherex caca_conio_wherex
245#   undef wherey
246#   define wherey caca_conio_wherey
247#   undef window
248#   define window caca_conio_window
249#endif
250
251#ifdef __cplusplus
252}
253#endif
254
255#endif /* __CACA_CONIO_H__ */
Note: See TracBrowser for help on using the repository browser.