[lcd4linux @ 2004-01-11 09:26:15 by reinelt]

layout starts to exist...

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@305 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
This commit is contained in:
reinelt
2004-01-11 09:26:15 +00:00
parent a390d83869
commit e2854bdb20
4 changed files with 67 additions and 19 deletions
+19 -4
View File
@@ -1,4 +1,4 @@
/* $Id: cfg.c,v 1.24 2004/01/10 20:22:33 reinelt Exp $^
/* $Id: cfg.c,v 1.25 2004/01/11 09:26:15 reinelt Exp $^
*
* config file stuff
*
@@ -23,6 +23,9 @@
*
*
* $Log: cfg.c,v $
* Revision 1.25 2004/01/11 09:26:15 reinelt
* layout starts to exist...
*
* Revision 1.24 2004/01/10 20:22:33 reinelt
* added new function 'cfg_list()' (not finished yet)
* added layout.c (will replace processor.c someday)
@@ -150,6 +153,11 @@
* cfg_cmd can be called _before_ cfg_read()
* returns 0 if ok, -1 if arg cannot be parsed
*
* cfg_list (section)
* returns a list of all keys in the specified section
* This list was allocated be cfg_list() and must be
* freed by the caller!
*
* cfg_get (section, key, defval)
* return the a value for a given key in a given section
* or <defval> if key does not exist
@@ -323,7 +331,7 @@ int l4l_cfg_cmd (char *arg)
char *l4l_cfg_list (char *section)
{
int i, len;
char *key;
char *key, *list;
// calculate key length
len=strlen(section)+1;
@@ -333,14 +341,21 @@ char *l4l_cfg_list (char *section)
strcpy (key, section);
strcat (key, ".");
// start with empty string
list=malloc(1);
*list='\0';
// search matching entries
for (i=0; i<nConfig; i++) {
if (strncasecmp(Config[i].key, key, len)==0) {
debug ("found list: %s", Config[i].key);
list=realloc(list, strlen(list)+strlen(Config[i].key)-len+2);
strcat (list, "|");
strcat (list, Config[i].key+len);
}
}
return NULL;
free (key);
return list;
}
+7 -4
View File
@@ -1,4 +1,4 @@
/* $Id: drv_MatrixOrbital.c,v 1.4 2004/01/10 20:22:33 reinelt Exp $
/* $Id: drv_MatrixOrbital.c,v 1.5 2004/01/11 09:26:15 reinelt Exp $
*
* new style driver for Matrix Orbital serial display modules
*
@@ -23,6 +23,9 @@
*
*
* $Log: drv_MatrixOrbital.c,v $
* Revision 1.5 2004/01/11 09:26:15 reinelt
* layout starts to exist...
*
* Revision 1.4 2004/01/10 20:22:33 reinelt
* added new function 'cfg_list()' (not finished yet)
* added layout.c (will replace processor.c someday)
@@ -381,7 +384,7 @@ static int drv_MO_start (char *section)
for (i=0; Models[i].type!=0xff; i++) {
if (Models[i].type == (int)*buffer) break;
}
info ("MatrixOrbital: Display identifies itself as a '%s' (type 0x%02x)",
info ("MatrixOrbital: display identifies itself as a '%s' (type 0x%02x)",
Models[i].name, Models[i].type);
// auto-dedection
@@ -398,13 +401,13 @@ static int drv_MO_start (char *section)
drv_MO_write ("\3765", 2);
usleep(100000);
drv_MO_read (buffer, 2);
info ("MatrixOrbital: Display reports Serial Number 0x%x", *(short*)buffer);
info ("MatrixOrbital: display reports serial number 0x%x", *(short*)buffer);
// read version number
drv_MO_write ("\3766", 2);
usleep(100000);
drv_MO_read (buffer, 1);
info ("MatrixOrbital: Display reports Firmware Version 0x%x", *buffer);
info ("MatrixOrbital: display reports firmware version 0x%x", *buffer);
// initialize global variables
+35 -8
View File
@@ -1,4 +1,4 @@
/* $Id: layout.c,v 1.1 2004/01/10 20:22:33 reinelt Exp $
/* $Id: layout.c,v 1.2 2004/01/11 09:26:15 reinelt Exp $
*
* new layouter framework
*
@@ -23,6 +23,9 @@
*
*
* $Log: layout.c,v $
* Revision 1.2 2004/01/11 09:26:15 reinelt
* layout starts to exist...
*
* Revision 1.1 2004/01/10 20:22:33 reinelt
* added new function 'cfg_list()' (not finished yet)
* added layout.c (will replace processor.c someday)
@@ -44,31 +47,55 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include "debug.h"
#include "cfg.h"
#include "layout.h"
#define MAX_ROWS 32
#define MAX_COLS 80
void layout_addItem (char *name, int row, int col)
{
debug ("layout_addItem(%s, %d, %d)", name, row, col);
}
int layout_init (char *layout)
{
char *section, *widget;
char buffer[15];
char *section;
char *list;
char *key;
char *widget;
int row, col;
char buffer[32];
info ("initializing layout '%s'", layout);
// prepare config section
// strlen("Layout:")=7, +1=8
// strlen("Layout:")=7
section=malloc(strlen(layout)+8);
strcpy(section, "Layout:");
strcat(section, layout);
cfg_list(section);
list=cfg_list(section);
key=strtok(list, "|");
while (key!=NULL) {
int i, n;
char *k;
// map to lower char for scanf()
for (k=key; *k!='\0'; k++) *k=tolower(*k);
i=sscanf (key, "row%d.col%d%n", &row, &col, &n);
if (i==2 && key[n]=='\0') {
widget=cfg_get(section, key, NULL);
if (widget!=NULL && *widget!='\0') {
layout_addItem (widget, row, col);
}
}
key=strtok(NULL, "|");
}
free (list);
return 0;
}
+6 -3
View File
@@ -1,4 +1,4 @@
/* $Id: widget.c,v 1.4 2004/01/10 20:22:33 reinelt Exp $
/* $Id: widget.c,v 1.5 2004/01/11 09:26:15 reinelt Exp $
*
* generic widget handling
*
@@ -21,6 +21,9 @@
*
*
* $Log: widget.c,v $
* Revision 1.5 2004/01/11 09:26:15 reinelt
* layout starts to exist...
*
* Revision 1.4 2004/01/10 20:22:33 reinelt
* added new function 'cfg_list()' (not finished yet)
* added layout.c (will replace processor.c someday)
@@ -60,8 +63,8 @@
static WIDGET_CLASS *Classes=NULL;
static int nClasses=0;
static WIDGET *Widgets=NULL;
static int nWidgets=0;
static WIDGET *Widgets=NULL;
static int nWidgets=0;
int widget_register (WIDGET_CLASS *widget)