Add an option to start LCDd with screen rotation disabled.

This commit is contained in:
mmdolze
2011-01-19 19:08:37 +00:00
parent 561744a3cc
commit f021cc8327
6 changed files with 42 additions and 16 deletions
+2 -1
View File
@@ -11,6 +11,7 @@ v.0.5dev (ongoing development)
* Reset ccmode on screen clear for NoritakeVFD, tyan driver
* All drivers: Refactor CGmode enum into lcd.h
* hd44780: New (possible faster) screen update algorithm
+ Add an option to start LCDd with screen rotation disabled (M. Zanetti)
v0.5.4
* Update driver includes and LDFLAGS (fixed glk and bayrad binding error)
@@ -187,7 +188,7 @@ v.0.5.1
* more options in lcdproc's config file lcdproc.conf:
+ time and date formats can be changed using strftime formats
+ Load screen's LowLoad & HighLoad thresholds
* revamped lcdexec's menu configuration
* revamped lcdexec's menu configuration
* various little fixes
v0.5.0
+6
View File
@@ -82,6 +82,12 @@ User=nobody
# Sets the default time in seconds to displays a screen.
WaitTime=5
# If set to no, LCDd will start with screen rotation disabled. This has the
# same effect as if the ToggleRotateKey had been pressed. Rotation will start
# if the ToggleRotateKey is pressed. Note that this setting does not turn off
# priority sorting of screens. [default: on; legal: on, off]
#AutoRotate=no
# If yes, the the serverscreen will be rotated as a usual info screen. If no,
# it will be a background screen, only visible when no other screens are
# active. The special value 'blank' is similar to no, but only a blank screen
+23
View File
@@ -369,6 +369,29 @@ settings for the LCDproc server <application>LCDd</application>.
</listitem>
</varlistentry>
<varlistentry>
<term>
<property>AutoRotate</property> = &parameters.yesdefno;
</term>
<listitem>
<para>
If set to <literal>no</literal>, LCDd will start with screen rotation disabled.
This has the same effect as if the ToggleRotateKey had been pressed.
Rotation will start if the ToggleRotateKey is pressed.
</para>
<note>
<para>
This setting does not turn off priority sorting of screens. Therefore
the client or LCDd may still show a different screen if it assigns it
a higher priority than any other screen. Due to the way priority
sorting works the screen shown when the first client connects may not
be that clients first screen. If the client sets up more than two
screens it will be the next to last one (this is not considered a bug).
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<property>ServerScreen</property> =
+5 -4
View File
@@ -88,10 +88,7 @@
#define DEFAULT_BACKLIGHT BACKLIGHT_OPEN
#define DEFAULT_HEARTBEAT HEARTBEAT_OPEN
#define DEFAULT_TITLESPEED TITLESPEED_MAX
/* All variables are set to 'unset' values*/
#define UNSET_INT -1
#define UNSET_STR "\01"
#define DEFAULT_AUTOROTATE AUTOROTATE_ON
/* Socket to bind to...
@@ -444,6 +441,10 @@ process_configfile(char *configfile)
heartbeat = config_get_tristate("Server", "Heartbeat", 0, "open", UNSET_INT);
}
if (autorotate == UNSET_INT) {
autorotate = config_get_bool("Server", "AutoRotate", 0, DEFAULT_AUTOROTATE);
}
if (titlespeed == UNSET_INT) {
int speed = config_get_int("Server", "TitleSpeed", 0, DEFAULT_TITLESPEED);
+3 -3
View File
@@ -26,7 +26,7 @@
/* Local functions */
int compare_priority(void *one, void *two);
bool autorotate = 1; /* If on, INFO and FOREGROUND screens will rotate */
bool autorotate = UNSET_INT; /* If on, INFO and FOREGROUND screens will rotate */
LinkedList *screenlist = NULL;
Screen *current_screen = NULL;
long int current_screen_start_time = 0;
@@ -103,8 +103,7 @@ screenlist_process(void)
if (!screenlist)
return;
/* Sort the list acfording to priority class */
/* Sort the list according to priority class */
LL_Sort(screenlist, compare_priority);
f = LL_GetFirst(screenlist);
@@ -147,6 +146,7 @@ screenlist_process(void)
* current one ? */
if (f->priority > s->priority) {
/* Yes, switch to that screen, job done */
report(RPT_DEBUG, "%s: High priority screen [%.40s] selected", __FUNCTION__, f->id);
screenlist_switch(f);
return;
}
+3 -8
View File
@@ -15,15 +15,10 @@
#include "screen.h"
#define SCR_HOLD 1
#define SCR_SKIP 2
#define SCR_BACK 3
#define RENDER_HOLD 11
#define RENDER_SKIP 12
#define RENDER_BACK 13
#define AUTOROTATE_OFF 0
#define AUTOROTATE_ON 1
/*extern int screenlist_action;*/
extern bool autorotate;
extern bool autorotate; /**< If enabled, screens will rotate */
int screenlist_init(void);
/* Initializes the screenlist. */