Adding a good readme file

This commit is contained in:
Julien Palard 2011-10-16 13:49:40 +02:00
parent 0589535c9b
commit 6b4466c996
2 changed files with 90 additions and 1 deletions

1
README
View File

@ -1 +0,0 @@
Trying to implement a library to emulate VT100.

90
README.rst Normal file
View File

@ -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);