Adding a good readme file
This commit is contained in:
parent
0589535c9b
commit
6b4466c996
|
@ -0,0 +1,90 @@
|
|||
Overview
|
||||
========
|
||||
|
||||
lw_terminal_parser, lw_terminal_vt100, and hl_vt100 are three modules used to emulate a vt100 terminal::
|
||||
|
||||
-------------
|
||||
| |
|
||||
| Your Code |
|
||||
| |
|
||||
-------------
|
||||
| ^
|
||||
vt100 = vt100_headless_init() | |
|
||||
vt100->changed = changed; | | hl_vt100 raises 'changed'
|
||||
vt100_headless_fork(vt100, ... | | when the screen has changed.
|
||||
| | You get the content of the screen
|
||||
| | calling vt100_headless_getlines.
|
||||
V |
|
||||
------------- -------------
|
||||
Read from PTY master and write | | | PTY | |
|
||||
to lw_terminal_vt100_read_str | | hl_vt100 |<------------>| Program |
|
||||
V | |Master Slave| |
|
||||
------------- -------------
|
||||
| |^ hl_vt100 gets lw_terminal_vt100's
|
||||
| || lines by calling
|
||||
| || lw_terminal_vt100_getlines
|
||||
| ||
|
||||
| ||
|
||||
V V|
|
||||
----------------------
|
||||
Got data from | | | Recieve data from callbacks
|
||||
lw_terminal_vt100_read_str | | lw_terminal_vt100 | And store an in-memory
|
||||
give it to | | | state of the vt100 terminal
|
||||
lw_terminal_read_str V ----------------------
|
||||
| ^
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| | Callbacks
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
| |
|
||||
V |
|
||||
----------------------
|
||||
Got data from | |
|
||||
lw_terminal_pasrser_read_str | lw_terminal_parser |
|
||||
parses, and call callbacks | |
|
||||
----------------------
|
||||
|
||||
lw_terminal_parser
|
||||
==================
|
||||
|
||||
lw_terminal_parser parses terminal escape sequences, calling callbacks
|
||||
when a sequence is sucessfully parsed, read example/parse.c.
|
||||
|
||||
Provides :
|
||||
|
||||
* struct lw_terminal \*lw_terminal_parser_init(void);
|
||||
* void lw_terminal_parser_destroy(struct lw_terminal\* this);
|
||||
* void lw_terminal_parser_default_unimplemented(struct lw_terminal\* this, char \*seq, char chr);
|
||||
* void lw_terminal_parser_read(struct lw_terminal \*this, char c);
|
||||
* void lw_terminal_parser_read_str(struct lw_terminal \*this, char \*c);
|
||||
|
||||
|
||||
lw_terminal_vt100
|
||||
=================
|
||||
|
||||
Hooks into a lw_terminal_parser and keep an in-memory state of the
|
||||
screen of a vt100.
|
||||
|
||||
Provides :
|
||||
* struct lw_terminal_vt100 \*lw_terminal_vt100_init(void \*user_data, void (\*unimplemented)(struct lw_terminal\* term_emul, char \*seq, char chr));
|
||||
* char lw_terminal_vt100_get(struct lw_terminal_vt100 \*vt100, unsigned int x, unsigned int y);
|
||||
* const char \*\*lw_terminal_vt100_getlines(struct lw_terminal_vt100 \*vt100);
|
||||
* void lw_terminal_vt100_destroy(struct lw_terminal_vt100 \*this);
|
||||
* void lw_terminal_vt100_read_str(struct lw_terminal_vt100 \*this, char \*buffer);
|
||||
|
||||
|
||||
hl_vt100
|
||||
========
|
||||
|
||||
Forks a program, plug its io to a pseudo terminal and emulate a vt100
|
||||
using lw_terminal_vt100.
|
||||
|
||||
Provides :
|
||||
* void vt100_headless_fork(struct vt100_headless \*this, const char \*progname, char \*const argv[]);
|
||||
* struct vt100_headless \*vt100_headless_init(void);
|
||||
* const char \*\*vt100_headless_getlines(struct vt100_headless \*this);
|
Loading…
Reference in New Issue