LCDproc suggestion object hierarchy

Tdriver
	TVirtualDriver
	TMtxOrbDriver
	TTextDriver
	
Tcomms
	TSerial
	TParallel
	TSCSI
	
Tdisplay
	Tclock_dsp
	Tmail_dsp
	Tcpustate_dsp
	Tcpugraph_dsp
	Tmeminf_dsp
	Tuptime_dsp
	Txload_dsp
	Tcredits_dsp
	Theartbeat_dsp
	Tstub_dsp
	Tusercfg_dsp
	
Tremote
	Ttcpsockd
	TUNIXsockd

Tchannel
	Ttcpsocket
	TUNIXsocket
	
Tconfig

Tfeedback
	TMtxOrb_keypad
	Tserial_buttons

Tschedular

---------------------------------------------------

Object brief descriptions

Tdriver (and decendants) provide manipulation of the physical
LCD panel including backlight, typeface loading, etc.
Tdriver will provide default methods for tasks such as
	text centering
	scrolling
	screen clearing
	etc
  TVirtualDriver could act as a frame buffer / virtual display.
  This would allow several display objects to access the (virtual)
  display in a single cycle and then the virtual driver can flush
  the changes from the last display (delta display) in a single pass.
  This provides a portable way to implement display objects
  (like the heartbeat which only changes one character at a time)
  but overlap a standard full screen display
  
  
 Tcomms (and decendants) transmit and receive all data to and
 from the communications interfaces.  Tdriver and Tfeedback will
 use these objects directly.
 
 Tdisplay (and decendants) generate the actual display information
 by manipulating the Tdriver object which has been given to it.
 The Tdriver object should usually be a TVirtualDriver descendant.
 
 Tremote (and decendants) create, keep track of and ultimately destroy
 Tchannel objects.  Each Tchannel can potentitally be an external
 connection to a remote client.  The remote client can generate
 either complete screens in a similar style to a Tdisplay object with
 Tchannel using a Tstub_dsp to generate the screen based on info 
 supplied to it or it can feed  data into an existing Tdisplay object 
 (Tchannel will do this by setting Tdisplay properties).
 
 Tconfig is responsible for parsing the command line and reading/re-reading
 the contents of a configuration file.
 
 Tfeedback (and its descendants) may communicate with a Tcomms object to 
 retrieve information from a keypad or other input device.
 
 Tschedular is responsible for the overall co-ordination of everything.
 

Other notes:
  I can't decide things like "should scroll stuff be down to Tdriver
  or Tdisplay?".
  Some sort of Thash would be a useful way of passing data from 
  sockets to display objects as well
  
