The SVG Terminal Protocol: SVGT/0.2 (revision a)
Copyright 2006 by Liam Breck
SVG Terminal home page: http://networkimprov.net/airwrx/awscene.html
The SVG Terminal module for Firefox implements this protocol.
This draft published 1 March 2006.
1. Connection
1.1 Clients initiate connections on a known, but not neccesarily standard, IP port.
Clients may receive port information for the host via an ad hoc discovery
mechanism, such as a local network broadcast.
1.2 The connection remains open until either side ends the session,
which may happen without warning, but should be announced by a bye message.
2. Terminal messages (to host)
2.1 Commence or terminate a session
SVGT/0.2 SP inp SP hello|bye CR LF
2.2 Send keyboard input
SVGT/0.2 SP inp SP key-type SP key-code CR LF
2.3 Send mouse input
SVGT/0.2 SP inp SP mouse-type SP x-pos , y-pos SP target-id CR LF
2.4 Send pen input
TBD
3. Host messages (to term)
3.1 Terminate session
SVGT/0.2 SP upd SP bye CR LF
3.2 Content update
SVGT/0.2 SP upd SP size-in-bytes CR LF
3.2.1 Elements have the form:
[children] LF
LF
LF
LF
LF
children of an element are not checked for SVGT-specific attributes
atupdate indicates that only attributes should be updated,
otherwise any children of an existing element are replaced
gets the referenced item's BBox() dimensions;
its width & height attributes set minimums
is a container for a set of text elements, one per line
workaround for Firefox 1.5 which lacks size methods for tspan
is a line of text; xy="" places it below the previous line
3.2.2 Text node updates have the form:
text to insert LF
LF (deletion)
replacement text LF
text-pos may be found in an embedded tspan (TBI)
3.3 Specify text highlight and caret
(TBI)
hlid identifies highlight object to create/modify
3.4 Specify wrapping text (creates tspan for each line)
(SVG1.2 textArea isn't accessible for highlighting)
TBD
3.5 Specify insets in wrapping text
TBD
3.6 Incrementally update bitmap graphics attached to an image element
TBD
3.7 Specify external object; handled outside of DOM (e.g. OLE)
TBD
3.8 Set pointer icon
TBD
3.9 Play sound
TBD
3.10 Request local object (client opens a file dialog and returns its contents)
TBD