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

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

Add sound(), nosound() and delay() to the conio.h emulation. Even though
they're not actually from that header, they're often used together.

  • Property svn:keywords set to Id
File size: 8.1 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 3592 2009-07-30 20:10:57Z 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_delay(int);
158__extern void   caca_conio_delline(void);
159__extern int    caca_conio_getch(void);
160__extern int    caca_conio_getche(void);
161__extern char * caca_conio_getpass(const char *prompt);
162__extern int    caca_conio_gettext(int left, int top, int right, int bottom,
163                                   void *destin);
164__extern void   caca_conio_gettextinfo(struct caca_conio_text_info *r);
165__extern void   caca_conio_gotoxy(int x, int y);
166__extern void   caca_conio_highvideo(void);
167__extern void   caca_conio_insline(void);
168__extern int    caca_conio_kbhit(void);
169__extern void   caca_conio_lowvideo(void);
170__extern int    caca_conio_movetext(int left, int top, int right, int bottom,
171                                    int destleft, int desttop);
172__extern void   caca_conio_normvideo(void);
173__extern void   caca_conio_nosound(void);
174__extern int    caca_conio_printf(const char *format, ...);
175__extern int    caca_conio_putch(int ch);
176__extern int    caca_conio_puttext(int left, int top, int right, int bottom,
177                                   void *destin);
178__extern void   caca_conio__setcursortype(int cur_t);
179__extern void   caca_conio_sound(int);
180__extern void   caca_conio_textattr(int newattr);
181__extern void   caca_conio_textbackground(int newcolor);
182__extern void   caca_conio_textcolor(int newcolor);
183__extern void   caca_conio_textmode(int newmode);
184__extern int    caca_conio_ungetch(int ch);
185__extern int    caca_conio_wherex(void);
186__extern int    caca_conio_wherey(void);
187__extern void   caca_conio_window(int left, int top, int right, int bottom);
188
189#if !defined _DOXYGEN_SKIP_ME && !defined __LIBCACA__
190#   undef cgets
191#   define cgets caca_conio_cgets
192#   undef clreol
193#   define clreol caca_conio_clreol
194#   undef clrscr
195#   define clrscr caca_conio_clrscr
196#   undef cprintf
197#   define cprintf caca_conio_cprintf
198#   undef cputs
199#   define cputs caca_conio_cputs
200#   undef cscanf
201#   define cscanf caca_conio_cscanf
202#   undef delay
203#   define delay caca_conio_delay
204#   undef delline
205#   define delline caca_conio_delline
206#   undef getch
207#   define getch caca_conio_getch
208#   undef getche
209#   define getche caca_conio_getche
210#   undef getpass
211#   define getpass caca_conio_getpass
212#   undef gettext
213#   define gettext caca_conio_gettext
214#   undef gettextinfo
215#   define gettextinfo caca_conio_gettextinfo
216#   undef gotoxy
217#   define gotoxy caca_conio_gotoxy
218#   undef highvideo
219#   define highvideo caca_conio_highvideo
220#   undef insline
221#   define insline caca_conio_insline
222#   undef kbhit
223#   define kbhit caca_conio_kbhit
224#   undef lowvideo
225#   define lowvideo caca_conio_lowvideo
226#   undef movetext
227#   define movetext caca_conio_movetext
228#   undef normvideo
229#   define normvideo caca_conio_normvideo
230#   undef nosound
231#   define nosound caca_conio_nosound
232#   undef printf
233#   define printf caca_conio_printf
234#   undef putch
235#   define putch caca_conio_putch
236#   undef puttext
237#   define puttext caca_conio_puttext
238#   undef _setcursortype
239#   define _setcursortype caca_conio__setcursortype
240#   undef sound
241#   define sound caca_conio_sound
242#   undef textattr
243#   define textattr caca_conio_textattr
244#   undef textbackground
245#   define textbackground caca_conio_textbackground
246#   undef textcolor
247#   define textcolor caca_conio_textcolor
248#   undef textmode
249#   define textmode caca_conio_textmode
250#   undef ungetch
251#   define ungetch caca_conio_ungetch
252#   undef wherex
253#   define wherex caca_conio_wherex
254#   undef wherey
255#   define wherey caca_conio_wherey
256#   undef window
257#   define window caca_conio_window
258#endif
259
260#ifdef __cplusplus
261}
262#endif
263
264#endif /* __CACA_CONIO_H__ */
Note: See TracBrowser for help on using the repository browser.