diff options
Diffstat (limited to 'libterm/term.h')
-rw-r--r-- | libterm/term.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/libterm/term.h b/libterm/term.h new file mode 100644 index 0000000..df3d7b1 --- /dev/null +++ b/libterm/term.h @@ -0,0 +1,70 @@ +#ifndef __LIBTERM_TERM_H +#define __LIBTERM_TERM_H + +#include <termios.h> +#include <unistd.h> +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <string.h> +#include <stdlib.h> +#include <ctype.h> +#include <sys/types.h> +#include <sys/ioctl.h> +#include <unistd.h> + +#include "screen_modes.h" +#include "debug.h" + +enum TERM_KEY_ACTION { + KEY_NULL = 0, /* NULL */ + CTRL_A = 1, /* Ctrl+a */ + CTRL_B = 2, /* Ctrl-b */ + CTRL_C = 3, /* Ctrl-c */ + CTRL_D = 4, /* Ctrl-d */ + CTRL_E = 5, /* Ctrl-e */ + CTRL_F = 6, /* Ctrl-f */ + CTRL_H = 8, /* Ctrl-h */ + TAB = 9, /* Tab */ + CTRL_K = 11, /* Ctrl+k */ + CTRL_L = 12, /* Ctrl+l */ + ENTER = 13, /* Enter */ + CTRL_N = 14, /* Ctrl-n */ + CTRL_P = 16, /* Ctrl-p */ + CTRL_T = 20, /* Ctrl-t */ + CTRL_U = 21, /* Ctrl+u */ + CTRL_W = 23, /* Ctrl+w */ + ESC = 27, /* Escape */ + QMARK = 63, /* ? */ + BACKSPACE = 127 /* Backspace */ +}; + + +#define TK_ENTER 13 +#define TK_ESC 27 +#define TK_BACKSPACE 8 + +typedef struct term_screen +{ + int ifd, ofd; + struct termios orig_i, orig_o; + struct termios raw_i, raw_o; + screen_mode_e mode; +} term_screen; + +int term_init( term_screen *ts ); +int term_set_speed( term_screen *ts, speed_t speed); +int term_get_maxcol( term_screen *ts ); +int term_get_maxrow( term_screen *ts ); +int term_cur_get_c( term_screen *ts ); +int term_cur_get_r( term_screen *ts ); +int term_cur_set_c( term_screen *ts, unsigned int pc ); +int term_cur_set_r( term_screen *ts, unsigned int pr ); +int term_cur_set_cr( term_screen *ts, unsigned int pc , unsigned int pr ); +int term_clr_scr( term_screen *ts ); +int term_set_raw_mode( term_screen *ts ); +int term_mode_rows( term_screen *ts ); +int term_mode_columns( term_screen *ts ); +void term_set_orig_mode( term_screen *ts ); + +#endif |