aboutsummaryrefslogtreecommitdiffstats
path: root/README.Drivers
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--README.Drivers47
1 files changed, 47 insertions, 0 deletions
diff --git a/README.Drivers b/README.Drivers
new file mode 100644
index 0000000..f5cccc5
--- /dev/null
+++ b/README.Drivers
@@ -0,0 +1,47 @@
+#
+# $Id: README.Drivers,v 1.1 2000/03/19 08:41:28 reinelt 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
+
+* create a new sourcefile <drivername>.c and add it to the bottom of Makefile.am
+
+* 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 DISPLAY structure and various
+ BAR_ definitions
+
+* include "cfg.h" if you need to access settings in the config file.
+
+* create a DISPLAY 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!
+
+* edit display.c and create a reference to your DISPLAY table:
+
+ external DISPLAY 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() 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.