diff options
Diffstat (limited to 'package/lcd4linux/patches/130-nec_fc.patch')
-rw-r--r-- | package/lcd4linux/patches/130-nec_fc.patch | 435 |
1 files changed, 0 insertions, 435 deletions
diff --git a/package/lcd4linux/patches/130-nec_fc.patch b/package/lcd4linux/patches/130-nec_fc.patch deleted file mode 100644 index be8882c109..0000000000 --- a/package/lcd4linux/patches/130-nec_fc.patch +++ /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, -+}; |