Added ANSI parsers and rendering ANSI frames
This commit is contained in:
@@ -16,8 +16,8 @@ class Ansi extends AbstractServer {
|
||||
define('HOME', ESC.'[0;0f');
|
||||
define('LEFT', ESC.'[D'); // Move Cursor
|
||||
define('RIGHT', ESC.'[C'); // Move Cursor
|
||||
define('DOWN', chr(10)); // Move Cursor
|
||||
define('UP', chr(11)); // Move Cursor
|
||||
define('DOWN', ESC.'[B'); // Move Cursor
|
||||
define('UP', ESC.'[A'); // Move Cursor
|
||||
define('CR', chr(13));
|
||||
define('LF', chr(10));
|
||||
define('CLS', ESC.'[2J');
|
||||
@@ -48,6 +48,10 @@ class Ansi extends AbstractServer {
|
||||
parent::__construct($o);
|
||||
}
|
||||
|
||||
function outputPosition($x,$y) {
|
||||
return ESC.'['.$y.';'.$x.'f';
|
||||
}
|
||||
|
||||
// Abstract function
|
||||
public function sendBaseline($client,$text,$reposition=FALSE) {
|
||||
$client->send(ESC.'[24;0f'.$text.
|
||||
|
@@ -48,6 +48,22 @@ class Videotex extends AbstractServer {
|
||||
parent::__construct($o);
|
||||
}
|
||||
|
||||
public function outputPosition($x,$y) {
|
||||
// Take the shortest path.
|
||||
if ($y < 12) {
|
||||
return HOME.
|
||||
(($x < 21)
|
||||
? str_repeat(DOWN,$y).str_repeat(RIGHT,$x)
|
||||
: str_repeat(DOWN,$y+1).str_repeat(LEFT,40-$x));
|
||||
|
||||
} else {
|
||||
return HOME.str_repeat(UP,24-$y).
|
||||
(($x < 21)
|
||||
? str_repeat(RIGHT,$x)
|
||||
: str_repeat(LEFT,40-$x));
|
||||
}
|
||||
}
|
||||
|
||||
public function sendBaseline($client,$text,$reposition=FALSE) {
|
||||
$client->send(HOME.UP.$text.
|
||||
($this->blp > $this->strlenv($text)
|
||||
|
Reference in New Issue
Block a user