aboutsummaryrefslogtreecommitdiffstats
path: root/drv_LCD2USB.c (follow)
AgeCommit message (Expand)AuthorFilesLines
2009-01-18more descriptive display names with option -lmichael1-1/+1
2008-10-07Replace write to external variable usb_debug by calling usb_set_debug().bwalle1-2/+1
2007-02-25lots of compiler warnings removed, C++-style comments removed, changed struc ...michael1-8/+8
2007-01-14changed $Revision to $Revmichael1-1/+1
2007-01-14removed all tagsmichael1-36/+0
2007-01-142006-07-19[lcd4linux @ 2006-07-19 01:35:31 by cmay]cmay1-6/+10
2006-04-09[lcd4linux @ 2006-04-09 14:17:49 by reinelt]reinelt1-10/+12
2006-03-18[lcd4linux @ 2006-03-18 14:54:36 by harbaum]harbaum1-15/+26
2006-02-22[lcd4linux @ 2006-02-22 15:59:39 by cmay]cmay1-3/+5
2006-02-21[lcd4linux @ 2006-02-21 21:43:03 by harbaum]harbaum1-16/+67
2006-02-12[lcd4linux @ 2006-02-12 14:32:24 by harbaum]harbaum1-13/+37
2006-02-09[lcd4linux @ 2006-02-09 20:32:49 by harbaum]harbaum1-17/+131
2006-01-30[lcd4linux @ 2006-01-30 20:21:51 by harbaum]harbaum1-25/+34
2006-01-30[lcd4linux @ 2006-01-30 06:25:48 by reinelt]reinelt1-1/+6
2006-01-28[lcd4linux @ 2006-01-28 15:36:17 by harbaum]harbaum1-2/+7
2006-01-26[lcd4linux @ 2006-01-26 19:26:26 by harbaum]harbaum1-0/+488
2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#
# $Id: README.Drivers,v 1.4 2001/03/09 13:08:11 ltoetsch Exp $
#

How to write new display drivers for lcd4linux

If you plan to write a new display driver for lcd4linux, you should follow
this guidelines:

* use Skeleton.c as a start point.
  You might also have a look at Text.c

* create a new sourcefile <drivername>.c and add it to the bottom of
  Makefile.am

* add an entry to configure.in

* there's no need for a <drivername>.h

* create one (or more) unique display names (your driver will be selected by
  this name in the 'Display'-line of lcd4linux.conf).

* include "display.h" in your driver, to get the LCD structure and various 
  BAR_ definitions

* include "cfg.h" if you need to access settings in the config file.

* create a LCD table at the bottom of your driver, and fill it with the
  appropriate values. Take care that you specify the correct bar capabilities
  of your display or driver:

  BAR_L:  horizontal bars headed left
  BAR_R:  horizontal bars headed right
  BAR_H2: driver supports horizontal dual-bars
  BAR_U:  vertical bars bottom-up
  BAR_D:  vertical bars top-down
  BAR_V2: driver supports vertical dual-bars

* edit display.c and create a reference to your LCD table:

     external LCD YourDriver[];

* extend the FAMILY table in display.c with your driver:

     FAMILY Driver[] = {
       { "Skeleton",      Skeleton },
       { "MatrixOrbital", MatrixOrbital },
       { "YourFamily",    YourDriver },
       { "" }
     };

* write the correspondig init(), clear(), put(), bar(), quit() and
  flush()-functions. There's no need to use a framebuffer and display its
  contents with the flush()- call (as in MatrixOrbital.c), you can directly
  write to the display in the put()- and bar()-functions, and use an empty
  flush()-function. But if you have a limited number of user-defined
  characters, and therefore you have to do some sort of 'character reduction'
  or similar stuff, you will have to use a framebuffer and the flush()-call.