tag rc6
[openwrt/svn-archive/openwrt.git] / openwrt / package / lcd4linux / patches / 130-nec_fc.patch
diff --git a/openwrt/package/lcd4linux/patches/130-nec_fc.patch b/openwrt/package/lcd4linux/patches/130-nec_fc.patch
deleted file mode 100644 (file)
index be8882c..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-diff -urN lcd4linux.old/Makefile.in lcd4linux.dev/Makefile.in
---- lcd4linux.old/Makefile.in  2006-01-20 03:52:18.414424750 +0100
-+++ lcd4linux.dev/Makefile.in  2006-01-20 07:59:02.782678750 +0100
-@@ -104,7 +104,7 @@
- lcd4linux_SOURCES =  lcd4linux.c                 cfg.c         cfg.h         debug.c       debug.h       drv.c         drv.h         evaluator.c   evaluator.h   hash.c        hash.h        layout.c      layout.h      pid.c         pid.h         timer.c       timer.h       thread.c      thread.h      udelay.c      udelay.h      qprintf.c     qprintf.h                                 widget.c      widget.h      widget_text.c widget_text.h widget_bar.c  widget_bar.h  widget_icon.c widget_icon.h                             plugin.c      plugin.h      plugin_cfg.c                plugin_math.c               plugin_string.c             plugin_test.c               plugin_time.c
--EXTRA_lcd4linux_SOURCES =  drv_generic_text.c          drv_generic_text.h          drv_generic_graphic.c       drv_generic_graphic.h       drv_generic_serial.c        drv_generic_serial.h        drv_generic_parport.c       drv_generic_parport.h       drv_generic_i2c.c           drv_generic_i2c.h           drv_BeckmannEgle.c          drv_BWCT.c                  drv_Crystalfontz.c          drv_Curses.c                drv_Cwlinux.c               drv_HD44780.c               drv_Image.c                 drv_LCDLinux.c              drv_LCDLinux.h              drv_LCDTerm.c               drv_M50530.c                drv_MatrixOrbital.c         drv_MilfordInstruments.c    drv_Noritake.c              drv_NULL.c                  drv_RouterBoard.c           drv_serdisplib.c            drv_SimpleLCD.c             drv_T6963.c                 drv_Trefon.c                drv_USBLCD.c                drv_X11.c                                               font_6x8.h                                              lcd4linux_i2c.h                                         plugin_apm.c                plugin_cpuinfo.c            plugin_diskstats.c          plugin_dvb.c                plugin_exec.c               plugin_i2c_sensors.c        plugin_imon.c               plugin_isdn.c               plugin_loadavg.c            plugin_meminfo.c            plugin_mysql.c              plugin_netdev.c             plugin_pop3.c               plugin_ppp.c                plugin_proc_stat.c          plugin_python.c             plugin_seti.c               plugin_statfs.c             plugin_uname.c              plugin_uptime.c             plugin_wireless.c           plugin_xmms.c
-+EXTRA_lcd4linux_SOURCES =  drv_generic_text.c          drv_generic_text.h          drv_generic_graphic.c       drv_generic_graphic.h       drv_generic_serial.c        drv_generic_serial.h        drv_generic_parport.c       drv_generic_parport.h       drv_generic_i2c.c           drv_generic_i2c.h           drv_BeckmannEgle.c          drv_BWCT.c                  drv_Crystalfontz.c          drv_Curses.c                drv_Cwlinux.c               drv_HD44780.c               drv_Image.c                 drv_LCDLinux.c              drv_LCDLinux.h              drv_LCDTerm.c               drv_M50530.c                drv_MatrixOrbital.c          drv_FC-NEC.c             drv_MilfordInstruments.c    drv_Noritake.c              drv_NULL.c                  drv_RouterBoard.c           drv_serdisplib.c            drv_SimpleLCD.c             drv_T6963.c                 drv_Trefon.c                drv_USBLCD.c                drv_X11.c                                               font_6x8.h                                              lcd4linux_i2c.h                                         plugin_apm.c                plugin_cpuinfo.c            plugin_diskstats.c          plugin_dvb.c                plugin_exec.c               plugin_i2c_sensors.c        plugin_imon.c               plugin_isdn.c               plugin_loadavg.c            plugin_meminfo.c            plugin_mysql.c              plugin_netdev.c             plugin_pop3.c               plugin_ppp.c                plugin_proc_stat.c          plugin_python.c             plugin_seti.c               plugin_statfs.c             plugin_uname.c              plugin_uptime.c             plugin_wireless.c           plugin_xmms.c
- EXTRA_DIST =  lcd4linux.conf.sample       lcd4kde.conf                lcd4linux.kdelnk            lcd4linux.xpm               lcd4linux.lsm               curses.m4                   AUTHORS                     CREDITS                     FAQ                         NEWS                        TODO                        README                      README.Drivers              README.Plugins              README.KDE                  plugin_sample.c
-@@ -362,6 +362,9 @@
- drv_M50530.o: drv_M50530.c config.h debug.h cfg.h qprintf.h udelay.h \
-       plugin.h evaluator.h widget.h widget_text.h widget_icon.h \
-       widget_bar.h drv.h drv_generic_text.h drv_generic_parport.h
-+drv_NEC-FC.o: drv_NEC-FC.c config.h debug.h cfg.h plugin.h \
-+      evaluator.h widget.h widget_text.h widget_icon.h widget_bar.h \
-+      drv.h drv_generic_text.h drv_generic_serial.h
- drv_MatrixOrbital.o: drv_MatrixOrbital.c config.h debug.h cfg.h plugin.h \
-       evaluator.h widget.h widget_text.h widget_icon.h widget_bar.h \
-       drv.h drv_generic_text.h drv_generic_serial.h
-diff -urN lcd4linux.old/config.h.in lcd4linux.dev/config.h.in
---- lcd4linux.old/config.h.in  2006-01-20 03:52:18.418423000 +0100
-+++ lcd4linux.dev/config.h.in  2006-01-20 08:01:07.332164500 +0100
-@@ -368,6 +368,9 @@
- /* MatrixOrbital driver */
- #undef WITH_MATRIXORBITAL
-+/* NEC-FC driver */
-+#undef WITH_NEC_FC
-+
- /* Milford Instruments driver */
- #undef WITH_MILINST
-diff -urN lcd4linux.old/configure lcd4linux.dev/configure
---- lcd4linux.old/configure    2006-01-20 03:52:18.418423000 +0100
-+++ lcd4linux.dev/configure    2006-01-20 08:00:27.973391500 +0100
-@@ -872,7 +872,7 @@
-                           HD44780, LCDLinux, LCDTerm, M50530, MatrixOrbital,
-                           MilfordInstruments, Noritake, NULL, PNG, PPM,
-                           RouterBoard, serdisplib, SimpleLCD, T6963, Trefon,
--                          USBLCD, X11
-+                          USBLCD, X11, NEC-FC
-   --with-plugins=<list>   choose which plugins to compile.
-                           type --with-plugins=list for a list
-                           of avaible plugins
-@@ -5888,6 +5888,7 @@
-          LCDTERM="yes"
-          M50530="yes"
-          MATRIXORBITAL="yes"
-+         NEC_FC="yes"
-          MILINST="yes"
-          NORITAKE="yes"
-          NULL="yes"
-@@ -5930,6 +5931,9 @@
-          ;;
-       MatrixOrbital)
-          MATRIXORBITAL=$val
-+               ;;
-+      NEC-FC)
-+         NEC_FC=$val
-          ;;
-       MilfordInstruments)
-          MILINST=$val
-@@ -6109,6 +6113,16 @@
- fi
-+if test "$NEC_FC" = "yes"; then
-+   SERIAL="yes"
-+   DRIVERS="$DRIVERS drv_NEC-FC.o"
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define WITH_NEC_FC 1
-+_ACEOF
-+
-+fi
-+
- if test "$MILINST" = "yes"; then
-    DRIVERS="$DRIVERS drv_MilfordInstruments.o"
-diff -urN lcd4linux.old/drv.c lcd4linux.dev/drv.c
---- lcd4linux.old/drv.c        2006-01-20 03:52:18.422421250 +0100
-+++ lcd4linux.dev/drv.c        2006-01-20 08:02:30.895589500 +0100
-@@ -207,6 +207,7 @@
- extern DRIVER drv_LCDLinux;
- extern DRIVER drv_LCDTerm;
- extern DRIVER drv_M50530;
-+extern DRIVER drv_NEC_FC;
- extern DRIVER drv_MatrixOrbital;
- extern DRIVER drv_MilfordInstruments;
- extern DRIVER drv_Noritake;
-@@ -259,6 +260,9 @@
- #ifdef WITH_MATRIXORBITAL
-     &drv_MatrixOrbital,
- #endif
-+#ifdef WITH_NEC_FC
-+    &drv_NEC_FC,
-+#endif
- #ifdef WITH_MILINST
-     &drv_MilfordInstruments,
- #endif
-diff -urN lcd4linux.old/drv_NEC-FC.c lcd4linux.dev/drv_NEC-FC.c
---- lcd4linux.old/drv_NEC-FC.c 1970-01-01 01:00:00.000000000 +0100
-+++ lcd4linux.dev/drv_NEC-FC.c 2006-01-20 09:32:19.632985000 +0100
-@@ -0,0 +1,328 @@
-+/* $Id$
-+ *
-+ * Driver for NEC FC20X2JA
-+ * Copyright (C) 2006, Felix Fietkau <nbd@openwrt.org>
-+ *
-+ * Based on MatrixOrbital driver
-+ *
-+ * LCD4Linux is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2, or (at your option)
-+ * any later version.
-+ *
-+ * LCD4Linux is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+/* 
-+ *
-+ * exported fuctions:
-+ *
-+ * struct DRIVER drv_NEC_FC_
-+ *
-+ */
-+
-+#include "config.h"
-+
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+#include "debug.h"
-+#include "cfg.h"
-+#include "plugin.h"
-+#include "widget.h"
-+#include "widget_text.h"
-+#include "widget_icon.h"
-+#include "widget_bar.h"
-+#include "drv.h"
-+#include "drv_generic_text.h"
-+#include "drv_generic_serial.h"
-+
-+
-+static char Name[] = "NEC-FC";
-+static int cur_pos = 0;
-+static int Model;
-+static int Protocol;
-+
-+/* Fixme: GPO's not yet implemented */
-+/* static int GPO[8]; */
-+static int GPOS;
-+
-+
-+typedef struct {
-+    int type;
-+    char *name;
-+    int rows;
-+    int cols;
-+    int gpos;
-+    int protocol;
-+} MODEL;
-+
-+/* Fixme #1: number of gpo's should be verified */
-+/* Fixme #2: protocol should be verified */
-+
-+static MODEL Models[] = {
-+    {0x01, "FC20X2JA", 2, 20, 0, 1},
-+    {0xff, "Unknown", -1, -1, 0, 0}
-+};
-+
-+
-+/****************************************/
-+/***  hardware dependant functions    ***/
-+/****************************************/
-+
-+static void drv_FC_clear(void)
-+{
-+      drv_generic_serial_write("\014", 1);    /* Clear Screen */
-+      cur_pos = 0;
-+}
-+
-+
-+static void drv_FC_write(const int row, const int col, const char *data, const int len)
-+{
-+      int i;
-+      int target = (row * DCOLS) + col;
-+      target -= cur_pos;
-+      char *buf;
-+
-+      buf = malloc(len + 1);
-+      memcpy(buf, data, len);
-+      buf[len] = 0;
-+
-+      if (target < 0)
-+              for (i = 0; i < -target; i++)
-+              drv_generic_serial_write("\x08", 1);
-+      else
-+              for (i = 0; i < target; i++)
-+                  drv_generic_serial_write("\x09", 1);
-+      
-+      cur_pos += target + len;
-+      if (cur_pos >= (DROWS * DCOLS))
-+              cur_pos = 0;
-+
-+    drv_generic_serial_write(data, len);
-+}
-+
-+
-+static void drv_FC_defchar(const int ascii, const unsigned char *matrix)
-+{
-+    int i;
-+    char cmd[11] = "\x1aN";
-+
-+    cmd[2] = (char) ascii;
-+    for (i = 0; i < 8; i++) {
-+      cmd[i + 3] = matrix[i] & 0x1f;
-+    }
-+    drv_generic_serial_write(cmd, 11);
-+}
-+
-+
-+static int drv_FC_contrast(int contrast)
-+{
-+      char c = (char) contrast;
-+      c >>= 6;
-+      c &= 2;
-+      c = 4 - c;
-+
-+    drv_generic_serial_write(&c, 1);
-+    return contrast;
-+}
-+
-+
-+static int drv_FC_start(const char *section, const int quiet)
-+{
-+    int i;
-+    char *model;
-+    char buffer[256];
-+
-+    model = cfg_get(section, "Model", NULL);
-+    if (model != NULL && *model != '\0') {
-+      for (i = 0; Models[i].type != 0xff; i++) {
-+          if (strcasecmp(Models[i].name, model) == 0)
-+              break;
-+      }
-+      if (Models[i].type == 0xff) {
-+          error("%s: %s.Model '%s' is unknown from %s", Name, section, model, cfg_source());
-+          return -1;
-+      }
-+      Model = i;
-+      info("%s: using model '%s'", Name, Models[Model].name);
-+    } else {
-+      info("%s: no '%s.Model' entry from %s, auto-dedecting", Name, section, cfg_source());
-+      Model = -1;
-+    }
-+
-+
-+    if (drv_generic_serial_open(section, Name, 0) < 0)
-+      return -1;
-+
-+    /* initialize global variables */
-+    DROWS = Models[Model].rows;
-+    DCOLS = Models[Model].cols;
-+    GPOS = Models[Model].gpos;
-+    Protocol = Models[Model].protocol;
-+
-+    drv_FC_clear();
-+
-+    drv_generic_serial_write("\x01", 1);      /* 100% lum */
-+    drv_generic_serial_write("\x14", 1);      /* cursor on */
-+    drv_generic_serial_write("\x11", 1);    /* scroll write */
-+
-+    /* set contrast */
-+    if (cfg_number(section, "Contrast", 0, 0, 255, &i) > 0) {
-+      drv_FC_contrast(i);
-+    }
-+
-+    return 0;
-+}
-+
-+
-+/****************************************/
-+/***            plugins               ***/
-+/****************************************/
-+
-+
-+static void plugin_contrast(RESULT * result, const int argc, RESULT * argv[])
-+{
-+    double contrast;
-+
-+    switch (argc) {
-+    case 0:
-+      contrast = drv_FC_contrast(-1);
-+      SetResult(&result, R_NUMBER, &contrast);
-+      break;
-+    case 1:
-+      contrast = drv_FC_contrast(R2N(argv[0]));
-+      SetResult(&result, R_NUMBER, &contrast);
-+      break;
-+    default:
-+      error("%s::contrast(): wrong number of parameters", Name);
-+      SetResult(&result, R_STRING, "");
-+    }
-+}
-+
-+
-+
-+/****************************************/
-+/***        widget callbacks          ***/
-+/****************************************/
-+
-+/* using drv_generic_text_draw(W) */
-+/* using drv_generic_text_icon_draw(W) */
-+/* using drv_generic_text_bar_draw(W) */
-+
-+
-+/****************************************/
-+/***        exported functions        ***/
-+/****************************************/
-+
-+
-+/* list models */
-+int drv_FC_list(void)
-+{
-+    int i;
-+
-+    for (i = 0; Models[i].type != 0xff; i++) {
-+      printf("%s ", Models[i].name);
-+    }
-+    return 0;
-+}
-+
-+
-+/* initialize driver & display */
-+int drv_FC_init(const char *section, const int quiet)
-+{
-+    WIDGET_CLASS wc;
-+    int ret;
-+
-+    /* display preferences */
-+    XRES = 5;                 /* pixel width of one char  */
-+    YRES = 8;                 /* pixel height of one char  */
-+    CHARS = 8;                        /* number of user-defineable characters */
-+    CHAR0 = 0;                        /* ASCII of first user-defineable char */
-+    GOTO_COST = 4;            /* number of bytes a goto command requires */
-+
-+    /* real worker functions */
-+    drv_generic_text_real_write = drv_FC_write;
-+    drv_generic_text_real_defchar = drv_FC_defchar;
-+
-+
-+    /* start display */
-+    if ((ret = drv_FC_start(section, quiet)) != 0)
-+      return ret;
-+
-+    /* initialize generic text driver */
-+    if ((ret = drv_generic_text_init(section, Name)) != 0)
-+      return ret;
-+
-+    /* initialize generic icon driver */
-+    if ((ret = drv_generic_text_icon_init()) != 0)
-+      return ret;
-+
-+    /* initialize generic bar driver */
-+    if ((ret = drv_generic_text_bar_init(0)) != 0)
-+      return ret;
-+
-+    /* add fixed chars to the bar driver */
-+    drv_generic_text_bar_add_segment(0, 0, 255, 32);  /* ASCII  32 = blank */
-+    drv_generic_text_bar_add_segment(255, 255, 255, 255);     /* ASCII 255 = block */
-+
-+    /* register text widget */
-+    wc = Widget_Text;
-+    wc.draw = drv_generic_text_draw;
-+    widget_register(&wc);
-+
-+    /* register icon widget */
-+    wc = Widget_Icon;
-+    wc.draw = drv_generic_text_icon_draw;
-+    widget_register(&wc);
-+
-+    /* register bar widget */
-+    wc = Widget_Bar;
-+    wc.draw = drv_generic_text_bar_draw;
-+    widget_register(&wc);
-+
-+    /* register plugins */
-+    AddFunction("LCD::contrast", -1, plugin_contrast);
-+
-+    return 0;
-+}
-+
-+
-+/* close driver & display */
-+int drv_FC_quit(const int quiet)
-+{
-+
-+    info("%s: shutting down.", Name);
-+
-+    drv_generic_text_quit();
-+
-+    /* clear display */
-+    drv_FC_clear();
-+
-+    /* say goodbye... */
-+    if (!quiet) {
-+      drv_generic_text_greet("goodbye!", NULL);
-+    }
-+
-+    drv_generic_serial_close();
-+
-+    return (0);
-+}
-+
-+
-+DRIVER drv_NEC_FC = {
-+  name:Name,
-+  list:drv_FC_list,
-+  init:drv_FC_init,
-+  quit:drv_FC_quit,
-+};