Annotation of embedaddon/pimd/libite/conio.h, revision 1.1
1.1 ! misho 1: /* A conio.h like implementation for VTANSI displays.
! 2: *
! 3: * Copyright (c) 2009-2013 Joachim Nilsson <troglobit@gmail.com>
! 4: *
! 5: * Permission to use, copy, modify, and/or distribute this software for any
! 6: * purpose with or without fee is hereby granted, provided that the above
! 7: * copyright notice and this permission notice appear in all copies.
! 8: *
! 9: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 10: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 11: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 12: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 13: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
! 14: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
! 15: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 16: */
! 17:
! 18: #ifndef CONIO_H_
! 19: #define CONIO_H_
! 20:
! 21: #include <stdio.h>
! 22:
! 23: /* Attributes */
! 24: #define RESETATTR 0
! 25: #define BRIGHT 1
! 26: #define DIM 2
! 27: #define UNDERSCORE 4
! 28: #define BLINK 5 /* May not work on all displays. */
! 29: #define REVERSE 7
! 30: #define HIDDEN 8
! 31:
! 32: /* Colors for text and background */
! 33: #define BLACK 0x0
! 34: #define RED 0x1
! 35: #define GREEN 0x2
! 36: #define BROWN 0x3
! 37: #define BLUE 0x4
! 38: #define MAGENTA 0x5
! 39: #define CYAN 0x6
! 40: #define LIGHTGREY 0x7
! 41:
! 42: #define DARKGREY 0x10
! 43: #define LIGHTRED 0x11
! 44: #define LIGHTGREEN 0x12
! 45: #define YELLOW 0x13
! 46: #define LIGHTBLUE 0x14
! 47: #define LIGHTMAGENTA 0x15
! 48: #define LIGHTCYAN 0x16
! 49: #define WHITE 0x17
! 50:
! 51: /* Esc[2JEsc[1;1H - Clear screen and move cursor to 1,1 (upper left) pos. */
! 52: #define clrscr() fputs ("\e[2J\e[1;1H", stdout)
! 53: /* Esc[K - Erases from the current cursor position to the end of the current line. */
! 54: #define clreol() fputs ("\e[K", stdout)
! 55: /* Esc[2K - Erases the entire current line. */
! 56: #define delline() fputs ("\e[2K", stdout)
! 57: /* Esc[Line;ColumnH - Moves the cursor to the specified position (coordinates) */
! 58: #define gotoxy(x,y) printf("\e[%d;%dH", y, x)
! 59: /* Esc[?25l (lower case L) - Hide Cursor */
! 60: #define hidecursor() fputs ("\e[?25l", stdout)
! 61: /* Esc[?25h (lower case H) - Show Cursor */
! 62: #define showcursor() fputs ("\e[?25h", stdout)
! 63:
! 64: /* Esc[Value;...;Valuem - Set Graphics Mode */
! 65: #define __set_gm(attr,color,val) \
! 66: if (!color) \
! 67: printf("\e[%dm", attr); \
! 68: else \
! 69: printf("\e[%d;%dm", color & 0x10 ? 1 : 0, (color & 0xF) + val)
! 70: #define textattr(attr) __set_gm(attr, 0, 0)
! 71: #define textcolor(color) __set_gm(RESETATTR, color, 30)
! 72: #define textbackground(color) __set_gm(RESETATTR, color, 40)
! 73:
! 74: #endif /* CONIO_H_ */
! 75:
! 76: /**
! 77: * Local Variables:
! 78: * version-control: t
! 79: * indent-tabs-mode: t
! 80: * c-file-style: "linux"
! 81: * End:
! 82: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>