diff --git a/clients/lcdexec/menu.c b/clients/lcdexec/menu.c index e883702..e17cf44 100644 --- a/clients/lcdexec/menu.c +++ b/clients/lcdexec/menu.c @@ -16,7 +16,6 @@ #include #include -#include "shared/str.h" #include "shared/report.h" #include "shared/configfile.h" #include "shared/sockets.h" diff --git a/clients/lcdproc/batt.c b/clients/lcdproc/batt.c index f04e077..953bcfe 100644 --- a/clients/lcdproc/batt.c +++ b/clients/lcdproc/batt.c @@ -1,3 +1,14 @@ +/** \file clients/lcdproc/batt.c + * Implements the 'battery' screen showing the APM battery status. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include @@ -12,13 +23,18 @@ #include "batt.h" #include "machine.h" - +/** Map status code > status text */ typedef struct { int status; const char *name; -} NameTable; - +} NameTable; +/** + * Converts a numeric AC power status into a status text. + * + * \param status Numeric status as returned by machine_get_battstat + * \return Name of the status + */ static const char * ac_status(int status) { @@ -36,8 +52,14 @@ ac_status(int status) return ac_table[i].name; return ac_table[LCDP_AC_UNKNOWN].name; -} +} +/** + * Converts a numeric battery status into a status text. + * + * \param status Numeric status as returned by machine_get_battstat + * \return Name of the status + */ static const char * battery_status(int status) { @@ -59,17 +81,25 @@ battery_status(int status) return batt_table[LCDP_AC_UNKNOWN].name; } - -//////////////////////////////////////////////////////////////////////// -// Battery Screen shows apm battery status... -// -// +--------------------+ +--------------------+ -// |## AC: 100%: myho #@| |## AC: 100%: myho #@| -// |AC: On | |AC, Batt: Absent | -// |Batt: Absent | +--------------------+ -// |E------------------F| -// +--------------------+ -// +/** + * Battery Screen shows apm battery status... + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## AC: 100%: myho #@| |## AC: 100%: myho #@| + * |AC: On | |AC, Batt: Absent | + * |Batt: Absent | +--------------------+ + * |E------------------F| + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int battery_screen(int rep, int display, int *flags_ptr) { @@ -95,8 +125,6 @@ battery_screen(int rep, int display, int *flags_ptr) sock_send_string(sock, "widget_set B gauge 2 4 0\n"); } } - // Only run once every 16 frames... - //if (rep & 0x0F) return 0; machine_get_battstat(&acstat, &battstat, &percent); @@ -117,7 +145,7 @@ battery_screen(int rep, int display, int *flags_ptr) if (percent > 0) sock_printf(sock, "widget_set B gauge 2 4 %d\n", (percent * gauge_wid * lcd_cellwid) / 100); - } + } else { // two-line version of the screen sock_printf(sock, "widget_set B one 1 2 {%sBatt: %s}\n", (acstat == LCDP_AC_ON) ? "AC, " : "", diff --git a/clients/lcdproc/chrono.c b/clients/lcdproc/chrono.c index 4582012..6402adc 100644 --- a/clients/lcdproc/chrono.c +++ b/clients/lcdproc/chrono.c @@ -1,3 +1,15 @@ +/** \file clients/lcdproc/chrono.c + * Implements the 'OldTime', 'TimeDate', 'Uptime', 'MiniClock', and 'BigClock' + * screens. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include @@ -37,16 +49,25 @@ static char *tickTime(char *time, int heartbeat); -////////////////////////////////////////////////////////////////////// -// TimeDate Screen displays current time and date, uptime, OS ver... -// -//+--------------------+ +--------------------+ -//|## Linux 2.6.11 ###@| |### TIME: myhost ##@| -//|Up xxx days hh:mm:ss| |17.05.2005 11:32:57a| -//| Wed May 17, 1998 | +--------------------+ -//|11:32:57a 100% idle| -//+--------------------+ -// +/** + * TimeDate Screen displays current time and date, uptime, OS ver... + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## Linux 2.6.11 ###@| |### TIME: myhost ##@| + * |Up xxx days hh:mm:ss| |17.05.2005 11:32:57a| + * | Wed May 17, 1998 | +--------------------+ + * |11:32:57a 100% idle| + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int time_screen(int rep, int display, int *flags_ptr) { @@ -137,18 +158,28 @@ time_screen(int rep, int display, int *flags_ptr) } return 0; -} // End time_screen() +} // End time_screen() -////////////////////////////////////////////////////////////////////// -// OldTime Screen displays current time and date... -// -//+--------------------+ +--------------------+ -//|## DATE & TIME ####@| |### TIME: myhost ##@| -//| myhost | |2005-05-17 11:32:57a| -//|11:32:75a Wednesday,| +--------------------+ -//| May 17, 2005 | -//+--------------------+ -// + +/** + * OldTime Screen displays current time and date... + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## DATE & TIME ####@| |### TIME: myhost ##@| + * | myhost | |2005-05-17 11:32:57a| + * |11:32:75a Wednesday,| +--------------------+ + * | May 17, 2005 | + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int clock_screen(int rep, int display, int *flags_ptr) { @@ -217,18 +248,28 @@ clock_screen(int rep, int display, int *flags_ptr) } return 0; -} // End clock_screen() +} // End clock_screen() -//////////////////////////////////////////////////////////////////// -// Uptime Screen shows info about system uptime and OS version -// -//+--------------------+ +--------------------+ -//|## SYSTEM UPTIME ##@| |# Linux 2.6.11: my#@| -//| myhost | | xxx days hh:mm:ss | -//| xxx days hh:mm:ss | +--------------------+ -//| Linux 2.6.11 | -//+--------------------+ -// + +/** + * Uptime Screen shows info about system uptime and OS version + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## SYSTEM UPTIME ##@| |# Linux 2.6.11: my#@| + * | myhost | | xxx days hh:mm:ss | + * | xxx days hh:mm:ss | +--------------------+ + * | Linux 2.6.11 | + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int uptime_screen(int rep, int display, int *flags_ptr) { @@ -286,21 +327,31 @@ uptime_screen(int rep, int display, int *flags_ptr) sock_printf(sock, "widget_set U two %d 3 {%s}\n", xoffs, tmp); else sock_printf(sock, "widget_set U one %d 2 {%s}\n", xoffs, tmp); - } + } return 0; -} // End uptime_screen() +} // End uptime_screen() -////////////////////////////////////////////////////////////////////// -// Big Clock Screen displays current time... -// -// +--------------------+ -// | _ _ _ _ | -// | ||_ . _||_|. _| || -// | ||_|. _| |.|_ || -// | | -// +--------------------+ -// + +/** + * Big Clock Screen displays current time... + * + *\verbatim + * + * +--------------------+ + * | _ _ _ _ | + * | ||_ . _||_|. _| || + * | ||_|. _| |.|_ || + * | | + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int big_clock_screen(int rep, int display, int *flags_ptr) { @@ -314,7 +365,7 @@ big_clock_screen(int rep, int display, int *flags_ptr) int j = 0; int digits = (lcd_wid >= 20) ? 6 : 4; int xoffs = (lcd_wid + 1 - (pos[digits-1] + 2)) / 2; - + // toggle colon display heartbeat ^= 1; @@ -361,22 +412,31 @@ big_clock_screen(int rep, int display, int *flags_ptr) sock_printf(sock, "widget_set K c0 %d 11\n", xoffs + 7); if (digits > 4) sock_printf(sock, "widget_set K c1 %d 11\n", xoffs + 14); - } + } return 0; -} // End big_clock_screen() +} // End big_clock_screen() -///////////////////////////////////////////////////////////////////// -// MiniClock Screen displays the current time with hours & minutes only -// -//+--------------------+ +--------------------+ -//| | | 11:32 | -//| 11:32 | | | -//| | +--------------------+ -//| | -//+--------------------+ -// +/** + * MiniClock Screen displays the current time with hours & minutes only + * + *\verbatim + * + * +--------------------+ +--------------------+ + * | | | 11:32 | + * | 11:32 | | | + * | | +--------------------+ + * | | + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int mini_clock_screen(int rep, int display, int *flags_ptr) { @@ -412,11 +472,17 @@ mini_clock_screen(int rep, int display, int *flags_ptr) sock_printf(sock, "widget_set N one %d %d {%s}\n", xoffs, (lcd_hgt / 2), now); return 0; -} // End mini_clock_screen() +} // End mini_clock_screen() -// helper function: toggle between ':' and ' ' in time strings -static char *tickTime(char *time, int heartbeat) +/** Helper function: toggle between ':' and ' ' in time strings. + * \note The time string passed is modified directly! + * \param time String containing a formatted time value. + * \param heartbeat Even numbers to display ':', odd to display ' '. + * \return Pointer to the modfied time string. + */ +static char * +tickTime(char *time, int heartbeat) { if (time != NULL) { static char colon[] = {':', ' '}; @@ -425,7 +491,7 @@ static char *tickTime(char *time, int heartbeat) for (heartbeat %= 2; *ptr != '\0'; ptr++) { if (*ptr == colon[0]) *ptr = colon[heartbeat]; - } + } } return(time); } diff --git a/clients/lcdproc/cpu.c b/clients/lcdproc/cpu.c index 0f69b71..e91a7bb 100644 --- a/clients/lcdproc/cpu.c +++ b/clients/lcdproc/cpu.c @@ -1,3 +1,14 @@ +/** \file clients/lcdproc/cpu.c + * Implements the 'CPU' and 'CPUGraph' screens. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include @@ -9,7 +20,6 @@ #include #include "shared/sockets.h" -#include "shared/debug.h" #include "main.h" #include "mode.h" @@ -18,16 +28,25 @@ #include "util.h" -////////////////////////////////////////////////////////////////////////// -// CPU screen shows info about percentage of the CPU being used -// -// +--------------------+ +--------------------+ -// |## CPU 51.9%: myh #@| |CPU [---- ]48.1%@| -// |Usr 46.0% Nice 0.0%| |U-- S- N I--- | -// |Sys 5.9% Idle 48.1%| +--------------------+ -// |0%-------- 100%| -// +--------------------+ -// +/** + * CPU screen shows info about percentage of the CPU being used + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## CPU 51.9%: myh #@| |CPU [---- ]48.1%@| + * |Usr 46.0% Nice 0.0%| |U-- S- N I--- | + * |Sys 5.9% Idle 48.1%| +--------------------+ + * |0%-------- 100%| + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int cpu_screen(int rep, int display, int *flags_ptr) { @@ -110,7 +129,7 @@ cpu_screen(int rep, int display, int *flags_ptr) cpu[CPU_BUF_SIZE - 1][2] = 0.0; cpu[CPU_BUF_SIZE - 1][3] = 0.0; cpu[CPU_BUF_SIZE - 1][4] = 0.0; - } + } /* // Only clear on first display... @@ -178,16 +197,25 @@ cpu_screen(int rep, int display, int *flags_ptr) -////////////////////////////////////////////////////////////////////////// -// Cpu Graph Screen shows a quick-moving histogram of CPU use. -// -// +--------------------+ +--------------------+ -// |## CPU: myhost ####@| |CPU: myhos|| @| -// | || | | |||| | -// | ||| | +--------------------+ -// | |||| | -// +--------------------+ -// +/** + * Cpu Graph Screen shows a quick-moving histogram of CPU use. + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## CPU: myhost ####@| |CPU: myhos|| @| + * | || | | |||| | + * | ||| | +--------------------+ + * | |||| | + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int cpu_graph_screen(int rep, int display, int *flags_ptr) { @@ -208,7 +236,7 @@ cpu_graph_screen(int rep, int display, int *flags_ptr) sock_send_string(sock, "screen_add G\n"); sock_printf(sock, "screen_set G -name {CPU Graph: %s}\n", get_hostname()); - + if (lcd_hgt >= 4) { sock_send_string(sock, "widget_add G title title\n"); sock_printf(sock, "widget_set G title {CPU: %s}\n", get_hostname()); diff --git a/clients/lcdproc/cpu_smp.c b/clients/lcdproc/cpu_smp.c index e0a41cd..873815d 100644 --- a/clients/lcdproc/cpu_smp.c +++ b/clients/lcdproc/cpu_smp.c @@ -1,8 +1,5 @@ -/****************************************************************************** -* -* cpu_smp.c - dipslay cpu info for multi-processor machines -* Copyright (C) 2000 J Robert Ray -* Copyright (C) 2006,7 Peter Marschall +/** \file clients/lcdproc/cpu_smp.c +* Display cpu info for multi-processor machines. * * Adapted from cpu.c. * @@ -16,10 +13,13 @@ * If the number of lines used to display the bar graphs for the CPUs is smaller * than the LCD's height, a title line is introduced, so that the screen looks * similar to other lcdproc screens. -* In all other cases (i.e. #CPUs == LCD height or #CPUs >= 2 * LCD height), +* In all other cases (i.e. \#CPUs == LCD height or \#CPUs >= 2 * LCD height), * the title is left out to display as many CPUs graphs as possible. -* -* --- +*/ + +/*- +* Copyright (C) 2000 J Robert Ray +* Copyright (C) 2006,7 Peter Marschall * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -34,8 +34,7 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -* -*******************************************************************************/ +*/ #include #include @@ -45,7 +44,6 @@ #include #include "shared/sockets.h" -#include "shared/debug.h" #include "main.h" #include "mode.h" @@ -53,9 +51,14 @@ #include "cpu_smp.h" -////////////////////////////////////////////////////////////////////////// -// CPU screen shows info about percentage of the CPU being used -// +/** + * CPU screen shows info about percentage of the CPU being used + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int cpu_smp_screen (int rep, int display, int *flags_ptr) { @@ -83,7 +86,7 @@ cpu_smp_screen (int rep, int display, int *flags_ptr) *flags_ptr |= INITIALIZED; sock_send_string(sock, "screen_add P\n"); - + // print title if he have room for it if (lines_used < lcd_hgt) { sock_send_string(sock, "widget_add P title title\n"); @@ -91,7 +94,7 @@ cpu_smp_screen (int rep, int display, int *flags_ptr) } else { sock_send_string(sock, "screen_set P -heartbeat off\n"); - } + } sock_printf(sock, "screen_set P -name {CPU Use: %s}\n", get_hostname()); @@ -136,4 +139,4 @@ cpu_smp_screen (int rep, int display, int *flags_ptr) } return 0; -} // End cpu_screen() +} // End cpu_screen() diff --git a/clients/lcdproc/disk.c b/clients/lcdproc/disk.c index 1573591..a790065 100644 --- a/clients/lcdproc/disk.c +++ b/clients/lcdproc/disk.c @@ -1,3 +1,14 @@ +/** \file clients/lcdproc/disk.c + * Implements the 'Disk' screen. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include @@ -19,18 +30,26 @@ #include "util.h" -/////////////////////////////////////////////////////////////////////////// -// Gives disk stats. -// -// Stays onscreen until it is done; rolls over all mounted file systems -// +--------------------+ +--------------------+ -// |## DISKS: myhost ##@| |## DISKS: myhost ##@| -// |/ 18.3G E-- F| |-local 18.3G E--- F| -// |-local 18.3G E--- F| +--------------------+ -// |/boot 949.6M E- F| -// +--------------------+ -// -// TODO: Disk screen! Requires virtual pages in the server, though... +/** + * Gives disk stats. + * Stays onscreen until it is done; rolls over all mounted file systems + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## DISKS: myhost ##@| |## DISKS: myhost ##@| + * |/ 18.3G E-- F| |-local 18.3G E--- F| + * |-local 18.3G E--- F| +--------------------+ + * |/boot 949.6M E- F| + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int disk_screen(int rep, int display, int *flags_ptr) { diff --git a/clients/lcdproc/eyebox.c b/clients/lcdproc/eyebox.c index da92a49..af17ec7 100644 --- a/clients/lcdproc/eyebox.c +++ b/clients/lcdproc/eyebox.c @@ -1,10 +1,13 @@ -/* This is the LCDproc client module for EyeboxOne devices - +/** \file clients/lcdproc/eyebox.c + This is the LCDproc client module for EyeboxOne devices + This allows to use leds, one as a free CPU meter, and one as a free RAM meter. All this is in BETA version, take it as a demo... +*/ +/*- Copyright (C) 2006 Cedric TESSIER (aka NeZetiC) http://www.nezetic.info This program is free software; you can redistribute it and/or modify @@ -33,7 +36,6 @@ #include #include "shared/sockets.h" -#include "shared/debug.h" #include "main.h" #include "mode.h" @@ -41,7 +43,7 @@ #include "eyebox.h" #include "util.h" - int +int eyebox_screen(char display, int init) { #undef CPU_BUF_SIZE @@ -81,7 +83,7 @@ eyebox_screen(char display, int init) cpu[CPU_BUF_SIZE - 1][2] = 0.0; cpu[CPU_BUF_SIZE - 1][3] = 0.0; cpu[CPU_BUF_SIZE - 1][4] = 0.0; - } + } // Average values for final result for (i = 0; i < 5; i++) { @@ -92,19 +94,19 @@ eyebox_screen(char display, int init) cpu[CPU_BUF_SIZE][i] = value; } - /* - * /xBab = Use Bar - * a = Bar ID - * b = Level + /* + * /xBab = Use Bar + * a = Bar ID + * b = Level */ sock_printf(sock, "widget_set %c eyebo_cpu 1 2 {/xB%d%d}\n", display, 2,(int)(cpu[CPU_BUF_SIZE][4]/10)); - /* - * /xBab = Use Bas - * a = Bar ID - * b = Level + /* + * /xBab = Use Bas + * a = Bar ID + * b = Level */ value = 1.0 - (double) (mem[0].free + mem[0].buffers + mem[0].cache) @@ -114,7 +116,9 @@ eyebox_screen(char display, int init) return 0; } // End mem_screen() -void eyebox_clear(void){ +void +eyebox_clear(void) +{ /* * Clear LEDs before exit */ diff --git a/clients/lcdproc/eyebox.h b/clients/lcdproc/eyebox.h index 1fddd57..b33e3d1 100644 --- a/clients/lcdproc/eyebox.h +++ b/clients/lcdproc/eyebox.h @@ -3,5 +3,5 @@ int eyebox_screen(char display, int init); void eyebox_clear(void); - + #endif diff --git a/clients/lcdproc/iface.c b/clients/lcdproc/iface.c index a430344..f488ad4 100644 --- a/clients/lcdproc/iface.c +++ b/clients/lcdproc/iface.c @@ -1,6 +1,8 @@ -/* - netlcdclient - Client for LCDproc which shows networks statistics +/** \file clients/lcdproc/iface.c + * Shows networks statistics. Imported from netlcdclient. + */ +/*- Copyright (C) 2002 Luis Llorente Campo Multiinterface Extension by Stephan Skrodzki Adaptions to lcdproc by Andrew Foss with fixes by M. Dolze @@ -19,7 +21,6 @@ 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ #include @@ -31,10 +32,10 @@ #include #include "shared/sockets.h" -#include "shared/debug.h" #include "shared/report.h" #include "shared/configfile.h" #include "main.h" +#include "machine.h" #include "util.h" #include "iface.h" @@ -43,12 +44,13 @@ static int iface_count = 0; /* number of interfaces */ - static char unit_label[10] = "B"; /* default unit label is Bytes */ static int transfer_screen = 0; /* by default, transfer screen is not shown */ -/* reads and parses configuration file */ +/** Reads and parses configuration file. + * \return 0 on success, -1 on error + */ static int iface_process_configfile(void) { @@ -60,14 +62,14 @@ iface_process_configfile(void) for (iface_count = 0; iface_count < MAX_INTERFACES; iface_count++) { char iface_label[12]; - + sprintf(iface_label, "Interface%i", iface_count); debug(RPT_DEBUG, "Label %s count %i", iface_label, iface_count); iface[iface_count].name = strdup(config_get_string("Iface", iface_label, 0, "")); if (iface[iface_count].name == NULL) { report(RPT_CRIT, "malloc failure"); return -1; - } + } if (*iface[iface_count].name == '\0') break; sprintf(iface_label, "Alias%i", iface_count); @@ -78,7 +80,7 @@ iface_process_configfile(void) debug(RPT_DEBUG, "Interface %i: %s alias %s", iface_count, iface[iface_count].name, iface[iface_count].alias); } - + unit = config_get_string("Iface", "Unit", 0, "byte"); if ((strcasecmp(unit, "byte") == 0) || (strcasecmp(unit, "bytes") == 0)) @@ -92,7 +94,7 @@ iface_process_configfile(void) else { report(RPT_ERR, "illegal Unit value: %s", unit); return -1; - } + } unit_label[sizeof(unit_label)-1] = '\0'; transfer_screen = config_get_bool("Iface", "Transfer", 0, 0); @@ -101,29 +103,39 @@ iface_process_configfile(void) } -////////////////////////////////////////////////////////////////////////// -// IFace screen shows info about percentage of the Network interface usage/throughput -// -// +--------------------+ +--------------------+ -// |## Net Load: LAN ##@| |### Net Load ######@| -// |UL: 123.456 Kb| |LAN: U: 34kb D: 56Mb| -// |DL: 654.321 Kb| +--------------------+ -// |Total: 777.777 Kb| -// +--------------------+ -// +/** + * IFace screen shows info about percentage of the Network interface usage / + * throughput. + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## Net Load: LAN ##@| |### Net Load ######@| + * |UL: 123.456 Kb| |LAN: U: 34kb D: 56Mb| + * |DL: 654.321 Kb| +--------------------+ + * |Total: 777.777 Kb| + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int iface_screen(int rep, int display, int *flags_ptr) { - //ALF TODO need to make this actual time since last run + /* ALF TODO need to make this actual time since last run */ unsigned int interval = difftime(time(NULL), iface[0].last_online); /* interval since last update */ int iface_nmbr; - + if (!interval) return 0; /* need at least 1 second, no divide by 0 */ if ((*flags_ptr & INITIALIZED) == 0) { *flags_ptr |= INITIALIZED; - + /* get configuration options */ iface_process_configfile(); @@ -148,11 +160,11 @@ iface_screen(int rep, int display, int *flags_ptr) /*read iface_parameter stats */ if (!machine_get_iface_stats(&iface[iface_nmbr])) { /* there was an error, so we exit the loop */ - break; - } + break; + } /* actualize speed values in display */ - actualize_speed_screen(&iface[iface_nmbr], interval, iface_nmbr); + actualize_speed_screen(&iface[iface_nmbr], interval, iface_nmbr); /* if needed, actualize transfer values in display */ if (transfer_screen) @@ -166,13 +178,12 @@ iface_screen(int rep, int display, int *flags_ptr) } return 0; -} // End iface_screen() +} /* End iface_screen() */ -/************************************************************************* - * Send commands to server to add speed screen with all required widgets - ************************************************************************* +/** + * Send commands to server to add speed screen with all required widgets. */ void initialize_speed_screen(void) @@ -213,7 +224,7 @@ initialize_speed_screen(void) sock_printf(sock, "widget_set I title {Net Load (packets)}\n"); } } - + sock_send_string (sock, "widget_add I f frame\n"); // frame from (2, left) to (width, height) that is iface_count lines high @@ -231,11 +242,15 @@ initialize_speed_screen(void) } /* initialize_speed_screen() */ -/************************************************************************* +/** * Format the value (in bytes) passed as parameter according to its scale, * adding the proper suffix. Store the formatted value string in the * variable 'buff' passed as pointer. - ************************************************************************* + * \param buff Pointer to target buffer + * \param value Number of bytes + * \param unit String describing the unit. If this contains 'b', \c value is + * converted to bits. If this contains 'B', value is converted + * to binary multiples (1024 bytes = 1 KiB). */ void format_value (char *buff, double value, char *unit) @@ -260,11 +275,15 @@ format_value (char *buff, double value, char *unit) } /* format_value() */ -/************************************************************************* +/** * Format the value (in bytes) passed as parameter according to its scale, * adding the proper suffix. Store the formatted value string in the - * variable 'buff' passed as pointer. Version for multi-interfaces mode - ************************************************************************* + * variable 'buff' passed as pointer. Version for multi-interfaces mode. + * \param buff Pointer to target buffer + * \param value Number of bytes + * \param unit String describing the unit. If this contains 'b', \c value is + * converted to bits. If this contains 'B', value is converted + * to binary multiples (1024 bytes = 1 KiB). */ void format_value_multi_interface (char *buff, double value, char *unit) @@ -290,9 +309,10 @@ format_value_multi_interface (char *buff, double value, char *unit) } /* format_value_multi_interface() */ -/************************************************************************* - * Format the time in ASCII, depending on the elapsed time - ************************************************************************* +/** + * Format the time in ASCII, depending on the elapsed time. + * \param buff Pointer to buffer for storing result + * \param last_online Time value */ void get_time_string (char *buff, time_t last_online) @@ -307,7 +327,7 @@ get_time_string (char *buff, time_t last_online) sprintf(buff, "never"); return; } - + /* Transform Unix time format to UTC time format */ strcpy(timebuff, ctime(&last_online)); @@ -323,11 +343,13 @@ get_time_string (char *buff, time_t last_online) } } /* get_time_string() */ -/************************************************************************* +/** * Actualize values in display, calculating speeds in the defined interval * of time and sending proper commands to server. If measure unit is - * 'pkt', we don't format this speed. Is always XXXX pkt/s - ************************************************************************* + * 'pkt', we don't format this speed. Is always XXXX pkt/s. + * \param iface Pointer to interface data + * \param interval Time of last update + * \param index Interface index */ void actualize_speed_screen(IfaceInfo *iface, unsigned int interval, int index) @@ -336,7 +358,7 @@ actualize_speed_screen(IfaceInfo *iface, unsigned int interval, int index) double rc_speed; double tr_speed; - if ((iface_count == 1) && ( lcd_hgt >= 4)) { /* single interface mode */ + if ((iface_count == 1) && ( lcd_hgt >= 4)) { /* single interface mode */ if (iface->status == up) { /* Calculate Download speed */ if (strstr(unit_label, "pkt")) { /* don't format this value */ @@ -407,14 +429,13 @@ actualize_speed_screen(IfaceInfo *iface, unsigned int interval, int index) } } /* actualize_speed_screen() */ -/************************************************************************* - * Send commands to server to add transfer screen with all required widgets - ************************************************************************* +/** + * Send commands to server to add transfer screen with all required widgets. */ void initialize_transfer_screen(void) { - int iface_nmbr; /* interface number */ + int iface_nmbr; /* interface number */ /* Add screen */ sock_send_string(sock, "screen_add NT\n"); @@ -456,10 +477,11 @@ initialize_transfer_screen(void) } } /* initialize_transfer_screen() */ -/************************************************************************* +/** * Actualize values in display, formatting transfer measures and sending - * proper commands to server. Traffic is shown in "bytes" unit - ************************************************************************* + * proper commands to server. Traffic is shown in "bytes" unit. + * \param iface Pointer to interface data + * \param index Interface index */ void actualize_transfer_screen(IfaceInfo *iface, int index) diff --git a/clients/lcdproc/iface.h b/clients/lcdproc/iface.h index f54e686..e607e45 100644 --- a/clients/lcdproc/iface.h +++ b/clients/lcdproc/iface.h @@ -1,51 +1,42 @@ -#ifndef IFACE_H -#define IFACE_H -/* netlcdclient.h - definitions and function prototipes - * +/** \file clients/lcdproc/iface.h + * Definitions and function prototypes for \c iface.c. + * Imported from \c netlcdclient.h. + */ + +/*- * Copyright (C) 2002 Luis Llorente Campo - * + * * This program 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. */ - -#include -#include "machine.h" +#ifndef IFACE_H +#define IFACE_H #define MAX_INTERFACES 3 /* max number of interfaces in multi-interface mode */ -int iface_screen(int rep, int display, int *flags_ptr); IfaceInfo iface[MAX_INTERFACES]; /* interface info */ -/************************/ -/* Functions prototipes */ -/************************/ - -/* read interface stats from /proc/net/dev */ +/** Update screen content */ +int iface_screen(int rep, int display, int *flags_ptr); +/** read interface stats from /proc/net/dev */ int get_iface_stats(IfaceInfo *interface); - -/* send initial commands to server to add the speed screen */ +/** send initial commands to server to add the speed screen */ void initialize_speed_screen(void); - -/* send initial commands to server to add the transfer screen */ +/** send initial commands to server to add the transfer screen */ void initialize_transfer_screen(void); - -/* format the time in ASCII */ +/** format the time in ASCII */ void get_time_string(char *buff, time_t last_online); - -/* format value, scaling value and adding proper suffixes */ +/** format value, scaling value and adding proper suffixes */ void format_value(char *buff, double value, char *unit); - -/* format value, scaling value and adding proper suffixes (for multi-interface +/** format value, scaling value and adding proper suffixes (for multi-interface * mode) */ void format_value_multi_interface(char *buff, double value, char *unit); - -/* actualize widgets values in speed screen */ +/** actualize widgets values in speed screen */ void actualize_speed_screen(IfaceInfo *iface, unsigned int interval, int index); - -/* actualize widgets values in transfer screen */ +/** actualize widgets values in transfer screen */ void actualize_transfer_screen(IfaceInfo *iface, int index); #endif diff --git a/clients/lcdproc/load.c b/clients/lcdproc/load.c index 04b226b..52ab3ad 100644 --- a/clients/lcdproc/load.c +++ b/clients/lcdproc/load.c @@ -1,3 +1,14 @@ +/** \file clients/lcdproc/load.c + * Implements the 'Load' screen. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include @@ -16,16 +27,25 @@ #include "load.h" -/////////////////////////////////////////////////////////////////////////// -// Shows a display very similar to "xload"'s histogram. -// -// +--------------------+ +--------------------+ -// |## LOAD 0.44: myh #@| |myhost 0.24 1| -// | 1| | |||||||||||0| -// | |||||| | +--------------------+ -// | |||| |||||||| 0| -// +--------------------+ -// +/** + * Shows a display very similar to "xload"'s histogram. + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## LOAD 0.44: myh #@| |myhost 0.24 1| + * | 1| | |||||||||||0| + * | |||||| | +--------------------+ + * | |||| |||||||| 0| + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return The backlight state + */ int xload_screen(int rep, int display, int *flags_ptr) { @@ -109,7 +129,7 @@ xload_screen(int rep, int display, int *flags_ptr) status = (loadmax > lowLoad) ? BACKLIGHT_ON : BACKLIGHT_OFF; if (loads[lcd_wid - 2] > highLoad) status = BLINK_ON; - } + } return status; -} // End xload_screen() +} // End xload_screen() diff --git a/clients/lcdproc/machine.h b/clients/lcdproc/machine.h index b7618c8..3c51036 100644 --- a/clients/lcdproc/machine.h +++ b/clients/lcdproc/machine.h @@ -1,4 +1,4 @@ -/** \file machine.h +/** \file clients/lcdproc/machine.h * Common data types and function declarations * for OS specific sources in \c machine_{Darwin,Linux,SunOS,*BSD}.c. * diff --git a/clients/lcdproc/machine_Darwin.c b/clients/lcdproc/machine_Darwin.c index e58124e..62f7c58 100644 --- a/clients/lcdproc/machine_Darwin.c +++ b/clients/lcdproc/machine_Darwin.c @@ -1,3 +1,7 @@ +/** \file clients/lcdproc/machine_Darwin.c + * Collects system information on MacOS / Darwin. + */ + /* Copyright (c) 2003 Thomas Runge (coto@core.de) * Mach and Darwin specific code is Copyright (c) 2006 Eric Pooch (epooch@tenon.com) * diff --git a/clients/lcdproc/machine_FreeBSD.c b/clients/lcdproc/machine_FreeBSD.c index ace9364..38d58d0 100644 --- a/clients/lcdproc/machine_FreeBSD.c +++ b/clients/lcdproc/machine_FreeBSD.c @@ -1,3 +1,6 @@ +/** \file clients/lcdproc/machine_FreeBSD.c + * Collects system information on FreeBSD. + */ /* Copyright (c) 2003 Thomas Runge (coto@core.de) * diff --git a/clients/lcdproc/machine_Linux.c b/clients/lcdproc/machine_Linux.c index 4467e66..3695e29 100644 --- a/clients/lcdproc/machine_Linux.c +++ b/clients/lcdproc/machine_Linux.c @@ -1,3 +1,13 @@ +/** \file clients/lcdproc/machine_Linux.c + * Collects system information on Linux. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ #ifdef linux diff --git a/clients/lcdproc/machine_NetBSD.c b/clients/lcdproc/machine_NetBSD.c index 5672fc9..b7daadb 100644 --- a/clients/lcdproc/machine_NetBSD.c +++ b/clients/lcdproc/machine_NetBSD.c @@ -1,3 +1,6 @@ +/** \file clients/lcdproc/machine_NetBSD.c + * Collects system information on NetBSD. + */ /* Copyright (c) 2003 Thomas Runge (coto@core.de) * diff --git a/clients/lcdproc/machine_OpenBSD.c b/clients/lcdproc/machine_OpenBSD.c index 7109b1c..80fba95 100644 --- a/clients/lcdproc/machine_OpenBSD.c +++ b/clients/lcdproc/machine_OpenBSD.c @@ -1,3 +1,6 @@ +/** \file clients/lcdproc/machine_OpenBSD.c + * Collects system information on OpenBSD. + */ /* Copyright (c) 2003 Thomas Runge (coto@core.de) * diff --git a/clients/lcdproc/machine_SunOS.c b/clients/lcdproc/machine_SunOS.c index 1bdb1cd..eb783ab 100644 --- a/clients/lcdproc/machine_SunOS.c +++ b/clients/lcdproc/machine_SunOS.c @@ -1,3 +1,13 @@ +/** \file clients/lcdproc/machine_SunOS.c + * Collects system information on Solaris. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ #ifdef sun diff --git a/clients/lcdproc/main.c b/clients/lcdproc/main.c index 95da42c..483df13 100644 --- a/clients/lcdproc/main.c +++ b/clients/lcdproc/main.c @@ -1,3 +1,17 @@ +/** \file clients/lcdproc/main.c + * Contains main(), plus signal callback functions and a help screen. + * + * Program init, command-line handling, and the main loop are + * implemented here. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include @@ -21,11 +35,11 @@ #include "main.h" #include "mode.h" #include "shared/sockets.h" -#include "shared/debug.h" #include "shared/report.h" #include "shared/configfile.h" -#include "getopt.h" +#include "getopt.h" /* This is our local getopt.h! */ +/* Import screens */ #include "batt.h" #include "chrono.h" #include "cpu.h" @@ -39,8 +53,7 @@ # include "eyebox.h" #endif -// TODO: Commenting... Everything! - +/* The following 8 variables are defined 'external' in main.h! */ int Quit = 0; int sock = -1; @@ -51,21 +64,17 @@ int lcd_wid = 0; int lcd_hgt = 0; int lcd_cellwid = 0; int lcd_cellhgt = 0; + static struct utsname unamebuf; -/* - Mode List: - See below... (default_sequence[]) -*/ - +/* local prototypes */ static void HelpScreen(int exit_state); static void exit_program(int val); static void main_loop(void); static int process_configfile(char *cfgfile); -// 1/8th second is a single time unit... -#define TIME_UNIT 125000 +#define TIME_UNIT 125000 /**< 1/8th second is a single time unit. */ #if !defined(SYSCONFDIR) # define SYSCONFDIR "/etc" @@ -82,11 +91,11 @@ static int process_configfile(char *cfgfile); #define DEFAULT_REPORTDEST RPT_DEST_STDERR #define DEFAULT_REPORTLEVEL RPT_WARNING -/* list of screen modes to run */ +/** list of screen modes to run */ ScreenMode sequence[] = { - // flags default ACTIVE will run by default - // longname which on off inv timer flags + /* flags default ACTIVE will run by default */ + /* longname which on off inv timer flags */ { "CPU", 'C', 1, 2, 0, 0xffff, ACTIVE, cpu_screen }, // [C]PU { "Iface", 'I', 1, 2, 0, 0xffff, 0, iface_screen }, // [I]face { "Memory", 'M', 4, 16, 0, 0xffff, ACTIVE, mem_screen }, // [M]emory @@ -106,69 +115,77 @@ ScreenMode sequence[] = }; - -/* All variables are set to 'unset' values*/ -static int islow = -1; +/* All variables are set to 'unset' values */ +static int islow = -1; /**< pause after mode update (in 1/100s) */ char *progname = "lcdproc"; -char *server = NULL; -int port = LCDPORT; -int foreground = FALSE; +char *server = NULL; +int port = LCDPORT; +int foreground = FALSE; static int report_level = UNSET_INT; -static int report_dest = UNSET_INT; +static int report_dest = UNSET_INT; char *configfile = NULL; char *pidfile = NULL; int pidfile_written = FALSE; -char *displayname = NULL; +char *displayname = NULL; /**< display name for the main menu */ - -const char *get_hostname(void) +/** Returns the network name of this machine */ +const char * +get_hostname(void) { - return(unamebuf.nodename); + return (unamebuf.nodename); +} + +/** Returns the name of the client's OS */ +const char * +get_sysname(void) +{ + return (unamebuf.sysname); +} + +/** Returns the release version of the client's OS */ +const char * +get_sysrelease(void) +{ + return (unamebuf.release); } -const char *get_sysname(void) -{ - return(unamebuf.sysname); -} - - -const char *get_sysrelease(void) -{ - return(unamebuf.release); -} - - -static int set_mode(int shortname, char *longname, int state) +/** Enables or disables (and deletes) a screen */ +static int +set_mode(int shortname, char *longname, int state) { int k; - /* ignore already selected modes */ for (k = 0; sequence[k].which != 0; k++) { if (((sequence[k].longname != NULL) && (0 == strcasecmp(longname, sequence[k].longname))) || (toupper(shortname) == sequence[k].which)) { if (!state) { - /* clean both the active and initialized bits since we delete the screen */ + /* + * clean both the active and initialized bits + * since we delete the screen + */ sequence[k].flags &= (~ACTIVE & ~INITIALIZED); /* delete the screen if we are connected */ if (sock >= 0) { sock_printf(sock, "screen_del %c\n", sequence[k].which); - } - } else + } + } + else sequence[k].flags |= ACTIVE; - return 1; //found + return 1; /* found */ } } - return 0; //not found + return 0; /* not found */ } -static void clear_modes(void) +/** Sets all screens inactive */ +static void +clear_modes(void) { int k; - /* ignore already selected modes */ for (k = 0; sequence[k].which != 0; k++) { sequence[k].flags &= (~ACTIVE); } @@ -182,38 +199,38 @@ main(int argc, char **argv) int c; /* set locale for cwdate & time formatting in chrono.c */ - setlocale(LC_TIME, "" ); + setlocale(LC_TIME, ""); /* get uname information */ if (uname(&unamebuf) == -1) { perror("uname"); - return(EXIT_FAILURE); + return (EXIT_FAILURE); } /* setup error handlers */ - signal(SIGINT, exit_program); // Ctrl-C - signal(SIGTERM, exit_program); // "regular" kill - signal(SIGHUP, exit_program); // kill -HUP - signal(SIGPIPE, exit_program); // write to closed socket - signal(SIGKILL, exit_program); // kill -9 [cannot be trapped; but ...] + signal(SIGINT, exit_program); /* Ctrl-C */ + signal(SIGTERM, exit_program); /* "regular" kill */ + signal(SIGHUP, exit_program); /* kill -HUP */ + signal(SIGPIPE, exit_program); /* write to closed socket */ + signal(SIGKILL, exit_program); /* kill -9 [cannot be trapped; but ...] */ /* No error output from getopt */ opterr = 0; /* get options from command line */ - while ((c = getopt( argc, argv, "s:p:e:c:fhv")) > 0) { + while ((c = getopt(argc, argv, "s:p:e:c:fhv")) > 0) { char *end; switch (c) { - // c is for config file + /* c is for config file */ case 'c': configfile = optarg; break; - // s is for server + /* s is for server */ case 's': server = optarg; break; - // p is for port + /* p is for port */ case 'p': port = strtol(optarg, &end, 0); if ((*optarg == '\0') || (*end != '\0') || @@ -239,25 +256,26 @@ main(int argc, char **argv) fprintf(stderr, "LCDproc %s\n", version); exit(EXIT_SUCCESS); break; - // otherwise... Get help! - case '?': // unknown option or missing argument + /* otherwise... Get help! */ + case '?': /* unknown option or missing argument */ + /* FALLTHROUGH */ default: HelpScreen(EXIT_FAILURE); break; } - } + } - /* Read config file*/ + /* Read config file */ cfgresult = process_configfile(configfile); if (cfgresult < 0) { fprintf(stderr, "Error reading config file\n"); exit(EXIT_FAILURE); - } + } /* Set default reporting options */ if (report_dest == UNSET_INT) report_dest = DEFAULT_REPORTDEST; - if( report_level == UNSET_INT) + if (report_level == UNSET_INT) report_level = DEFAULT_REPORTLEVEL; /* Set reporting settings */ @@ -267,75 +285,75 @@ main(int argc, char **argv) if (argc > max(optind, 1)) { int i; - // if no config file was read, ignore hard coded default modes + /* + * if no config file was read, ignore hard coded default + * modes + */ if (cfgresult == 0) clear_modes(); - // turn additional options on or off (using ! as prefix) + /* turn additional options on or off (using ! as prefix) */ for (i = max(optind, 1); i < argc; i++) { int state = (*argv[i] == '!') ? 0 : 1; - char *name = (state) ? argv[i] : argv[i]+1; + char *name = (state) ? argv[i] : argv[i] + 1; int shortname = (strlen(name) == 1) ? name[0] : '\0'; - // debug: fprintf(stderr, "%s%s", (state) ? "" : "!", name); int found = set_mode(shortname, name, state); if (!found) { fprintf(stderr, "Invalid Screen: %s\n", name); - return(EXIT_FAILURE); + return (EXIT_FAILURE); } - } + } } if (server == NULL) server = DEFAULT_SERVER; - // Connect to the server... - usleep(500000); // wait for the server to start up + /* Connect to the server... */ sock = sock_connect(server, port); if (sock < 0) { fprintf(stderr, "Error connecting to LCD server %s on port %d.\n" - "Check to see that the server is running and operating normally.\n", - server, port); - return(EXIT_FAILURE); + "Check to see that the server is running and operating normally.\n", + server, port); + return (EXIT_FAILURE); } sock_send_string(sock, "hello\n"); - usleep(500000); // wait for the server to say hi. + usleep(500000); /* wait for the server to say hi. */ - // We grab the real values below, from the "connect" line. + /* We grab the real values below, from the "connect" line. */ lcd_wid = 20; lcd_hgt = 4; lcd_cellwid = 5; lcd_cellhgt = 8; if (foreground != TRUE) { - if (daemon(1,0) != 0) { + if (daemon(1, 0) != 0) { fprintf(stderr, "Error: daemonize failed\n"); - return(EXIT_FAILURE); + return (EXIT_FAILURE); } if (pidfile != NULL) { FILE *pidf = fopen(pidfile, "w"); if (pidf) { - fprintf(pidf, "%d\n", (int) getpid()); + fprintf(pidf, "%d\n", (int)getpid()); fclose(pidf); pidfile_written = TRUE; - } else { + } + else { fprintf(stderr, "Error creating pidfile %s: %s\n", pidfile, strerror(errno)); - return(EXIT_FAILURE); + return (EXIT_FAILURE); } } - } + } - // Init the status gatherers... + /* Init the status gatherers... */ mode_init(); - // And spew stuff! + /* And spew stuff! */ main_loop(); - - // Clean up & exit exit_program(EXIT_SUCCESS); /* NOTREACHED */ @@ -343,10 +361,12 @@ main(int argc, char **argv) } -/* reads and parses configuration filei - * returns: 1 if configfile was read, - * 0 if default configfile doesn't exist - * <0 on error +/** + * Reads and parses configuration file. + * \param configfile The configfile to read or NULL for the default config. + * \retval 1 if configfile was read, + * \retval 0 if default configfile doesn't exist + * \retval <0 on error */ static int process_configfile(char *configfile) @@ -356,22 +376,24 @@ process_configfile(char *configfile) debug(RPT_DEBUG, "%s(%s)", __FUNCTION__, (configfile) ? configfile : ""); - /* Read config settings*/ + /* Read config settings */ if (configfile == NULL) { struct stat statbuf; - // if default config file does not exist, do not consider this an error + /* + * if default config file does not exist, do not consider + * this an error and continue + */ if ((lstat(DEFAULT_CONFIGFILE, &statbuf) == -1) && (errno = ENOENT)) return 0; configfile = DEFAULT_CONFIGFILE; } - + if (config_read_file(configfile) != 0) { report(RPT_CRIT, "Could not read config file: %s", configfile); return -1; - //report(RPT_WARNING, "Could not read config file: %s", configfile); } if (server == NULL) { @@ -387,7 +409,8 @@ process_configfile(char *configfile) if (report_dest == UNSET_INT) { if (config_get_bool(progname, "ReportToSyslog", 0, 0)) { report_dest = RPT_DEST_SYSLOG; - } else { + } + else { report_dest = RPT_DEST_STDERR; } } @@ -405,14 +428,15 @@ process_configfile(char *configfile) displayname = strdup(tmp); /* - * check for config file variables to override all the sequence defaults + * check for config file variables to override all the sequence + * defaults */ - for (k = 0; sequence[k].which != 0; k++) { + for (k = 0; sequence[k].which != 0; k++) { if (sequence[k].longname != NULL) { sequence[k].on_time = config_get_int(sequence[k].longname, "OnTime", 0, sequence[k].on_time); sequence[k].off_time = config_get_int(sequence[k].longname, "OffTime", 0, sequence[k].off_time); sequence[k].show_invisible = config_get_bool(sequence[k].longname, "ShowInvisible", 0, sequence[k].show_invisible); - if (config_get_bool( sequence[k].longname, "Active", 0, sequence[k].flags & ACTIVE)) + if (config_get_bool(sequence[k].longname, "Active", 0, sequence[k].flags & ACTIVE)) sequence[k].flags |= ACTIVE; else sequence[k].flags &= (~ACTIVE); @@ -422,8 +446,9 @@ process_configfile(char *configfile) return 1; } +/** Print help screen and exit */ void -HelpScreen (int exit_state) +HelpScreen(int exit_state) { fprintf(stderr, "lcdproc - LCDproc system status information viewer\n" @@ -464,9 +489,8 @@ HelpScreen (int exit_state) exit(exit_state); } -/////////////////////////////////////////////////////////////////// -// Called upon TERM and INTR signals... -// + +/** Called upon TERM and INTR signals. Also removes the pid-file. */ void exit_program(int val) { @@ -486,21 +510,23 @@ exit_program(int val) #ifdef LCDPROC_MENUS int -menus_init () +menus_init() { - int k; + int k; - for (k = 0; sequence[k].which ; k++) { + for (k = 0; sequence[k].which; k++) { if (sequence[k].longname) { sock_printf(sock, "menu_add_item {} %c checkbox {%s} -value %s\n", - sequence[k].which, sequence[k].longname, - (sequence[k].flags & ACTIVE) ? "on" : "off"); + sequence[k].which, sequence[k].longname, + (sequence[k].flags & ACTIVE) ? "on" : "off"); } } #ifdef LCDPROC_CLIENT_TESTMENUS -// # to be entered on escape from test_menu (but overwritten -// # for test_{checkbox,ring} + /* + * to be entered on escape from test_menu (but overwritten for + * test_{checkbox,ring} + */ sock_send_string(sock, "menu_add_item {} ask menu {Leave menus?} -is_hidden true\n"); sock_send_string(sock, "menu_add_item {ask} ask_yes action {Yes} -next _quit_\n"); sock_send_string(sock, "menu_add_item {ask} ask_no action {No} -next _close_\n"); @@ -514,9 +540,11 @@ menus_init () sock_send_string(sock, "menu_add_item {test} test_ip ip {IP} -v6 false -value 192.168.1.1\n"); sock_send_string(sock, "menu_add_item {test} test_menu menu {Menu}\n"); sock_send_string(sock, "menu_add_item {test_menu} test_menu_action action {Submenu's action}\n"); - -// # no successor for menus. Since test_checkbox and test_ring have their -// # own predecessors defined the "ask" rule will not work for them + /* + * no successor for menus. Since test_checkbox and test_ring have + * their own predecessors defined the "ask" rule will not work for + * them. + */ sock_send_string(sock, "menu_set_item {} test -prev {ask}\n"); sock_send_string(sock, "menu_set_item {test} test_action -next {test_checkbox}\n"); @@ -527,16 +555,14 @@ menus_init () sock_send_string(sock, "menu_set_item {test} test_alpha -next {test_ip} -prev {test_numeric}\n"); sock_send_string(sock, "menu_set_item {test} test_ip -next {test_menu} -prev {test_alpha}\n"); sock_send_string(sock, "menu_set_item {test} test_menu_action -next {_close_}\n"); -#endif //LCDPROC_CLIENT_TESTMENUS +#endif /* LCDPROC_CLIENT_TESTMENUS */ return 0; } -#endif //LCDPROC_MENUS +#endif /* LCDPROC_MENUS */ -/////////////////////////////////////////////////////////////////// -// Main program loop... -// +/** Main program loop... */ void main_loop(void) { @@ -547,16 +573,13 @@ main_loop(void) int argc, newtoken; int len; - // Main loop - // Run whatever screen we want, then wait. Woo-hoo! while (!Quit) { - // Check for server input... + /* Check for server input... */ len = sock_recv(sock, buf, 8000); - // Handle server input... + /* Handle server input... */ while (len > 0) { - // Now split the string into tokens... - //for (i=0; i 0) { - //printf("%s %s\n", argv[0], argv[1]); if (0 == strcmp(argv[0], "listen")) { for (j = 0; sequence[j].which; j++) { if (sequence[j].which == argv[1][0]) { sequence[j].flags |= VISIBLE; - //debug(RPT_DEBUG, "Listen %s", argv[1]); + debug(RPT_DEBUG, "Listen %s", argv[1]); } } } @@ -588,7 +611,7 @@ main_loop(void) for (j = 0; sequence[j].which; j++) { if (sequence[j].which == argv[1][0]) { sequence[j].flags &= ~VISIBLE; - //debug(RPT_DEBUG, "Ignore %s", argv[1]); + debug(RPT_DEBUG, "Ignore %s", argv[1]); } } } @@ -598,7 +621,7 @@ main_loop(void) #ifdef LCDPROC_MENUS else if (0 == strcmp(argv[0], "menuevent")) { if (argc == 4 && (0 == strcmp(argv[1], "update"))) { - set_mode(argv[2][0],"", strcmp(argv[3],"off")); + set_mode(argv[2][0], "", strcmp(argv[3], "off")); } } #else @@ -627,32 +650,31 @@ main_loop(void) #endif } else if (0 == strcmp(argv[0], "bye")) { - //printf("Exiting LCDproc\n"); exit_program(EXIT_SUCCESS); } else if (0 == strcmp(argv[0], "success")) { } else { - //int j; - //for (j = 0; j < argc; j++) - // printf("%s ", argv[j]); - //printf("\n"); + /* + int j; + for (j = 0; j < argc; j++) + printf("%s ", argv[j]); + printf("\n"); + */ } } - // Restart tokenizing + /* Restart tokenizing */ argc = 0; newtoken = 1; - break; - } // switch( buf[i] ) + break; + } /* switch( buf[i] ) */ } len = sock_recv(sock, buf, 8000); - //debug("\n"); } - // Gather stats... - // Update screens... + /* Gather stats and update screens */ if (connected) { for (i = 0; sequence[i].which > 0; i++) { sequence[i].timer++; @@ -663,14 +685,14 @@ main_loop(void) if (sequence[i].flags & VISIBLE) { if (sequence[i].timer >= sequence[i].on_time) { sequence[i].timer = 0; - // Now, update the screen... + /* Now, update the screen... */ update_screen(&sequence[i], 1); } } else { if (sequence[i].timer >= sequence[i].off_time) { sequence[i].timer = 0; - // Now, update the screen... + /* Now, update the screen... */ update_screen(&sequence[i], sequence[i].show_invisible); } } @@ -679,8 +701,9 @@ main_loop(void) } } - // Now sleep... + /* Now sleep... */ usleep(TIME_UNIT); } } +/* EOF */ diff --git a/clients/lcdproc/main.h b/clients/lcdproc/main.h index c1034e4..340bdd9 100644 --- a/clients/lcdproc/main.h +++ b/clients/lcdproc/main.h @@ -1,3 +1,14 @@ +/** \file clients/lcdproc/main.h + * Contains mode related defines and structures. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #ifndef MAIN_H #define MAIN_H @@ -32,22 +43,23 @@ extern int lcd_hgt; extern int lcd_cellwid; extern int lcd_cellhgt; +/** Screen data structure */ typedef struct _screen_mode { - char *longname; // Which screen is it? - char which; // Which screen is it? - int on_time; // How often to update while visible? - int off_time; // How often to get stats while not visible? - int show_invisible; // Send stats while not visible? - int timer; // Time since last update - int flags; // bit 1 visible, bit 2 selected for display, bit 3 first - int (*func)(int,int,int *); // function pointer + char *longname; /**< Which screen is it (long name)? */ + char which; /**< Which screen is it (short name)? */ + int on_time; /**< How often to update while visible? */ + int off_time; /**< How often to get stats while not visible? */ + int show_invisible; /**< Send stats while not visible? */ + int timer; /**< Time since last update */ + int flags; /**< See mode flags defines */ + int (*func)(int,int,int *); /**< Pointer to init / update function */ } ScreenMode; -//mode flags -#define VISIBLE 0x00000001 //currently visible -#define ACTIVE 0x00000002 //selected for display -#define INITIALIZED 0x00000004 //replaces the first variable to indicate whether the update screens are initialized +/* mode flags */ +#define VISIBLE 0x00000001 /**< currently visible */ +#define ACTIVE 0x00000002 /**< selected for display */ +#define INITIALIZED 0x00000004 /**< screen had already been initialized */ #define BLINK_ON 0x10 #define BLINK_OFF 0x11 diff --git a/clients/lcdproc/mem.c b/clients/lcdproc/mem.c index ef72081..60235fa 100644 --- a/clients/lcdproc/mem.c +++ b/clients/lcdproc/mem.c @@ -1,3 +1,14 @@ +/** \file clients/lcdproc/mem.c + * Implements the 'Memory' and 'ProcSize' screens. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include @@ -18,16 +29,25 @@ #include "util.h" -///////////////////////////////////////////////////////////////////////// -// Mem Screen displays info about memory and swap usage... -// -// +--------------------+ +--------------------+ -// |## MEM #### SWAP #@| |M 758.3M [- ] 35.3%@| -// | 758.3M Totl 1.884G | |S 1.884G [ ] 0.1% | -// | 490.8M Free 1.882G | +--------------------+ -// |E--- F E F| -// +--------------------+ -// +/** + * Mem Screen displays info about memory and swap usage... + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## MEM #### SWAP #@| |M 758.3M [- ] 35.3%@| + * | 758.3M Totl 1.884G | |S 1.884G [ ] 0.1% | + * | 490.8M Free 1.882G | +--------------------+ + * |E--- F E F| + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int mem_screen(int rep, int display, int *flags_ptr) { @@ -134,7 +154,7 @@ mem_screen(int rep, int display, int *flags_ptr) if (display) sock_printf(sock, "widget_set M memgauge 2 4 %.0f\n", lcd_cellwid * gauge_wid * value); - } + } // Free swap graph if (mem[1].total > 0) { @@ -144,7 +164,7 @@ mem_screen(int rep, int display, int *flags_ptr) if (display) sock_printf(sock, "widget_set M swapgauge %i 4 %.0f\n", lcd_wid - gauge_wid, lcd_cellwid * gauge_wid * value); - } + } } } else { @@ -171,7 +191,7 @@ mem_screen(int rep, int display, int *flags_ptr) if (display) sock_printf(sock, "widget_set M memgauge %i 1 %.0f\n", gauge_offs, lcd_cellwid * gauge_wid * value); - } + } sprintf_percent(tmp, value * 100); } @@ -200,6 +220,10 @@ mem_screen(int rep, int display, int *flags_ptr) } // End mem_screen() +/** + * Compares memory usage two procinfo structures and returns 1 (true) if the + * second one's is larger than the first one's, 0 (false) otherwise. + */ static int sort_procs(void *a, void *b) { @@ -215,16 +239,25 @@ sort_procs(void *a, void *b) } -///////////////////////////////////////////////////////////////////////// -// Mem Top Screen displays info about top 5 memory hogs... -// -// +--------------------+ +--------------------+ -// |## TOP MEM: myhos #@| |## TOP MEM: myhos #@| -// |1 110.4M mysqld | |1 110.4M mysqld | -// |2 35.38M konqueror(2| +--------------------+ -// |3 29.21M XFree86 | -// +--------------------+ -// +/** + * Mem Top Screen displays info about top 5 memory hogs... + * + *\verbatim + * + * +--------------------+ +--------------------+ + * |## TOP MEM: myhos #@| |## TOP MEM: myhos #@| + * |1 110.4M mysqld | |1 110.4M mysqld | + * |2 35.38M konqueror(2| +--------------------+ + * |3 29.21M XFree86 | + * +--------------------+ + * + *\endverbatim + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int mem_top_screen(int rep, int display, int *flags_ptr) { @@ -281,7 +314,7 @@ mem_top_screen(int rep, int display, int *flags_ptr) else sock_printf(sock, "widget_set S %i 1 %i {%i %5s %s}\n", i, i, i, mem, p->name); - } + } } else { //printf("Mem hog: none?\n"); diff --git a/clients/lcdproc/mode.c b/clients/lcdproc/mode.c index 10c4cfa..eb96cf8 100644 --- a/clients/lcdproc/mode.c +++ b/clients/lcdproc/mode.c @@ -1,3 +1,14 @@ +/** \file clients/lcdproc/mode.c + * Implements the 'About' screen and contains wrappers for machine dependend + * initialization / closing. + */ + +/*- + * This file is part of lcdproc, the lcdproc client. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ #include #include @@ -16,16 +27,14 @@ #include "shared/sockets.h" -#include "mode.h" #include "main.h" +#include "mode.h" #include "machine.h" #ifdef LCDPROC_EYEBOXONE # include "eyebox.h" -#endif - -// TODO: Clean this up... Support multiple display sizes.. - +#endif +/** Initialize mode specific things. */ int mode_init(void) { @@ -34,12 +43,23 @@ mode_init(void) return(0); } +/** Clean up modes on exit */ void mode_close(void) { machine_close(); } + +/** + * Calls the mode specific screen init / update function and updates the Eyebox + * screen as well. Sets the backlight state according to return value of the + * mode specific screen function. + * + * \param m The screen mode + * \param display Flag whether to update screen even if not visible. + * \return Backlight state + */ int update_screen(ScreenMode *m, int display) { @@ -48,8 +68,9 @@ update_screen(ScreenMode *m, int display) if (m && m->func) { #ifdef LCDPROC_EYEBOXONE + /* Save the initialized flag (may be modified by m->func) */ int init_flag = (m->flags & INITIALIZED); -#endif +#endif status = m->func(m->timer, display, &(m->flags)); #ifdef LCDPROC_EYEBOXONE /* Eyebox Init */ @@ -57,11 +78,10 @@ update_screen(ScreenMode *m, int display) eyebox_screen(m->which,0); /* Eyebox Flush */ eyebox_screen(m->which,1); -#endif +#endif } - if (status != old_status) - { + if (status != old_status) { if (status == BACKLIGHT_OFF) sock_send_string(sock, "backlight off\n"); if (status == BACKLIGHT_ON) @@ -74,13 +94,14 @@ update_screen(ScreenMode *m, int display) } -/////////////////////////////////////////////////////////////////////////// -//////////////////////// Let the Modes Begin! ///////////////////////////// -/////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -// Credit Screen shows who wrote this... -// +/** + * Credit Screen shows who wrote this... + * + * \param rep Time since last screen update + * \param display 1 if screen is visible or data should be updated + * \param flags_ptr Mode flags + * \return Always 0 + */ int credit_screen(int rep, int display, int *flags_ptr) { @@ -158,8 +179,8 @@ credit_screen(int rep, int display, int *flags_ptr) int contr_num = 0; int i; - if ((*flags_ptr & INITIALIZED) == 0) { - *flags_ptr |= INITIALIZED; + if ((*flags_ptr & INITIALIZED) == 0) { + *flags_ptr |= INITIALIZED; /* get number of contributors */ for (contr_num = 0; contributors[contr_num] != NULL; contr_num++) @@ -173,22 +194,22 @@ credit_screen(int rep, int display, int *flags_ptr) sock_printf(sock, "widget_set A text 1 2 %d 2 h 8 {%s}\n", lcd_wid, "LCDproc was brought to you by:"); } - - // frame from (2nd/3rd line, left) to (last line, right) + + /* frame from (2nd/3rd line, left) to (last line, right) */ sock_send_string(sock, "widget_add A f frame\n"); sock_printf(sock, "widget_set A f 1 %i %i %i %i %i v %i\n", ((lcd_hgt >= 4) ? 3 : 2), lcd_wid, lcd_hgt, lcd_wid, contr_num, // scroll rate: 1 line every X ticks (= 1/8 sec) ((lcd_hgt >= 4) ? 8 : 12)); - // frame contents + /* frame contents */ for (i = 1; i < contr_num; i++) { sock_printf(sock, "widget_add A c%i string -in f\n", i); sock_printf(sock, "widget_set A c%i 1 %i {%s}\n", i, i, contributors[i]); - } + } } return(0); -} // End credit_screen() - +} +/* EOF */ diff --git a/clients/lcdproc/mode.h b/clients/lcdproc/mode.h index 7767a22..0b18390 100644 --- a/clients/lcdproc/mode.h +++ b/clients/lcdproc/mode.h @@ -1,14 +1,9 @@ #ifndef MODE_H #define MODE_H -#include "main.h" - - int mode_init(void); void mode_close(void); - int update_screen(ScreenMode *m, int display); - int credit_screen(int rep, int display, int *flags_ptr); #endif diff --git a/clients/lcdvc/lcdvc.c b/clients/lcdvc/lcdvc.c index edf48a2..20294be 100644 --- a/clients/lcdvc/lcdvc.c +++ b/clients/lcdvc/lcdvc.c @@ -20,7 +20,6 @@ #include "getopt.h" -#include "shared/str.h" #include "shared/report.h" #include "shared/configfile.h" #include "shared/sockets.h" diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index a4477b1..c8bcf5a 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -307,7 +307,7 @@ EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. -EXTRACT_STATIC = NO +EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. diff --git a/docs/lcdproc-dev/shared-files.docbook b/docs/lcdproc-dev/shared-files.docbook index 8b1be41..1092c7b 100644 --- a/docs/lcdproc-dev/shared-files.docbook +++ b/docs/lcdproc-dev/shared-files.docbook @@ -10,18 +10,27 @@ Here we provide functions that should be used by all parts of the program. - + report.h : Debugging and reporting To enable the debug() function on all of the software, just type: -./configure --enable-debug and recompile with 'make'. +./configure --enable-debug and recompile with 'make'. -To enable the debug() function only in specific files: -1) Configure without enabling debug (that is without --enable-debug) -2) Edit the source file that you want to debug and put the following - line at the top, before the #include "report.h" line: - #define DEBUG -3) Then recompile with 'make' +Enabling the debug() function only in specific files: + + Configure without enabling debug (that is without --enable-debug). + + + Edit the source file that you want to debug and put the following line + at the top, before the #include "report.h" line: #define DEBUG. + + + + Then recompile with 'make'. + + + + This way, the global DEBUG macro is off but is locally enabled in certains parts of the software. diff --git a/server/drivers/bayrad.c b/server/drivers/bayrad.c index 8bbd87f..fbac925 100644 --- a/server/drivers/bayrad.c +++ b/server/drivers/bayrad.c @@ -34,8 +34,6 @@ #endif #include "lcd.h" #include "bayrad.h" -//#include "drv_base.h" -#include "shared/str.h" #include "report.h" #include "lcd_lib.h" diff --git a/server/drivers/glk.c b/server/drivers/glk.c index efab419..0a3a15d 100644 --- a/server/drivers/glk.c +++ b/server/drivers/glk.c @@ -35,7 +35,6 @@ #define DEBUG 1 #include "lcd.h" -#include "shared/str.h" #include "glk.h" #include "glkproto.h" #include "report.h" diff --git a/server/drivers/hd44780-i2c.c b/server/drivers/hd44780-i2c.c index 5e2abc1..cf58dd9 100644 --- a/server/drivers/hd44780-i2c.c +++ b/server/drivers/hd44780-i2c.c @@ -53,7 +53,6 @@ #include "hd44780-i2c.h" #include "hd44780-low.h" -#include "shared/str.h" #include "report.h" #include #include diff --git a/server/drivers/hd44780-lis2.c b/server/drivers/hd44780-lis2.c index dd2e609..013e782 100644 --- a/server/drivers/hd44780-lis2.c +++ b/server/drivers/hd44780-lis2.c @@ -401,8 +401,8 @@ static void setLIS2Fans(int fd, int fan1, int fan2, int fan3, int fan4) /** * Write a character. - * \param fd File handle to write to. - * \param ch Character to write. + * \param fd File handle to write to. + * \param code Character to write. */ static void writeChar(int fd, unsigned char code) { diff --git a/server/drivers/hd44780.c b/server/drivers/hd44780.c index 368ef16..1027052 100644 --- a/server/drivers/hd44780.c +++ b/server/drivers/hd44780.c @@ -1428,7 +1428,7 @@ HD44780_output(Driver *drvthis, int on) * \param dispOffsets Array to store display offsets. * \param dOffsize Size of dispOffsets. * \param dispSizeArray Array of display vertical sizes (= spanlist). - * \param spanlist '\0'-terminated input span list in comma delimited format. + * \param spanlist '\\0'-terminated input span list in comma delimited format. * \return Number of span elements, -1 on parse error. */ static int diff --git a/server/drivers/i2500vfd.c b/server/drivers/i2500vfd.c index 5cb0aaf..ece5c4d 100644 --- a/server/drivers/i2500vfd.c +++ b/server/drivers/i2500vfd.c @@ -39,7 +39,6 @@ # include "config.h" #endif -#include "shared/str.h" #include "lcd.h" #include "i2500vfd.h" #include "report.h" diff --git a/server/drivers/imonlcd.c b/server/drivers/imonlcd.c index 6d53ba8..1855e83 100644 --- a/server/drivers/imonlcd.c +++ b/server/drivers/imonlcd.c @@ -1018,7 +1018,7 @@ imonlcd_output(Driver *drvthis, int state) icon |= IMON_ICON_OGG; break; case 3: - icon |= IMON_ICON_WMA; + icon |= IMON_ICON_WMA2; break; case 4: icon |= IMON_ICON_WAV; diff --git a/server/drivers/irmanin.c b/server/drivers/irmanin.c index ed4eac8..a5760df 100644 --- a/server/drivers/irmanin.c +++ b/server/drivers/irmanin.c @@ -27,7 +27,6 @@ #include "config.h" #endif -#include "shared/str.h" #include "lcd.h" #include "irmanin.h" #include "report.h" diff --git a/server/drivers/irtrans.c b/server/drivers/irtrans.c index e29c958..0d4df5d 100644 --- a/server/drivers/irtrans.c +++ b/server/drivers/irtrans.c @@ -45,7 +45,6 @@ #include #include "lcd.h" -#include "shared/str.h" #include "irtrans.h" #include "irtrans_remote.h" #include "irtrans_network.h" diff --git a/server/drivers/joy.c b/server/drivers/joy.c index 9fb7979..6cdc26c 100644 --- a/server/drivers/joy.c +++ b/server/drivers/joy.c @@ -39,7 +39,6 @@ #include "lcd.h" #include "joy.h" #include "report.h" -#include "shared/str.h" #define JOY_NAMELENGTH 128 #define JOY_DEFAULT_DEVICE "/dev/js0" diff --git a/server/drivers/lb216.c b/server/drivers/lb216.c index f4d8516..2ac4b9a 100644 --- a/server/drivers/lb216.c +++ b/server/drivers/lb216.c @@ -31,9 +31,7 @@ #include "lcd.h" #include "lb216.h" -#include "shared/str.h" #include "report.h" -//#include "drv_base.h" #define LB216_DEFAULT_DEVICE "/dev/lcd" #define LB216_DEFAULT_SPEED 9600 diff --git a/server/drivers/ms6931.c b/server/drivers/ms6931.c index 5fd3e85..3e0c2a2 100644 --- a/server/drivers/ms6931.c +++ b/server/drivers/ms6931.c @@ -50,7 +50,6 @@ #include "report.h" #include "lcd_lib.h" /* -#include "shared/str.h" #include "server/configfile.h" */ diff --git a/server/drivers/sed1520.c b/server/drivers/sed1520.c index 4252501..3b893a2 100644 --- a/server/drivers/sed1520.c +++ b/server/drivers/sed1520.c @@ -62,7 +62,6 @@ #define WR 0x01 #define IODELAY 500 -#include "shared/str.h" #include "lcd.h" #include "sed1520.h" #include "report.h" diff --git a/server/drivers/stv5730.c b/server/drivers/stv5730.c index 6de2f5c..1474a8e 100644 --- a/server/drivers/stv5730.c +++ b/server/drivers/stv5730.c @@ -38,7 +38,6 @@ # include "config.h" #endif -#include "shared/str.h" #include "lcd.h" #include "stv5730.h" #include "report.h" diff --git a/server/drivers/wirz-sli.c b/server/drivers/wirz-sli.c index b8f2ac7..eab8772 100644 --- a/server/drivers/wirz-sli.c +++ b/server/drivers/wirz-sli.c @@ -25,8 +25,6 @@ #include "report.h" #include "lcd_lib.h" -#include "shared/str.h" - #define SLI_DEFAULT_DEVICE "/dev/lcd" typedef enum { diff --git a/shared/LL.c b/shared/LL.c index 9b1bb49..4296f36 100644 --- a/shared/LL.c +++ b/shared/LL.c @@ -1,4 +1,4 @@ -/** \file LL.c +/** \file shared/LL.c * Define routines to deal with doubly linked lists */ @@ -91,7 +91,7 @@ LL_Destroy(LinkedList *list) } -/* Move to another entry in the list. +/** Move to another entry in the list. * Set list's \c current pointer to the node denoted to by \c whereto. * \param list List object. * \param whereto Direction where to set the list's \c current pointer @@ -127,7 +127,7 @@ LL_GoTo(LinkedList *list, Direction whereto) } -/* Return to the beginning of the list. +/** Return to the beginning of the list. * Set list's \c current pointer to the first node in the list. * \param list List object. * \retval <0 error: no list given @@ -530,7 +530,7 @@ LL_Remove(LinkedList *list, void *data, Direction whereto) * \retval 0 success */ int -LL_Push(LinkedList *list, void *add) // Add node to end of list +LL_Push(LinkedList *list, void *add) { if (!list) return -1; @@ -550,7 +550,7 @@ LL_Push(LinkedList *list, void *add) // Add node to end of list * \return Pointer to data of deleted node; \c NULL on error. */ void * -LL_Pop(LinkedList *list) // Remove node from end of list +LL_Pop(LinkedList *list) { if (!list) return NULL; @@ -568,7 +568,7 @@ LL_Pop(LinkedList *list) // Remove node from end of list * \return Pointer to last node's data; \c NULL on error. */ void * -LL_Top(LinkedList *list) // Peek at end node +LL_Top(LinkedList *list) { return LL_GetLast(list); } @@ -580,7 +580,7 @@ LL_Top(LinkedList *list) // Peek at end node * \return Pointer to data of deleted node; \c NULL on error. */ void * -LL_Shift(LinkedList *list) // Remove node from start of list +LL_Shift(LinkedList *list) { if (!list) return NULL; @@ -598,7 +598,7 @@ LL_Shift(LinkedList *list) // Remove node from start of list * \return Pointer to first node's data; \c NULL on error. */ void * -LL_Look(LinkedList *list) // Peek at first node +LL_Look(LinkedList *list) { return LL_GetFirst(list); } @@ -612,7 +612,7 @@ LL_Look(LinkedList *list) // Peek at first node * \retval 0 success */ int -LL_Unshift(LinkedList *list, void *add) // Add node to beginning of list +LL_Unshift(LinkedList *list, void *add) { if (!list) return -1; @@ -625,9 +625,14 @@ LL_Unshift(LinkedList *list, void *add) // Add node to beginning of list } -////////////////////////////////////////////////////////////////////// -// Add an item to the end of its "priority group" -// The list is assumed to be sorted already... +/** Add an item to the end of its "priority group" + * The list is assumed to be sorted already. + * \param list List object. + * \param add Pointer to new node's data. + * \param compare Pointer to a comparison function. + * \retval <0 error + * \retval 0 success + */ int LL_PriorityEnqueue(LinkedList *list, void *add, int (*compare)(void *, void *)) { @@ -661,9 +666,13 @@ LL_PriorityEnqueue(LinkedList *list, void *add, int (*compare)(void *, void *)) } -////////////////////////////////////////////////////////////////////// +/** Switch two nodes positions. + * \param one First list object. + * \param two Second list object. + * \return -1 on error, 0 on success + */ int -LL_SwapNodes(LL_node *one, LL_node *two) // Switch two nodes positions... +LL_SwapNodes(LL_node *one, LL_node *two) { LL_node *firstprev, *firstnext; LL_node *secondprev, *secondnext; diff --git a/shared/LL.h b/shared/LL.h index 4d599e3..9fe7803 100644 --- a/shared/LL.h +++ b/shared/LL.h @@ -1,3 +1,7 @@ +/** \file shared/LL.h + * Define routines to deal with doubly linked lists + */ + #ifndef LL_H #define LL_H diff --git a/shared/report.c b/shared/report.c index c741013..499eda0 100644 --- a/shared/report.c +++ b/shared/report.c @@ -1,6 +1,10 @@ -/* +/** \file shared/report.c + * Contains reporting functions. + */ + +/*- * report.c - * This file is part of LCDd, the lcdproc server. + * This file is part of LCDproc. * * This file is released under the GNU General Public License. Refer to the * COPYING file distributed with this package. @@ -8,14 +12,9 @@ * Copyright (c) 1999, William Ferrell, Scott Scriven * 2001, Joris Robijn * 2005, Peter Marschall - * - * Contains reporting functions - * */ #include -#include "report.h" - #include #include #include @@ -25,6 +24,8 @@ # include #endif +#include "report.h" + static int report_level = RPT_INFO; static int report_dest = RPT_DEST_STORE; diff --git a/shared/report.h b/shared/report.h index b9b30c7..92a955f 100644 --- a/shared/report.h +++ b/shared/report.h @@ -1,4 +1,8 @@ -/* +/** \file shared/report.h + * Contains reporting functions. + */ + +/*- * report.h * This file is part of LCDd, the lcdproc server. * @@ -13,7 +17,8 @@ #ifndef REPORT_H #define REPORT_H -/* DEBUGGING / REPORTING +/** DEBUGGING / REPORTING + *\verbatim * * To enable the debug() function on all of the software, just type: * ./configure --enable-debug @@ -53,6 +58,7 @@ * function. * The code that this function generates will not be in the executable when * compiled without debugging. This way memory and CPU cycles are saved. + *\endverbatim */ #ifdef HAVE_CONFIG_H diff --git a/shared/sockets.c b/shared/sockets.c index 91c8308..ed7bbd1 100644 --- a/shared/sockets.c +++ b/shared/sockets.c @@ -1,3 +1,13 @@ +/** \file shared/sockets.c + * Socket functions available to server and clients. + */ + +/*- + * This file is part of LCDproc. + * + * Feel free to use this in your own clients... :) + */ + #include #include #include @@ -24,17 +34,18 @@ #include "report.h" #include "sockets.h" -/************************************************** - LCDproc client sockets code... - - Feel free to use this in your own clients... :) -**************************************************/ - // Length of longest transmission allowed at once... #define MAXMSG 8192 typedef struct sockaddr_in sockaddr_in; +/** + * Tries to resolve a resolve a hostname. + * \param name Pointer to resolves IP-address + * \param hostname Hostname or IP-address (as string) + * \param port Port number + * \return 0 on success, -1 on error. + */ static int sock_init_sockaddr (sockaddr_in *name, const char *hostname, unsigned short int port) { @@ -51,10 +62,14 @@ sock_init_sockaddr (sockaddr_in *name, const char *hostname, unsigned short int name->sin_addr = *(struct in_addr *) hostinfo->h_addr; return 0; - } - // Client functions... +/** + * Connect to server. + * \param host Hostname or IP-address + * \param port Port number + * \return socket file descriptor on success, -1 on error + */ int sock_connect (char *host, unsigned short int port) { @@ -102,6 +117,11 @@ sock_connect (char *host, unsigned short int port) return sock; } +/** + * Disconnect from server. + * \param fd Socket file descriptor + * \return 0 on success, -1 on error. + */ int sock_close (int fd) { @@ -115,7 +135,13 @@ sock_close (int fd) } -/** send printf-like formatted output */ +/** + * Send printf-like formatted output. + * \param fd Socket file descriptor + * \param format Format string + * \param ... Arguments to the format string + * \return Number of bytes sent. + */ int sock_printf(int fd, const char *format, .../*args*/ ) { @@ -137,14 +163,26 @@ sock_printf(int fd, const char *format, .../*args*/ ) return sock_send_string(fd, buf); } -// Send/receive lines of text +/** + * Send lines of text. + * \param fd Socket file descriptor + * \param string Pointer to the string to send. + * \return Number of bytes sent. + */ int sock_send_string (int fd, char *string) { return sock_send(fd, string, strlen(string)); } -// Recv gives only one line per call... +/** + * Receive a line of text. + * Recv gives only one line per call... + * \param fd Socket file descriptor + * \param dest Pointer to buffer to store the received data + * \param maxlen Number of bytes to read at most (size of buffer) + * \return Number of bytes received. + */ int sock_recv_string (int fd, char *dest, size_t maxlen) { @@ -198,7 +236,13 @@ sock_recv_string (int fd, char *dest, size_t maxlen) return recvBytes; } -// Send/receive raw data +/** + * Send raw data. + * \param fd Socket file descriptor + * \param src Buffer holding the data to send + * \param size Number of bytes to send at most + * \return Number of bytes sent. + */ int sock_send (int fd, void *src, size_t size) { @@ -235,6 +279,13 @@ sock_send (int fd, void *src, size_t size) return offset; } +/** + * Receive raw data. + * \param fd Socket file descriptor + * \param dest Pointer to buffer to store the received data + * \param maxlen Number of bytes to read at most (size of buffer) + * \return Number of bytes received. + */ int sock_recv (int fd, void *dest, size_t maxlen) { @@ -262,6 +313,10 @@ sock_recv (int fd, void *dest, size_t maxlen) /*****************************************************************************/ +/** + * Return the error message for the last error occured. + * \return Error message string + */ char* sock_geterror(void) { @@ -295,21 +350,22 @@ sock_geterror(void) #endif } -/** prints error to logfile and sends it to the client. - * @param fd socket - * @param message the message to send (without the "huh? ") */ +/** + * Send an already formatted error message to the client. + * \param fd socket + * \param message the message to send (without the "huh? ") */ int sock_send_error(int fd, char* message) { // simple: performance penalty isn't worth more work... return sock_printf_error(fd, message); } -/** prints printf-like formatted output to logfile and sends it to the - * client. - * @note don't add a the "huh? " to the message. This is done by this +/** + * Print printf-like formatted output to logfile and sends it to the client. + * \note don't add a the "huh? " to the message. This is done by this * method - * @param fd socket - * @param format a printf format */ + * \param fd socket + * \param format a printf format */ int sock_printf_error(int fd, const char *format, .../*args*/ ) { diff --git a/shared/sockets.h b/shared/sockets.h index 04a8193..7c1fbb1 100644 --- a/shared/sockets.h +++ b/shared/sockets.h @@ -1,3 +1,7 @@ +/** \file shared/sockets.h + * Socket functions available to server and clients. + */ + #ifndef SOCKETS_H #define SOCKETS_H @@ -15,81 +19,27 @@ # define SHUT_RDWR 2 #endif -/* - Socket functions available to server and clients... - (ignore the rest of the comments... I was babbling out random ideas) - - This should have stuff to read/write sockets, open/close them, etc... - */ - -// Client functions... +/** Connect to server on host, port */ int sock_connect (char *host, unsigned short int port); +/** Disconnect from server */ int sock_close (int fd); -// Send/receive lines of text +/** Send printf-like formatted output */ int sock_printf (int fd, const char *format, .../*args*/); +/** Send lines of text */ int sock_send_string (int fd, char *string); -// Recv gives only one line per call... -int sock_recv_string (int fd, char *dest, size_t maxlen); -// Send/receive raw data +/** Send raw data */ int sock_send (int fd, void *src, size_t size); +/** Receive a line of text */ +int sock_recv_string (int fd, char *dest, size_t maxlen); +/** Receive raw data */ int sock_recv (int fd, void *dest, size_t maxlen); -/* Return error message string for the socket function */ + +/** Return the error message for the last error occured */ char *sock_geterror(void); +/** Send an already formatted error message to the client */ int sock_send_error(int fd, char* message); +/** Print printf-like formatted output to logfile and send it to the client */ int sock_printf_error(int fd, const char *format, .../*args*/); -// Er, ignore the rest of this file. I'll clean it up sometime... - -/***************************************************************** - LCDproc command line interface?: (while running) - - -command - Tells LCDproc to interpret stdin as raw commands to send through - the socket. Input must be formatted as above, in socket interface. - -function f - Runs LCDproc external function f, where f is one of the predefined - functions which can be assigned to keypad keys. (like NEXTMODE, etc) - -key x - Simulates keypad press of key 'x', where 'x' is (A-Z). - -print [time] - Prints stdin on LCD one line at a time, with no line-wrapping (raw), - with [time] frames between updates (lines). - -wrap [time] - Prints stdin as with "-print", but with line wrapping when possible. - -contrast xxx - Sets contrast to xxx (decimal) - -backlight [on/off] - Turns backlight [on/off/auto], or toggles it. - If [off], stays off. - If [on], stays on. - If [auto], LCDproc controls backlight based on load, etc... - -exit - -quit - Duh... :) - -******************************************************************/ - -/***************************************************************** - LCDproc stuff supported in config file (loose approximation): - - Grammar is tcl-style. I.e., "command arg1 arg2 ...". - Spaces are used as argument separators, *until* it thinks it has the final - argument. So, "function thing shell myprogram arg1 arg2 arg3" would be - split into "function", "thing", "shell", and "myprogram arg1 arg2 arg3". - - User-definable functions (use built-in's to create new ones?): - Function mp3NextSong Shell /usr/local/bin/mp3player -next - Function MySequence Sequence cpu mem xload - Function OtherSequence Sequence time cd xload - - Keypad keys can be bound to any _function_: - Key A mp3NextSong - Key B HaltSystem - Key C Menu - Key D Next/+ - Key E OtherSequence - -******************************************************************/ - #endif diff --git a/shared/str.c b/shared/str.c index cdc03b6..b737ce2 100644 --- a/shared/str.c +++ b/shared/str.c @@ -1,10 +1,29 @@ +/** \file shared/str.c + * Commmand / argument parsing functions (for use in clients). + */ + +/*- + * This file is part of LCDproc. + * + * This file is released under the GNU General Public License. + * Refer to the COPYING file distributed with this package. + */ + #include #include #include -#include "debug.h" +#include "report.h" #include "str.h" +/** Split elements of a string into an array of strings. + * Elements are typically commands and arguments. + * \param **argv Pointer to the array which will store the arguments + * \param *str The string to be parsed + * \param max_args Number of arguments to parse (typically the size of argv) + * \retval <0 Error. + * \retval >=0 The number of arguments parsed. + */ int get_args (char **argv, char *str, int max_args) { @@ -19,11 +38,11 @@ get_args (char **argv, char *str, int max_args) if (max_args < 1) return 0; - //debug("get_args(%i): string=%s", max_args, str); + debug(RPT_DEBUG, "get_args(%i): string=%s", max_args, str); - // Parse the command line... + /* Parse the command line... */ for (item = strtok (str, delimiters); item; item = strtok (NULL, delimiters)) { - //debug("get_args: item=%s", item); + debug(RPT_DEBUG, "get_args: item=%s", item); if (i < max_args) { argv[i] = item; i++; diff --git a/shared/str.h b/shared/str.h index a53a3a4..7207710 100644 --- a/shared/str.h +++ b/shared/str.h @@ -1,3 +1,7 @@ +/** \file shared/str.h + * Commmand / argument parsing functions (for use in clients). + */ + #ifndef STR_H #define STR_H