]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2005-05-12 14:55:47 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 12 May 2005 14:55:47 +0000 (14:55 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 12 May 2005 14:55:47 +0000 (14:55 +0000)
plugins for serdisplib driver

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@551 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

drv_serdisplib.c
indent.sh

index 9f1bfd819424adc01419bf522d36b805e0792c3f..4aa5621220e5a1452199dd30f1f94337dbc26131 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_serdisplib.c,v 1.3 2005/05/12 05:52:43 reinelt Exp $
+/* $Id: drv_serdisplib.c,v 1.4 2005/05/12 14:55:47 reinelt Exp $
  *
  * driver for serdisplib displays
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_serdisplib.c,v $
+ * Revision 1.4  2005/05/12 14:55:47  reinelt
+ * plugins for serdisplib driver
+ *
  * Revision 1.3  2005/05/12 05:52:43  reinelt
  * serdisplib GET_VERSION_MAJOR macro
  *
@@ -101,10 +104,64 @@ static void drv_SD_blit(const int row, const int col, const int height, const in
 }
 
 
+static int drv_SD_contrast(int contrast)
+{
+    if (contrast < 0)
+       contrast = 0;
+    if (contrast > MAX_CONTRASTSTEP)
+       contrast = MAX_CONTRASTSTEP;
+
+    serdisp_feature(dd, FEATURE_CONTRAST, contrast);
+
+    return contrast;
+}
+
+
+static int drv_SD_backlight(int backlight)
+{
+    if (backlight < FEATURE_NO)
+       backlight = FEATURE_NO;
+    if (backlight > FEATURE_YES)
+       backlight = FEATURE_YES;
+
+    serdisp_feature(dd, FEATURE_BACKLIGHT, backlight);
+
+    return backlight;
+}
+
+
+static int drv_SD_reverse(int reverse)
+{
+    if (reverse < FEATURE_NO)
+       reverse = FEATURE_NO;
+    if (reverse > FEATURE_YES)
+       reverse = FEATURE_YES;
+
+    serdisp_feature(dd, FEATURE_REVERSE, reverse);
+
+    return reverse;
+}
+
+
+static int drv_SD_rotate(int rotate)
+{
+    if (rotate < 0)
+       rotate = 0;
+    if (rotate > 3)
+       rotate = 3;
+
+    serdisp_feature(dd, FEATURE_ROTATE, rotate);
+
+    return rotate;
+}
+
+
+
 static int drv_SD_start(const char *section)
 {
     long version;
     char *port, *model, *options, *s;
+    int contrast, backlight, reverse, rotate;
 
     version = serdisp_getversioncode();
     info("%s: header  version %d.%d", Name, SERDISP_VERSION_MAJOR, SERDISP_VERSION_MINOR);
@@ -167,6 +224,22 @@ static int drv_SD_start(const char *section)
     /* clear display */
     serdisp_clear(dd);
 
+    if (cfg_number(section, "Contrast", 0, 0, MAX_CONTRASTSTEP, &contrast) > 0) {
+       drv_SD_contrast(contrast);
+    }
+
+    if (cfg_number(section, "BACKLIGHT", 0, 0, 1, &backlight) > 0) {
+       drv_SD_backlight(backlight);
+    }
+
+    if (cfg_number(section, "REVERSE", 0, 0, 1, &reverse) > 0) {
+       drv_SD_reverse(reverse);
+    }
+
+    if (cfg_number(section, "ROTATE", 0, 0, 3, &rotate) > 0) {
+       drv_SD_rotate(rotate);
+    }
+
     return 0;
 }
 
@@ -175,8 +248,40 @@ static int drv_SD_start(const char *section)
 /***            plugins               ***/
 /****************************************/
 
-/* none at the moment... */
-/* Fixme: SD_FEATURE's */
+static void plugin_contrast(RESULT * result, RESULT * arg1)
+{
+    double contrast;
+
+    contrast = drv_SD_contrast(R2N(arg1));
+    SetResult(&result, R_NUMBER, &contrast);
+}
+
+
+static void plugin_backlight(RESULT * result, RESULT * arg1)
+{
+    double backlight;
+
+    backlight = drv_SD_backlight(R2N(arg1));
+    SetResult(&result, R_NUMBER, &backlight);
+}
+
+
+static void plugin_reverse(RESULT * result, RESULT * arg1)
+{
+    double reverse;
+
+    reverse = drv_SD_reverse(R2N(arg1));
+    SetResult(&result, R_NUMBER, &reverse);
+}
+
+
+static void plugin_rotate(RESULT * result, RESULT * arg1)
+{
+    double rotate;
+
+    rotate = drv_SD_rotate(R2N(arg1));
+    SetResult(&result, R_NUMBER, &rotate);
+}
 
 
 /****************************************/
@@ -244,8 +349,10 @@ int drv_SD_init(const char *section, const int quiet)
     widget_register(&wc);
 
     /* register plugins */
-    /* none at the moment... */
-    /* Fixme: SD_FEATURE's */
+    AddFunction("LCD::contrast",  1, plugin_contrast);
+    AddFunction("LCD::backlight", 1, plugin_backlight);
+    AddFunction("LCD::reverse",   1, plugin_reverse);
+    AddFunction("LCD::rotate",    1, plugin_rotate);
 
     return 0;
 }
index 30dd2fa341222917d452c737ff3ad58a8fe572e3..1c96e11fd66a89e5b9b5a91de2083be0bcda9b66 100755 (executable)
--- a/indent.sh
+++ b/indent.sh
@@ -2,6 +2,7 @@
 
 # -kr    Use Kernighan & Ritchie coding style.
 # -l150  Set maximum line length for non-comment lines to 150.
+# -pmt   Preserve access and modification times on output files.
 
-indent -kr -l150 *.c *.h
+indent -kr -l150 -pmt *.c *.h