-/* $Id: BeckmannEgle.c,v 1.14 2003/08/16 07:31:35 reinelt Exp $
+/* $Id: BeckmannEgle.c,v 1.15 2003/08/24 05:17:58 reinelt Exp $
*
* driver for Beckmann+Egle mini terminals
*
*
*
* $Log: BeckmannEgle.c,v $
+ * Revision 1.15 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.14 2003/08/16 07:31:35 reinelt
* double buffering in all drivers
*
port=cfg_get ("Port", NULL);
if (port==NULL || *port=='\0') {
- error ("BeckmannEgle: no 'Port' entry in %s", cfg_file());
+ error ("BeckmannEgle: no 'Port' entry in %s", cfg_source());
return -1;
}
Port=strdup(port);
s=cfg_get("Type", NULL);
if (s==NULL || *s=='\0') {
- error ("BeckmannEgle: no 'Type' entry in %s", cfg_file());
+ error ("BeckmannEgle: no 'Type' entry in %s", cfg_source());
return -1;
}
if (sscanf(s,"%dx%d",&cols,&rows)!=2 || rows<1 || cols<1) {
-/* $Id: Crystalfontz.c,v 1.12 2003/08/19 04:28:41 reinelt Exp $
+/* $Id: Crystalfontz.c,v 1.13 2003/08/24 05:17:58 reinelt Exp $
*
* driver for display modules from Crystalfontz
*
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: Crystalfontz.c,v $
+ * Revision 1.13 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.12 2003/08/19 04:28:41 reinelt
* more Icon stuff, minor glitches fixed
*
port=cfg_get ("Port",NULL);
if (port==NULL || *port=='\0') {
- error ("Crystalfontz: no 'Port' entry in %s", cfg_file());
+ error ("Crystalfontz: no 'Port' entry in %s", cfg_source());
return -1;
}
Port=strdup(port);
Speed=B19200;
break;
default:
- error ("Crystalfontz: unsupported speed '%s' in %s", speed, cfg_file());
+ error ("Crystalfontz: unsupported speed '%s' in %s", speed, cfg_source());
return -1;
}
-/* $Id: Cwlinux.c,v 1.11 2003/08/16 07:31:35 reinelt Exp $
+/* $Id: Cwlinux.c,v 1.12 2003/08/24 05:17:58 reinelt Exp $
*
* driver for Cwlinux serial display modules
*
*
*
* $Log: Cwlinux.c,v $
+ * Revision 1.12 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.11 2003/08/16 07:31:35 reinelt
* double buffering in all drivers
*
port = cfg_get("Port",NULL);
if (port == NULL || *port == '\0') {
- error("Cwlinux: no 'Port' entry in %s", cfg_file());
+ error("Cwlinux: no 'Port' entry in %s", cfg_source());
return -1;
}
Port = strdup(port);
Speed = B19200;
break;
default:
- error("Cwlinux: unsupported speed '%s' in %s", speed, cfg_file());
+ error("Cwlinux: unsupported speed '%s' in %s", speed, cfg_source());
return -1;
}
-/* $Id: HD44780.c,v 1.35 2003/08/22 03:45:08 reinelt Exp $
+/* $Id: HD44780.c,v 1.36 2003/08/24 05:17:58 reinelt Exp $
*
* driver for display modules based on the HD44780 chip
*
*
*
* $Log: HD44780.c,v $
+ * Revision 1.36 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.35 2003/08/22 03:45:08 reinelt
* bug in parallel port code fixed, more icons stuff
*
s=cfg_get("Size",NULL);
if (s==NULL || *s=='\0') {
- error ("HD44780: no 'Size' entry in %s", cfg_file());
+ error ("HD44780: no 'Size' entry in %s", cfg_source());
return -1;
}
if (sscanf(s,"%dx%d",&cols,&rows)!=2 || rows<1 || cols<1) {
else {
gpos=strtol(s, &e, 0);
if (*e!='\0' || gpos<0 || gpos>8) {
- error ("HD44780: bad GPOs '%s' in %s", s, cfg_file());
+ error ("HD44780: bad GPOs '%s' in %s", s, cfg_source());
return -1;
}
}
s=cfg_get("Controllers", "1");
Controllers=strtol(s, &e, 0);
if (*e!='\0' || Controllers<1 || Controllers>2) {
- error ("HD44780: bad Controllers '%s' in %s, should be '1' or '2'", s, cfg_file());
+ error ("HD44780: bad Controllers '%s' in %s, should be '1' or '2'", s, cfg_source());
return -1;
}
info ("wiring: using display with %d controllers", Controllers);
s=cfg_get("Bits", "8");
Bits=strtol(s, &e, 0);
if (*e!='\0' || (Bits!=4 && Bits!=8)) {
- error ("HD44780: bad Bits '%s' in %s, should be '4' or '8'", s, cfg_file());
+ error ("HD44780: bad Bits '%s' in %s, should be '4' or '8'", s, cfg_source());
return -1;
}
info ("wiring: using %d bit mode", Bits);
-/* $Id: M50530.c,v 1.11 2003/08/16 07:31:35 reinelt Exp $
+/* $Id: M50530.c,v 1.12 2003/08/24 05:17:58 reinelt Exp $
*
* driver for display modules based on the M50530 chip
*
*
*
* $Log: M50530.c,v $
+ * Revision 1.12 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.11 2003/08/16 07:31:35 reinelt
* double buffering in all drivers
*
s=cfg_get("Size",NULL);
if (s==NULL || *s=='\0') {
- error ("M50530: no 'Size' entry in %s", cfg_file());
+ error ("M50530: no 'Size' entry in %s", cfg_source());
return -1;
}
if (sscanf(s,"%dx%d",&cols,&rows)!=2 || rows<1 || cols<1) {
} else {
gpos=strtol(s, &e, 0);
if (*e!='\0' || gpos<0 || gpos>8) {
- error ("M50530: bad GPOs '%s' in %s", s, cfg_file());
+ error ("M50530: bad GPOs '%s' in %s", s, cfg_source());
return -1;
}
}
noinst_LIBRARIES = liblcd4linux.a
AM_CFLAGS = $(X_CFLAGS) -D_GNU_SOURCE -Wall
+
lcd4linux_LDFLAGS = $(X_LIBS)
lcd4linux_LDADD = @DRIVERS@ @DRVLIBS@
lcd4linux_DEPENDENCIES = @DRIVERS@
+liblcd4linux_a_LIBADD = @DRIVERS@
+liblcd4linux_a_DEPENDENCIES = @DRIVERS@
+
lcd4linux_SOURCES = \
lcd4linux.c \
debug.c debug.h \
Text.c
liblcd4linux_a_SOURCES = \
+display.c display.h \
+debug.c debug.h \
+cfg.c cfg.h \
+lock.c lock.h \
+pixmap.c pixmap.h \
+bar.c bar.h \
+icon.c icon.h \
+fontmap.c fontmap.h \
parport.c parport.h \
-BeckmannEgle.c \
-Crystalfontz.c \
-Cwlinux.c \
-HD44780.c \
-M50530.c \
-T6963.c \
-USBLCD.c \
-MatrixOrbital.c \
-PalmPilot.c \
-Raster.c \
-SIN.c \
-Skeleton.c \
-XWindow.c \
-Text.c
+udelay.c udelay.h
EXTRA_DIST = \
lcd4linux.conf.sample \
noinst_LIBRARIES = liblcd4linux.a
AM_CFLAGS = $(X_CFLAGS) -D_GNU_SOURCE -Wall
+
lcd4linux_LDFLAGS = $(X_LIBS)
lcd4linux_LDADD = @DRIVERS@ @DRVLIBS@
lcd4linux_DEPENDENCIES = @DRIVERS@
+liblcd4linux_a_LIBADD = @DRIVERS@
+liblcd4linux_a_DEPENDENCIES = @DRIVERS@
+
lcd4linux_SOURCES = lcd4linux.c debug.c debug.h cfg.c cfg.h lock.c lock.h pid.c pid.h parser.c parser.h processor.c processor.h system.c system.h isdn.c isdn.h mail.c mail.h seti.c seti.h battery.c battery.h dvb.c dvb.h filter.c filter.h udelay.c udelay.h display.c display.h pixmap.c pixmap.h bar.c bar.h icon.c icon.h fontmap.c fontmap.h exec.c exec.h mail2.c socket.c socket.h
EXTRA_lcd4linux_SOURCES = parport.c parport.h BeckmannEgle.c Crystalfontz.c Cwlinux.c HD44780.c M50530.c T6963.c USBLCD.c MatrixOrbital.c PalmPilot.c Raster.c SIN.c Skeleton.c XWindow.c Text.c
-liblcd4linux_a_SOURCES = parport.c parport.h BeckmannEgle.c Crystalfontz.c Cwlinux.c HD44780.c M50530.c T6963.c USBLCD.c MatrixOrbital.c PalmPilot.c Raster.c SIN.c Skeleton.c XWindow.c Text.c
+liblcd4linux_a_SOURCES = display.c display.h debug.c debug.h cfg.c cfg.h lock.c lock.h pixmap.c pixmap.h bar.c bar.h icon.c icon.h fontmap.c fontmap.h parport.c parport.h udelay.c udelay.h
EXTRA_DIST = lcd4linux.conf.sample lcd4kde.conf lcd4linux.kdelnk lcd4linux.xpm lcd4linux.lsm curses.m4 AUTHORS CREDITS FAQ NEWS TODO README README.Drivers README.KDE
X_LIBS = @X_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
-liblcd4linux_a_LIBADD =
-liblcd4linux_a_OBJECTS = parport.o BeckmannEgle.o Crystalfontz.o \
-Cwlinux.o HD44780.o M50530.o T6963.o USBLCD.o MatrixOrbital.o \
-PalmPilot.o Raster.o SIN.o Skeleton.o XWindow.o Text.o
+liblcd4linux_a_OBJECTS = display.o debug.o cfg.o lock.o pixmap.o bar.o \
+icon.o fontmap.o parport.o udelay.o
AR = ar
PROGRAMS = $(bin_PROGRAMS)
-/* $Id: MatrixOrbital.c,v 1.33 2003/08/24 04:31:56 reinelt Exp $
+/* $Id: MatrixOrbital.c,v 1.34 2003/08/24 05:17:58 reinelt Exp $
*
* driver for Matrix Orbital serial display modules
*
*
*
* $Log: MatrixOrbital.c,v $
+ * Revision 1.34 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.33 2003/08/24 04:31:56 reinelt
* icon.c icon.h added
*
port=cfg_get ("Port",NULL);
if (port==NULL || *port=='\0') {
- error ("MatrixOrbital: no 'Port' entry in %s", cfg_file());
+ error ("MatrixOrbital: no 'Port' entry in %s", cfg_source());
return -1;
}
Port=strdup(port);
Speed=B19200;
break;
default:
- error ("MatrixOrbital: unsupported speed '%s' in %s", s, cfg_file());
+ error ("MatrixOrbital: unsupported speed '%s' in %s", s, cfg_source());
return -1;
}
Icons=strtol(s, &e, 0);
if (*e!='\0' || Icons<0 || Icons>8) {
debug ("Icons=%d e=<%s>", Icons, e);
- error ("MatrixOrbital: bad Icons '%s' in %s, must be between 0 and 8", s, cfg_file());
+ error ("MatrixOrbital: bad Icons '%s' in %s, must be between 0 and 8", s, cfg_source());
return -1;
}
if (Icons>0) {
-/* $Id: PalmPilot.c,v 1.10 2003/08/17 12:11:58 reinelt Exp $
+/* $Id: PalmPilot.c,v 1.11 2003/08/24 05:17:58 reinelt Exp $
*
* driver for 3Com Palm Pilot
*
*
*
* $Log: PalmPilot.c,v $
+ * Revision 1.11 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.10 2003/08/17 12:11:58 reinelt
* framework for icons prepared
*
port=cfg_get ("Port",NULL);
if (port==NULL || *port=='\0') {
- error ("PalmPilot: no 'Port' entry in %s", cfg_file());
+ error ("PalmPilot: no 'Port' entry in %s", cfg_source());
return -1;
}
Port=strdup(port);
Speed=B19200;
break;
default:
- error ("PalmPilot: unsupported speed '%s' in %s", speed, cfg_file());
+ error ("PalmPilot: unsupported speed '%s' in %s", speed, cfg_source());
return -1;
}
-/* $Id: Raster.c,v 1.24 2003/08/17 12:11:58 reinelt Exp $
+/* $Id: Raster.c,v 1.25 2003/08/24 05:17:58 reinelt Exp $
*
* driver for raster formats
*
*
*
* $Log: Raster.c,v $
+ * Revision 1.25 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.24 2003/08/17 12:11:58 reinelt
* framework for icons prepared
*
static unsigned int halfground=0;
static unsigned int background=0;
-extern char* output;
-
#ifdef WITH_PPM
int PPM_flush (void)
-/* $Id: SIN.c,v 1.11 2003/08/17 12:11:58 reinelt Exp $
+/* $Id: SIN.c,v 1.12 2003/08/24 05:17:58 reinelt Exp $
*
* driver for SIN router displays
*
*
*
* $Log: SIN.c,v $
+ * Revision 1.12 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.11 2003/08/17 12:11:58 reinelt
* framework for icons prepared
*
port=cfg_get ("Port",NULL);
if (port==NULL || *port=='\0') {
- error ("SIN: no 'Port' entry in %s", cfg_file());
+ error ("SIN: no 'Port' entry in %s", cfg_source());
return -1;
}
Port=strdup(port);
-/* $Id: Text.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
+/* $Id: Text.c,v 1.10 2003/08/24 05:17:58 reinelt Exp $
*
* pure ncurses based text driver
*
*
*
* $Log: Text.c,v $
+ * Revision 1.10 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.9 2003/07/24 04:48:09 reinelt
* 'soft clear' needed for virtual rows
*
#include "display.h"
#include "bar.h"
-extern int foreground;
+extern int running_foreground;
static LCD Lcd;
static WINDOW *w, *err_win;
int cols=-1, rows=-1;
int scr_cols, scr_rows;
char *s;
- if (!foreground) {
+ if (!running_foreground) {
error("Text: you want me to display on /dev/null: sorry, I can't");
error("Text: Maybe you want me to run in foreground? Try '-F'");
return -1;
-/* $Id: USBLCD.c,v 1.11 2003/08/16 07:31:35 reinelt Exp $
+/* $Id: USBLCD.c,v 1.12 2003/08/24 05:17:58 reinelt Exp $
*
* Driver for USBLCD ( see http://www.usblcd.de )
* This Driver is based on HD44780.c
*
*
* $Log: USBLCD.c,v $
+ * Revision 1.12 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.11 2003/08/16 07:31:35 reinelt
* double buffering in all drivers
*
Port=NULL;
}
if ((port=cfg_get("Port",NULL))==NULL || *port=='\0') {
- error ("USBLCD: no 'Port' entry in %s", cfg_file());
+ error ("USBLCD: no 'Port' entry in %s", cfg_source());
return -1;
}
if (port[0]=='/') {
s=cfg_get("Size",NULL);
if (s==NULL || *s=='\0') {
- error ("USBLCD: no 'Size' entry in %s", cfg_file());
+ error ("USBLCD: no 'Size' entry in %s", cfg_source());
return -1;
}
if (sscanf(s,"%dx%d",&cols,&rows)!=2 || rows<1 || cols<1) {
-/* $Id: cfg.c,v 1.14 2003/08/14 03:47:40 reinelt Exp $
+/* $Id: cfg.c,v 1.15 2003/08/24 05:17:58 reinelt Exp $
*
* config file stuff
*
*
*
* $Log: cfg.c,v $
+ * Revision 1.15 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.14 2003/08/14 03:47:40 reinelt
* remove PID file if driver initialisation fails
*
/*
* exported functions:
*
+ * cfg_init (source)
+ * read configuration from source
+ * returns 0 if successful
+ * returns -1 in case of an error
+ *
+ * cfg_source (void)
+ * returns the file the configuration was read from
+ *
* cfg_cmd (arg)
* allows us to overwrite entries in the
* config-file from the command line.
* cfg_cmd can be called _before_ cfg_read()
* returns 0 if ok, -1 if arg cannot be parsed
*
- * cfg_set (key, value)
- * pre-set key's value
- * should be called before cfg_read()
- * so we can specify 'default values'
- *
* cfg_get (key, defval)
* return the a value for a given key
* or <defval> if key does not exist
*
- * cfg_read (file)
- * read configuration from file
- * returns 0 if successful
- * returns -1 in case of an error
- *
- * cfg_file (void)
- * returns the file the configuration was read from
- *
*/
Config[i].lock=lock;
}
-int cfg_cmd (char *arg)
+int l4l_cfg_cmd (char *arg)
{
char *key, *val;
char buffer[256];
return 0;
}
-void cfg_set (char *key, char *val)
-{
- cfg_add (key, val, 0);
-}
-
-char *cfg_get (char *key, char *defval)
+char *l4l_cfg_get (char *key, char *defval)
{
int i;
return defval;
}
-static int check_cfg_file(char *file)
+static int check_cfg_source(char *file)
{
/* as passwords and commands are stored in the config file,
* we will check that:
return error;
}
-int cfg_read (char *file)
+int l4l_cfg_init (char *file)
{
FILE *stream;
char buffer[256];
char *line, *p, *s;
- if (check_cfg_file(file) == -1) {
+ if (check_cfg_source(file) == -1) {
error("config file '%s' is insecure, aborting", file);
return -1;
}
*s='\0';
p++;
}
- cfg_set (line, p);
+ cfg_add (line, p, 0);
}
fclose (stream);
return 0;
}
-char *cfg_file (void)
+char *l4l_cfg_source (void)
{
if (Config_File)
return Config_File;
else
return "";
}
+
+
+int (*cfg_init) (char *source) = l4l_cfg_init;
+char *(*cfg_source) (void) = l4l_cfg_source;
+int (*cfg_cmd) (char *arg) = l4l_cfg_cmd;
+char *(*cfg_get) (char *key, char *defval) = l4l_cfg_get;
+
-/* $Id: cfg.h,v 1.3 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: cfg.h,v 1.4 2003/08/24 05:17:58 reinelt Exp $
*
* config file stuff
*
*
*
* $Log: cfg.h,v $
+ * Revision 1.4 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.3 2003/02/22 07:53:10 reinelt
* cfg_get(key,defval)
*
#ifndef _CFG_H_
#define _CFG_H_
-int cfg_cmd (char *arg);
-void cfg_set (char *key, char *value);
-char *cfg_get (char *key, char *defval);
-int cfg_read (char *file);
-char *cfg_file (void);
+extern int (*cfg_init) (char *source);
+extern char *(*cfg_source) (void);
+extern int (*cfg_cmd) (char *arg);
+extern char *(*cfg_get) (char *key, char *defval);
+
+int l4l_cfg_init (char *file);
+char *l4l_cfg_source (void);
+int l4l_cfg_cmd (char *arg);
+char *l4l_cfg_get (char *key, char *defval);
#endif
-/* $Id: debug.c,v 1.4 2003/08/08 06:58:06 reinelt Exp $
+/* $Id: debug.c,v 1.5 2003/08/24 05:17:58 reinelt Exp $
*
* debug() and error() functions
*
*
*
* $Log: debug.c,v $
+ * Revision 1.5 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.4 2003/08/08 06:58:06 reinelt
* improved forking
*
#include "debug.h"
+int running_foreground = 0;
+int running_background = 0;
+
+int verbose_level = 0;
+
void message (int level, const char *format, ...)
{
va_list ap;
char buffer[256];
static int log_open=0;
- extern int debugging;
- extern int foreground;
- extern int background;
- if (level>debugging) return;
+ if (level>verbose_level) return;
va_start(ap, format);
(void) vsnprintf(buffer, sizeof(buffer), format, ap);
va_end(ap);
- if (!background) {
+ if (!running_background) {
#ifdef WITH_TEXT
extern int curs_err(char *);
if (!curs_err(buffer))
fprintf (level?stdout:stderr, "%s\n", buffer);
}
- if (foreground)
+ if (running_foreground)
return;
if (!log_open) {
-/* $Id: debug.h,v 1.4 2001/09/12 05:37:22 reinelt Exp $
+/* $Id: debug.h,v 1.5 2003/08/24 05:17:58 reinelt Exp $
*
* debug messages
*
*
*
* $Log: debug.h,v $
+ * Revision 1.5 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.4 2001/09/12 05:37:22 reinelt
*
* fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's
#ifndef _DEBUG_H_
#define _DEBUG_H_
+extern int running_foreground;
+extern int running_background;
+extern int verbose_level;
+
void message (int level, const char *format, ...);
#define debug(args...) message (2, __FILE__ ": " args)
-/* $Id: display.c,v 1.38 2003/08/24 04:31:56 reinelt Exp $
+/* $Id: display.c,v 1.39 2003/08/24 05:17:58 reinelt Exp $
*
* framework for device drivers
*
*
*
* $Log: display.c,v $
+ * Revision 1.39 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.38 2003/08/24 04:31:56 reinelt
* icon.c icon.h added
*
extern LCD XWindow[];
extern LCD Text[];
+// output file for Raster driver
+// has to be defined here because it's referenced
+// even if the raster driver is not included!
+char *output=NULL;
+
FAMILY Driver[] = {
#ifdef WITH_BECKMANNEGLE
{ "Beckmann+Egle", BeckmannEgle },
-/* $Id: display.h,v 1.18 2003/08/17 16:37:39 reinelt Exp $
+/* $Id: display.h,v 1.19 2003/08/24 05:17:58 reinelt Exp $
*
* framework for device drivers
*
*
*
* $Log: display.h,v $
+ * Revision 1.19 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.18 2003/08/17 16:37:39 reinelt
* more icon framework
*
LCD *Model;
} FAMILY;
+
+// output file for Raster driver
+// has to be defined here because it's referenced
+// even if the raster driver is not included!
+extern char *output;
+
int lcd_list (void);
int lcd_init (char *driver);
int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars, int *icons, int *gpos);
-/* $Id: icon.c,v 1.1 2003/08/24 04:31:56 reinelt Exp $
+/* $Id: icon.c,v 1.2 2003/08/24 05:17:58 reinelt Exp $
*
* generic icon and heartbeat handling
*
*
*
* $Log: icon.c,v $
+ * Revision 1.2 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.1 2003/08/24 04:31:56 reinelt
* icon.c icon.h added
*
#include <stdlib.h>
+#include <stdio.h>
-#include "icon.h"
#include "debug.h"
+#include "cfg.h"
+#include "icon.h"
static int ROWS=0;
static int *Screen;
+#if 0
static int icon_get_bitmap (int num)
{
int row, col;
val=cfg_get(key);
}
}
+#endif
int icon_init (int rows, int cols, int xres, int yres, int icons)
-/* $Id: lcd4linux.c,v 1.43 2003/08/17 16:37:39 reinelt Exp $
+/* $Id: lcd4linux.c,v 1.44 2003/08/24 05:17:58 reinelt Exp $
*
* LCD4Linux
*
*
*
* $Log: lcd4linux.c,v $
+ * Revision 1.44 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.43 2003/08/17 16:37:39 reinelt
* more icon framework
*
char *release="LCD4Linux " VERSION " (c) 2003 Michael Reinelt <reinelt@eunet.at>";
char **my_argv;
-char *output=NULL;
int got_signal=0;
-int debugging=0;
-int foreground=0;
-int background=0;
int tick, tack;
+extern char* output;
+
+
static void usage(void)
{
printf ("%s\n", release);
}
my_argv[c]=NULL;
+ running_foreground=0;
+ running_background=0;
+
#ifdef USE_OLD_UDELAY
while ((c=getopt (argc, argv, "c:dFf:hlo:qv"))!=EOF) {
#else
exit(1);
#endif
case 'F':
- foreground++;
+ running_foreground++;
break;
case 'f':
cfg=optarg;
quiet++;
break;
case 'v':
- debugging++;
+ verbose_level++;
break;
default:
exit(2);
}
info ("Version " VERSION " starting");
- if (!foreground && (my_argv[0]==NULL || my_argv[0][0]!='/')) {
+ if (!running_foreground && (my_argv[0]==NULL || my_argv[0][0]!='/')) {
info ("invoked without full path; restart may not work!");
}
- // set default values
- cfg_set ("row1", "*** %o %v ***");
- cfg_set ("row2", "%p CPU %r MB RAM");
- cfg_set ("row3", "Busy %cu%% $r10cu");
- cfg_set ("row4", "Load %l1%L$r10l1");
-
- if (cfg_read (cfg)==-1)
+ if (cfg_init (cfg)==-1)
exit (1);
driver=cfg_get("display",NULL);
if (driver==NULL || *driver=='\0') {
- error ("missing 'display' entry in %s!", cfg_file());
+ error ("missing 'display' entry in %s!", cfg_source());
exit (1);
}
- if (!foreground) {
+ if (!running_foreground) {
pid_t i;
int fd;
debug ("going background...");
}
// now we are a daemon
- background=1;
+ running_background=1;
}
debug ("initializing driver %s", driver);
-/* $Id: parport.c,v 1.6 2003/08/22 03:45:09 reinelt Exp $
+/* $Id: parport.c,v 1.7 2003/08/24 05:17:58 reinelt Exp $
*
* generic parallel port handling
*
*
*
* $Log: parport.c,v $
+ * Revision 1.7 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.6 2003/08/22 03:45:09 reinelt
* bug in parallel port code fixed, more icons stuff
*
#ifdef USE_OLD_UDELAY
s=cfg_get ("Delay",NULL);
if (s==NULL || *s=='\0') {
- error ("parport: no 'Delay' entry in %s", cfg_file());
+ error ("parport: no 'Delay' entry in %s", cfg_source());
return -1;
}
if ((loops_per_usec=strtol(s, &e, 0))==0 || *e!='\0') {
- error ("parport: bad delay '%s' in %s", s, cfg_file());
+ error ("parport: bad delay '%s' in %s", s, cfg_source());
return -1;
}
#else
s=cfg_get ("Port",NULL);
if (s==NULL || *s=='\0') {
- error ("parport: no 'Port' entry in %s", cfg_file());
+ error ("parport: no 'Port' entry in %s", cfg_source());
return -1;
}
PPdev=NULL;
Port=0;
PPdev=s;
#else
- error ("parport: bad Port '%s' in %s", s, cfg_file());
+ error ("parport: bad Port '%s' in %s", s, cfg_source());
return -1;
#endif
}
-/* $Id: processor.c,v 1.36 2003/08/17 16:37:39 reinelt Exp $
+/* $Id: processor.c,v 1.37 2003/08/24 05:17:58 reinelt Exp $
*
* main data processing
*
*
*
* $Log: processor.c,v $
+ * Revision 1.37 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.36 2003/08/17 16:37:39 reinelt
* more icon framework
*
lines=atoi(cfg_get("Rows","1"));
if (lines<1) {
- error ("bad 'Rows' entry in %s, ignoring.", cfg_file());
+ error ("bad 'Rows' entry in %s, ignoring.", cfg_source());
lines=1;
}
if (lines>ROWS) {
if (lines>rows) {
scroll=atoi(cfg_get("Scroll","1"));
if (scroll<1) {
- error ("bad 'Scroll' entry in %s, ignoring and using '1'", cfg_file());
+ error ("bad 'Scroll' entry in %s, ignoring and using '1'", cfg_source());
scroll=1;
}
if (scroll>rows) {
- error ("'Scroll' entry in %s is %d, > %d display rows.", cfg_file(), scroll, rows);
+ error ("'Scroll' entry in %s is %d, > %d display rows.", cfg_source(), scroll, rows);
error ("This may lead to unexpected results!");
}
turn=atoi(cfg_get("Turn","1000"));
if (turn<1) {
- error ("bad 'Turn' entry in %s, ignoring and using '1000'", cfg_file());
+ error ("bad 'Turn' entry in %s, ignoring and using '1000'", cfg_source());
turn=1;
}
debug ("Virtual: %d rows, scroll %d lines every %d msec", lines, scroll, turn);
-/* $Id: seti.c,v 1.8 2003/06/13 05:11:11 reinelt Exp $
+/* $Id: seti.c,v 1.9 2003/08/24 05:17:58 reinelt Exp $
*
* seti@home specific functions
*
*
*
* $Log: seti.c,v $
+ * Revision 1.9 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.8 2003/06/13 05:11:11 reinelt
* error message cosmetics
*
if (fd==-2) {
char *dir=cfg_get("SetiDir",NULL);
if (dir==NULL || *dir=='\0') {
- error ("no 'SetiDir' entry in %s!\n", cfg_file());
+ error ("no 'SetiDir' entry in %s!\n", cfg_source());
fd=-1;
return -1;
}
if (strlen(dir)>sizeof(fn)-sizeof(STATEFILE)-2) {
- error ("entry 'SetiDir' too long in %s!\n", cfg_file());
+ error ("entry 'SetiDir' too long in %s!\n", cfg_source());
fd=-1;
return -1;
}
-/* $Id: system.c,v 1.28 2003/06/26 05:31:16 reinelt Exp $
+/* $Id: system.c,v 1.29 2003/08/24 05:17:58 reinelt Exp $
*
* system status retreivement
*
*
*
* $Log: system.c,v $
+ * Revision 1.29 2003/08/24 05:17:58 reinelt
+ * liblcd4linux patch from Patrick Schemitz
+ *
* Revision 1.28 2003/06/26 05:31:16 reinelt
* bug in /proc/net/dev parsing fixed
*
snprintf(buffer, 32, "Sensor%d", index);
sensor[index]=cfg_get(buffer, NULL);
if (sensor[index]==NULL || *sensor[index]=='\0') {
- error ("no entry for '%s' in %s", buffer, cfg_file());
+ error ("no entry for '%s' in %s", buffer, cfg_source());
fd[index]=-1;
return -1;
}