2007-02-28 13:32:43 +00:00
|
|
|
diff -ruNp lcdproc-0.5.1-orig/server/drivers/CFontz633.c lcdproc-0.5.1-working/server/drivers/CFontz633.c
|
|
|
|
|
--- lcdproc-0.5.1-orig/server/drivers/CFontz633.c 2006-10-06 03:02:47.000000000 -0400
|
|
|
|
|
+++ lcdproc-0.5.1-working/server/drivers/CFontz633.c 2007-02-23 11:55:05.000000000 -0500
|
|
|
|
|
@@ -124,6 +124,9 @@ static void CFontz633_hidecursor (Driver
|
|
|
|
|
static void CFontz633_reboot (Driver *drvthis);
|
2006-02-25 18:23:24 +00:00
|
|
|
static void CFontz633_no_live_report (Driver *drvthis);
|
|
|
|
|
static void CFontz633_hardware_clear (Driver *drvthis);
|
|
|
|
|
+#ifndef OPT //store boot screen
|
|
|
|
|
+static void CFontz633_store_boot_state (Driver *drvthis);
|
|
|
|
|
+#endif //OPT
|
|
|
|
|
|
|
|
|
|
|
2007-02-28 13:32:43 +00:00
|
|
|
/**
|
2007-04-14 18:00:26 +00:00
|
|
|
@@ -303,6 +306,19 @@ CFontz633_init (Driver *drvthis)
|
2007-02-28 13:32:43 +00:00
|
|
|
CFontz633_no_live_report(drvthis);
|
|
|
|
|
CFontz633_hardware_clear(drvthis);
|
2006-02-25 18:23:24 +00:00
|
|
|
|
|
|
|
|
+#ifndef OPT //store boot screen
|
|
|
|
|
+ /* get and store the power on boot line, repurposing the "size" buffer */
|
|
|
|
|
+ strncpy(size, drvthis->config_get_string (drvthis->name, "BootDisplay", 0, "" ), sizeof(size));
|
|
|
|
|
+ if ( size[0] ) {
|
|
|
|
|
+ CFontz633_string (drvthis, 1, 1, size);
|
2007-02-28 13:32:43 +00:00
|
|
|
+ if ( strlen(size) > p->width ) {
|
|
|
|
|
+ CFontz633_string (drvthis, 1, 2, size + p->width);
|
|
|
|
|
+ }
|
2006-02-25 18:23:24 +00:00
|
|
|
+ CFontz633_flush (drvthis);
|
|
|
|
|
+ CFontz633_store_boot_state (drvthis);
|
|
|
|
|
+ }
|
|
|
|
|
+#endif //OPT
|
|
|
|
|
+
|
2007-02-28 13:32:43 +00:00
|
|
|
report(RPT_DEBUG, "%s: init() done", drvthis->name);
|
2006-02-25 18:23:24 +00:00
|
|
|
|
|
|
|
|
return 0;
|
2007-04-14 18:00:26 +00:00
|
|
|
@@ -1077,3 +1093,15 @@ CFontz633_string (Driver *drvthis, int x
|
2006-02-25 18:23:24 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
+#ifndef OPT //store boot screen
|
|
|
|
|
+/*
|
|
|
|
|
+ * Saves current state as boot state
|
|
|
|
|
+ */
|
|
|
|
|
+static void
|
|
|
|
|
+CFontz633_store_boot_state (Driver *drvthis)
|
|
|
|
|
+{
|
|
|
|
|
+ PrivateData *p = drvthis->private_data;
|
|
|
|
|
+
|
|
|
|
|
+ send_zerobyte_message(p->fd, CF633_Store_Current_State_As_Boot_State);
|
|
|
|
|
+}
|
|
|
|
|
+#endif //OPT
|
2007-02-28 13:32:43 +00:00
|
|
|
diff -ruNp lcdproc-0.5.1-orig/server/menuscreens.c lcdproc-0.5.1-working/server/menuscreens.c
|
|
|
|
|
--- lcdproc-0.5.1-orig/server/menuscreens.c 2006-10-06 03:02:47.000000000 -0400
|
|
|
|
|
+++ lcdproc-0.5.1-working/server/menuscreens.c 2007-02-26 11:57:39.000000000 -0500
|
|
|
|
|
@@ -48,6 +48,10 @@ char * down_key;
|
2007-04-14 18:00:26 +00:00
|
|
|
char *left_key;
|
|
|
|
|
char *right_key;
|
2006-02-25 18:23:24 +00:00
|
|
|
|
|
|
|
|
+#ifndef OPT
|
|
|
|
|
+char * menuname; /* the name for the default menu */
|
2007-02-28 13:32:43 +00:00
|
|
|
+char * menuentryname; /* the name for the default menu's entry */
|
2006-02-25 18:23:24 +00:00
|
|
|
+#endif //OPT
|
2007-04-14 18:00:26 +00:00
|
|
|
Screen *menuscreen = NULL;
|
|
|
|
|
MenuItem *active_menuitem = NULL;
|
2006-02-25 18:23:24 +00:00
|
|
|
/** the "real" main_menu */
|
2007-02-28 13:32:43 +00:00
|
|
|
@@ -91,6 +95,11 @@ int menuscreens_init()
|
2006-02-25 18:23:24 +00:00
|
|
|
if (tmp)
|
|
|
|
|
right_key = strdup(tmp);
|
2007-02-28 13:32:43 +00:00
|
|
|
|
2006-02-25 18:23:24 +00:00
|
|
|
+#ifndef OPT //get main menu name and hybrid keys from config file
|
|
|
|
|
+ /* Get main menu name from config file */
|
|
|
|
|
+ menuname = strdup (config_get_string ("menu", "menuname", 0, "LCDproc Menu"));
|
2007-02-28 13:32:43 +00:00
|
|
|
+ menuentryname = strdup (config_get_string ("menu", "menuentryname", 0, "Options"));
|
2006-02-25 18:23:24 +00:00
|
|
|
+#endif //OPT
|
2007-02-28 13:32:43 +00:00
|
|
|
|
2006-02-25 18:23:24 +00:00
|
|
|
/* Now reserve keys */
|
2007-04-14 18:00:26 +00:00
|
|
|
input_reserve_key(menu_key, true, NULL);
|
2007-02-28 13:32:43 +00:00
|
|
|
@@ -387,7 +396,13 @@ void menuscreen_key_handler (const char
|
|
|
|
|
/* Is the menu already active ? */
|
|
|
|
|
if (!active_menuitem) {
|
2007-04-14 18:00:26 +00:00
|
|
|
debug(RPT_DEBUG, "%s: Activating menu screen", __FUNCTION__);
|
2007-02-28 13:32:43 +00:00
|
|
|
- menuscreen_switch_item(menuscreen_get_main());
|
|
|
|
|
+ Menu *main = menuscreen_get_main();
|
|
|
|
|
+ /* Don't display an empty menu */
|
|
|
|
|
+ if (!main || !LL_Get(main->data.menu.contents)) {
|
|
|
|
|
+ debug (RPT_DEBUG, "%s: Ignoring empty menu", __FUNCTION__);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ menuscreen_switch_item(main);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -437,55 +452,62 @@ void menuscreen_create_menu ()
|
2006-02-25 18:23:24 +00:00
|
|
|
|
2007-04-14 18:00:26 +00:00
|
|
|
debug(RPT_DEBUG, "%s()", __FUNCTION__);
|
2006-02-25 18:23:24 +00:00
|
|
|
|
|
|
|
|
+#ifndef OPT //main menu name from config file
|
|
|
|
|
+ main_menu = menu_create ("mainmenu", NULL, menuname, NULL);
|
|
|
|
|
+#else //OPT
|
2007-04-14 18:00:26 +00:00
|
|
|
main_menu = menu_create("mainmenu", NULL, "LCDproc Menu", NULL);
|
2006-02-25 18:23:24 +00:00
|
|
|
+#endif //OPT
|
|
|
|
|
|
2007-04-14 18:00:26 +00:00
|
|
|
- options_menu = menu_create("options", NULL, "Options", NULL);
|
|
|
|
|
- menu_add_item(main_menu, options_menu);
|
2006-02-25 18:23:24 +00:00
|
|
|
-
|
|
|
|
|
-#ifdef LCDPROC_TESTMENUS
|
2007-04-14 18:00:26 +00:00
|
|
|
- screens_menu = menu_create("screens", NULL, "Screens", NULL);
|
|
|
|
|
- menu_add_item(main_menu, screens_menu);
|
2006-02-25 18:23:24 +00:00
|
|
|
-#endif /*LCDPROC_TESTMENUS*/
|
|
|
|
|
-
|
|
|
|
|
- /* menu's client is NULL since we're in the server */
|
2007-04-14 18:00:26 +00:00
|
|
|
- checkbox = menuitem_create_checkbox("heartbeat", heartbeat_handler, "Heartbeat", NULL, true, heartbeat);
|
|
|
|
|
- menu_add_item(options_menu, checkbox);
|
2006-02-25 18:23:24 +00:00
|
|
|
-
|
|
|
|
|
- /* menu's client is NULL since we're in the server */
|
2007-04-14 18:00:26 +00:00
|
|
|
- checkbox = menuitem_create_checkbox("backlight", backlight_handler, "Backlight", NULL, true, backlight);
|
|
|
|
|
- menu_add_item(options_menu, checkbox);
|
2007-02-28 13:32:43 +00:00
|
|
|
-
|
|
|
|
|
- for (driver = drivers_getfirst(); driver; driver = drivers_getnext()) {
|
|
|
|
|
- int contrast_avail = (driver->get_contrast && driver->set_contrast) ? 1 : 0;
|
|
|
|
|
- int brightness_avail = (driver->get_brightness && driver->set_brightness) ? 1 : 0;
|
|
|
|
|
-
|
|
|
|
|
- if (contrast_avail || brightness_avail) {
|
|
|
|
|
- /* menu's client is NULL since we're in the server */
|
2007-04-14 18:00:26 +00:00
|
|
|
- driver_menu = menu_create(driver->name, NULL, driver->name, NULL);
|
2007-02-28 13:32:43 +00:00
|
|
|
- menu_set_association(driver_menu, driver);
|
2007-04-14 18:00:26 +00:00
|
|
|
- menu_add_item(options_menu, driver_menu);
|
2007-02-28 13:32:43 +00:00
|
|
|
- if (contrast_avail) {
|
|
|
|
|
- int contrast = driver->get_contrast(driver);
|
|
|
|
|
+#ifndef OPT
|
2007-04-14 18:00:26 +00:00
|
|
|
+ if (config_get_bool("server", "LCDOptionsMenu", 0, 0)) {
|
|
|
|
|
+ options_menu = menu_create("options", NULL, menuentryname, NULL);
|
|
|
|
|
+ menu_add_item(main_menu, options_menu);
|
2006-02-25 18:23:24 +00:00
|
|
|
+
|
|
|
|
|
+ /* menu's client is NULL since we're in the server */
|
2007-04-14 18:00:26 +00:00
|
|
|
+ checkbox = menuitem_create_checkbox("heartbeat", heartbeat_handler, "Heartbeat", NULL, true, heartbeat);
|
|
|
|
|
+ menu_add_item(options_menu, checkbox);
|
2006-02-25 18:23:24 +00:00
|
|
|
+
|
|
|
|
|
+ /* menu's client is NULL since we're in the server */
|
2007-04-14 18:00:26 +00:00
|
|
|
+ checkbox = menuitem_create_checkbox("backlight", backlight_handler, "Backlight", NULL, true, backlight);
|
|
|
|
|
+ menu_add_item(options_menu, checkbox);
|
2006-02-25 18:23:24 +00:00
|
|
|
+
|
|
|
|
|
+ for (driver = drivers_getfirst(); driver; driver = drivers_getnext()) {
|
|
|
|
|
+ int contrast_avail = (driver->get_contrast && driver->set_contrast) ? 1 : 0;
|
|
|
|
|
+ int brightness_avail = (driver->get_brightness && driver->set_brightness) ? 1 : 0;
|
|
|
|
|
|
|
|
|
|
+ if (contrast_avail || brightness_avail) {
|
|
|
|
|
/* menu's client is NULL since we're in the server */
|
2007-04-14 18:00:26 +00:00
|
|
|
- slider = menuitem_create_slider("contrast", contrast_handler, "Contrast",
|
2006-02-25 18:23:24 +00:00
|
|
|
- NULL, "min", "max", 0, 1000, 25, contrast);
|
2007-04-14 18:00:26 +00:00
|
|
|
- menu_add_item(driver_menu, slider);
|
2006-02-25 18:23:24 +00:00
|
|
|
- }
|
|
|
|
|
- if (brightness_avail) {
|
2007-04-14 18:00:26 +00:00
|
|
|
- int onbrightness = driver->get_brightness(driver, BACKLIGHT_ON);
|
|
|
|
|
- int offbrightness = driver->get_brightness(driver, BACKLIGHT_OFF);
|
2007-02-28 13:32:43 +00:00
|
|
|
-
|
2007-04-14 18:00:26 +00:00
|
|
|
- slider = menuitem_create_slider("onbrightness", brightness_handler, "On Brightness",
|
2006-02-25 18:23:24 +00:00
|
|
|
- NULL, "min", "max", 0, 1000, 25, onbrightness);
|
2007-04-14 18:00:26 +00:00
|
|
|
- menu_add_item(driver_menu, slider);
|
2006-02-25 18:23:24 +00:00
|
|
|
-
|
2007-04-14 18:00:26 +00:00
|
|
|
- slider = menuitem_create_slider("offbrightness", brightness_handler, "Off Brightness",
|
2006-02-25 18:23:24 +00:00
|
|
|
- NULL, "min", "max", 0, 1000, 25, offbrightness);
|
2007-04-14 18:00:26 +00:00
|
|
|
- menu_add_item(driver_menu, slider);
|
|
|
|
|
+ driver_menu = menu_create(driver->name, NULL, driver->name, NULL);
|
2006-02-25 18:23:24 +00:00
|
|
|
+ menu_set_association(driver_menu, driver);
|
2007-04-14 18:00:26 +00:00
|
|
|
+ menu_add_item(options_menu, driver_menu);
|
2006-02-25 18:23:24 +00:00
|
|
|
+ if (contrast_avail) {
|
|
|
|
|
+ int contrast = driver->get_contrast(driver);
|
|
|
|
|
+
|
|
|
|
|
+ /* menu's client is NULL since we're in the server */
|
2007-04-14 18:00:26 +00:00
|
|
|
+ slider = menuitem_create_slider("contrast", contrast_handler, "Contrast",
|
2007-02-28 13:32:43 +00:00
|
|
|
+ NULL, "min", "max", 0, 1000, 25, contrast);
|
2007-04-14 18:00:26 +00:00
|
|
|
+ menu_add_item(driver_menu, slider);
|
2006-02-25 18:23:24 +00:00
|
|
|
+ }
|
|
|
|
|
+ if (brightness_avail) {
|
2007-04-14 18:00:26 +00:00
|
|
|
+ int onbrightness = driver->get_brightness(driver, BACKLIGHT_ON);
|
|
|
|
|
+ int offbrightness = driver->get_brightness(driver, BACKLIGHT_OFF);
|
2006-02-25 18:23:24 +00:00
|
|
|
+
|
2007-04-14 18:00:26 +00:00
|
|
|
+ slider = menuitem_create_slider("onbrightness", brightness_handler, "On Brightness",
|
2007-02-28 13:32:43 +00:00
|
|
|
+ NULL, "min", "max", 0, 1000, 25, onbrightness);
|
2007-04-14 18:00:26 +00:00
|
|
|
+ menu_add_item(driver_menu, slider);
|
2006-02-25 18:23:24 +00:00
|
|
|
+
|
2007-04-14 18:00:26 +00:00
|
|
|
+ slider = menuitem_create_slider("offbrightness", brightness_handler, "Off Brightness",
|
2007-02-28 13:32:43 +00:00
|
|
|
+ NULL, "min", "max", 0, 1000, 25, offbrightness);
|
2007-04-14 18:00:26 +00:00
|
|
|
+ menu_add_item(driver_menu, slider);
|
2006-02-25 18:23:24 +00:00
|
|
|
+ }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2007-04-14 18:00:26 +00:00
|
|
|
+ if (config_get_bool("server", "LCDScreensMenu", 0, 0)) {
|
|
|
|
|
+ screens_menu = menu_create("screens", NULL, "Screens", NULL);
|
|
|
|
|
+ menu_add_item(main_menu, screens_menu);
|
2006-02-25 18:23:24 +00:00
|
|
|
+ }
|
|
|
|
|
+#endif //OPT
|
|
|
|
|
|
|
|
|
|
#ifdef LCDPROC_TESTMENUS
|
2007-04-14 18:00:26 +00:00
|
|
|
test_menu = menu_create("test", NULL, "Test menu", NULL);
|
2007-02-28 13:32:43 +00:00
|
|
|
diff -ruNp lcdproc-0.5.1-orig/server/serverscreens.c lcdproc-0.5.1-working/server/serverscreens.c
|
|
|
|
|
--- lcdproc-0.5.1-orig/server/serverscreens.c 2006-10-06 03:02:47.000000000 -0400
|
|
|
|
|
+++ lcdproc-0.5.1-working/server/serverscreens.c 2007-02-23 11:48:56.000000000 -0500
|
2007-04-14 18:00:26 +00:00
|
|
|
@@ -33,6 +33,12 @@
|
2007-02-28 13:32:43 +00:00
|
|
|
#include "main.h"
|
2006-02-25 18:23:24 +00:00
|
|
|
#include "serverscreens.h"
|
|
|
|
|
|
|
|
|
|
+#ifndef OPT //startup screen title from config
|
|
|
|
|
+#include "shared/configfile.h"
|
|
|
|
|
+
|
|
|
|
|
+char * title;
|
|
|
|
|
+#endif //OPT
|
|
|
|
|
+
|
|
|
|
|
#define UNSET_INT -1
|
|
|
|
|
|
|
|
|
|
#define MAX_SERVERSCREEN_WIDTH 40
|
2007-04-14 18:00:26 +00:00
|
|
|
@@ -50,6 +56,11 @@
|
2006-02-25 18:23:24 +00:00
|
|
|
|
2007-04-14 18:00:26 +00:00
|
|
|
debug(RPT_DEBUG, "server_screen_init");
|
2006-02-25 18:23:24 +00:00
|
|
|
|
|
|
|
|
+#ifndef OPT //startup screen title from config
|
|
|
|
|
+ /* Get server title name from config file */
|
2007-04-14 18:00:26 +00:00
|
|
|
+ title = strdup(config_get_string("server", "title", 0, "LCDproc Server"));
|
2006-02-25 18:23:24 +00:00
|
|
|
+#endif //OPT
|
|
|
|
|
+
|
|
|
|
|
/* Create the screen */
|
2007-04-14 18:00:26 +00:00
|
|
|
server_screen = screen_create("_server_screen", NULL);
|
2006-02-25 18:23:24 +00:00
|
|
|
if (!server_screen) {
|
2007-04-14 18:00:26 +00:00
|
|
|
@@ -81,7 +92,11 @@
|
|
|
|
|
w->text = malloc(MAX_SERVERSCREEN_WIDTH+1);
|
2006-02-25 18:23:24 +00:00
|
|
|
if (line == 1) {
|
|
|
|
|
w->type = WID_TITLE;
|
|
|
|
|
+#ifndef OPT //startup screen titel from config
|
2007-04-14 18:00:26 +00:00
|
|
|
+ strncpy(w->text, title, MAX_SERVERSCREEN_WIDTH);
|
2006-02-25 18:23:24 +00:00
|
|
|
+#else //OPT
|
2007-04-14 18:00:26 +00:00
|
|
|
strncpy(w->text, "LCDproc Server", MAX_SERVERSCREEN_WIDTH);
|
2006-02-25 18:23:24 +00:00
|
|
|
+#endif //OPT
|
|
|
|
|
} else {
|
2007-04-14 18:00:26 +00:00
|
|
|
w->text[0] = '\0';
|
2006-02-25 18:23:24 +00:00
|
|
|
}
|