| 123456789101112131415161718192021222324252627282930313233 | #ifndef TERMINAL_H#define TERMINAL_H#include <string>// TODO:  add class.  :Pstruct console_details {  int posx, posy;  int savedx, savedy;  char ansi[20]; // current ANSI command being processed.  int in_ansi;  int fgcolor; // 0-7 // not 0-15  int bgcolor; // 0-7  int status;  // 0, 1 or 5 (Blink)};enum ANSI_TYPE { START, CURSOR, COLOR, CLEAR, OTHER };struct termchar {  int in_ansi;  ANSI_TYPE ansi; // undefined if in_ansi is false};void console_init(struct console_details *cdp);void ansi_color(struct console_details *cdp, int color);const char *color_restore(struct console_details *cdp);ANSI_TYPE console_ansi(struct console_details *cdp, const char *ansi);termchar console_char(struct console_details *cdp, char ch);void console_receive(struct console_details *cdp, std::string chars);#endif
 |