diff --git a/server/main.c b/server/main.c index 97856ac..9338614 100644 --- a/server/main.c +++ b/server/main.c @@ -434,7 +434,7 @@ process_configfile(char *configfile) } if (rotate_server_screen == UNSET_INT) { - rotate_server_screen = config_get_tristate("Server", "ServerScreen", 0, "never", UNSET_INT); + rotate_server_screen = config_get_tristate("Server", "ServerScreen", 0, "blank", UNSET_INT); } if (backlight == UNSET_INT) { diff --git a/server/serverscreens.c b/server/serverscreens.c index 6fdb226..e6e83a2 100644 --- a/server/serverscreens.c +++ b/server/serverscreens.c @@ -1,5 +1,8 @@ +/** \file serverscreens.c + * Implement the serverscreens. + */ + /* - * serverscreens.c * This file is part of LCDd, the lcdproc server. * * This file is released under the GNU General Public License. Refer to the @@ -9,9 +12,6 @@ * 2002, Joris Robijn * 2007, Peter Marschall * - * - * Implements the serverscreens - * */ #include @@ -35,18 +35,22 @@ #include "serverscreens.h" +/* global variables */ Screen *server_screen = NULL; int rotate_server_screen = UNSET_INT; +/* file-local variables */ +static int has_hello_msg = 0; int server_screen_init(void) { Widget *w; int i; - int has_hello_msg = config_has_key("Server", "Hello"); - debug(RPT_DEBUG, "server_screen_init"); + has_hello_msg = config_has_key("Server", "Hello"); + + debug(RPT_DEBUG, "%s()", __FUNCTION__); /* Create the screen */ server_screen = screen_create("_server_screen", NULL); @@ -57,12 +61,8 @@ server_screen_init(void) server_screen->name = "Server screen"; server_screen->duration = RENDER_FREQ; /* 1 second, instead of 4...*/ server_screen->heartbeat = (has_hello_msg) ? HEARTBEAT_OFF : HEARTBEAT_OPEN; - - if ((rotate_server_screen == UNSET_INT) || (rotate_server_screen == 1)) { - server_screen->priority = PRI_INFO; - } else { - server_screen->priority = PRI_BACKGROUND; - } + server_screen->priority = (rotate_server_screen == SERVERSCREEN_ON) + ? PRI_INFO : PRI_BACKGROUND; /* Create all the widgets...*/ for (i = 0; i < display_props->height; i++) { @@ -70,7 +70,7 @@ server_screen_init(void) sprintf(id, "line%d", i+1); w = widget_create(id, WID_STRING, server_screen); - if (!w) { + if (w == NULL) { report(RPT_ERR, "server_screen_init: Can't create a widget"); return -1; } @@ -118,39 +118,38 @@ server_screen_shutdown(void) int update_server_screen(void) { + static int hello_done = 0; Client *c; Widget *w; - int num_clients; - int num_screens; - static int use_default = 0; + int num_clients = 0; + int num_screens = 0; - /* Now get info on the number of connected clients...*/ + /* get info on the number of connected clients...*/ num_clients = clients_client_count(); /* turn off the Hello message after the first client onnected */ - if (!use_default && config_has_key("Server", "Hello")) { + if (has_hello_msg && !hello_done) { if (num_clients != 0) { - if (!use_default) { + if (!hello_done) { server_screen->heartbeat = HEARTBEAT_OPEN; w = screen_find_widget(server_screen, "line1"); w->type = WID_TITLE; strncpy(w->text, "LCDproc Server", LCD_MAX_WIDTH); } - use_default = 1; + hello_done = 1; } - if (!use_default) + if (!hello_done) return 0; } /* ... and screens */ - num_screens = 0; for (c = clients_getfirst(); c != NULL; c = clients_getnext()) { num_screens += client_screen_count(c); } - /* Format strings for the appropriate size display... */ - if (display_props->height >= 3) { + /* format strings for the appropriate display size ... */ + if (display_props->height >= 3) { /* >2-line display */ w = screen_find_widget(server_screen, "line2"); if (w != NULL) { snprintf(w->text, LCD_MAX_WIDTH, @@ -162,7 +161,7 @@ update_server_screen(void) snprintf(w->text, LCD_MAX_WIDTH, "Screens: %i", num_screens); } - } else { + } else { /* 2-line display */ w = screen_find_widget(server_screen, "line2"); if (w != NULL) { snprintf(w->text, LCD_MAX_WIDTH, diff --git a/server/serverscreens.h b/server/serverscreens.h index d101237..adfe3ed 100644 --- a/server/serverscreens.h +++ b/server/serverscreens.h @@ -1,5 +1,8 @@ +/** \file serverscreens.h + * Interface for the serverscreen implementation + */ + /* - * serverscreens.h * This file is part of LCDd, the lcdproc server. * * This file is released under the GNU General Public License. Refer to the @@ -17,7 +20,7 @@ /* server screen rotation states */ #define SERVERSCREEN_OFF 0 /* show server screen in rotation */ #define SERVERSCREEN_ON 1 /* show server sreen only when there is no other screen */ -#define SERVERSCREEN_NEVER 2 /* don't rotate, and only show a blank screen [not implemented] */ +#define SERVERSCREEN_BLANK 2 /* don't rotate, and only show a blank screen [not implemented] */ extern Screen *server_screen;