aboutsummaryrefslogtreecommitdiffstats
path: root/imon.h
blob: 8e63ca0e68b745d208ce07e0f2c71b4f59777b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* $Id: imon.h,v 1.2 2004/01/06 22:33:14 reinelt Exp $
 *
 * imond/telmond data processing
 *
 * Copyright 2003 Nico Wallmeier <nico.wallmeier@post.rwth-aachen.de>
 *
 * This file is part of LCD4Linux.
 *
 * 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.
 *
 *
 * $Log: imon.h,v $
 * Revision 1.2  2004/01/06 22:33:14  reinelt
 * Copyright statements cleaned up
 *
 * Revision 1.1  2003/10/12 06:08:28  nicowallmeier
 * imond/telmond support
 *
 */

#ifndef _IMON_H_
#define _IMON_H_

#define CHANNELS 9

struct imonchannel {
  int rate_in, rate_out, max_in, max_out; 
  char status[8], phone[17], ip[16], otime[11], charge[10], dev[6];
};

struct imon { 
  int cpu; 
  char date[11], time[9];
};

struct telmon { 
  char number[256], msn[256], time[9], date[11];
};

int Imon(struct imon *i, int cpu, int datetime);
int ImonCh(int index, struct imonchannel *ch, int token_usage[]);
char* ImonVer();

int Telmon(struct telmon *t);

#endif
span class="cp">#include "property.h" #include "timer.h" #include "widget.h" #include "widget_keypad.h" #ifdef WITH_DMALLOC #include <dmalloc.h> #endif int widget_keypad_draw(WIDGET * Self) { WIDGET_KEYPAD *keypad = Self->data; /* evaluate properties */ property_eval(&keypad->expression); return P2N(&keypad->expression); } int widget_keypad_init(WIDGET * Self) { char *section; char *c; WIDGET_KEYPAD *keypad; /* prepare config section */ /* strlen("Widget:")=7 */ section = malloc(strlen(Self->name) + 8); strcpy(section, "Widget:"); strcat(section, Self->name); keypad = malloc(sizeof(WIDGET_KEYPAD)); memset(keypad, 0, sizeof(WIDGET_KEYPAD)); /* load properties */ property_load(section, "expression", NULL, &keypad->expression); /* state: pressed (default), released */ c = cfg_get(section, "state", "pressed"); if (!strcasecmp(c, "released")) keypad->key = WIDGET_KEY_RELEASED; else keypad->key = WIDGET_KEY_PRESSED; /* position: confirm (default), up, down, left, right, cancel */ c = cfg_get(section, "position", "confirm"); if (!strcasecmp(c, "up")) keypad->key += WIDGET_KEY_UP; else if (!strcasecmp(c, "down")) keypad->key += WIDGET_KEY_DOWN; else if (!strcasecmp(c, "left")) keypad->key += WIDGET_KEY_LEFT; else if (!strcasecmp(c, "right")) keypad->key += WIDGET_KEY_RIGHT; else if (!strcasecmp(c, "cancel")) keypad->key += WIDGET_KEY_CANCEL; else keypad->key += WIDGET_KEY_CONFIRM; free(section); Self->data = keypad; Self->x2 = NOCOORD; Self->y2 = NOCOORD; return 0; } int widget_keypad_find(WIDGET * Self, void *needle) { WIDGET_KEYPAD *keypad; KEYPADKEY key = *(KEYPADKEY *) needle; if (Self && Self->data) { keypad = Self->data; if (keypad->key == key) return 0; } return -1; } int widget_keypad_quit(WIDGET * Self) { if (Self && Self->data) { WIDGET_KEYPAD *keypad = Self->data; property_free(&keypad->expression); free(Self->data); Self->data = NULL; } return 0; } WIDGET_CLASS Widget_Keypad = { .name = "keypad", .type = WIDGET_TYPE_KEYPAD, .init = widget_keypad_init, .draw = widget_keypad_draw, .find = widget_keypad_find, .quit = widget_keypad_quit, };