[Pommed-commits] r305 - in trunk/pommed: . mactel
Julien Blache
jblache at alioth.debian.org
Sun Apr 15 14:35:32 UTC 2007
Author: jblache
Date: 2007-04-15 14:35:32 +0000 (Sun, 15 Apr 2007)
New Revision: 305
Modified:
trunk/pommed/kbd_backlight.h
trunk/pommed/mactel/kbd_backlight.c
Log:
Add keyboard backlight fading for automatic keyboard backlight.
Modified: trunk/pommed/kbd_backlight.h
===================================================================
--- trunk/pommed/kbd_backlight.h 2007-04-14 19:07:12 UTC (rev 304)
+++ trunk/pommed/kbd_backlight.h 2007-04-15 14:35:32 UTC (rev 305)
@@ -23,6 +23,9 @@
#define KBD_BACKLIGHT_OFF 0
#define KBD_BACKLIGHT_MAX 255
+/* fading duration in milliseconds */
+#define KBD_BACKLIGHT_FADE_LENGTH 350
+#define KBD_BACKLIGHT_FADE_STEPS 20
#define KBD_INHIBIT_USER (1 << 0)
#define KBD_INHIBIT_LID (1 << 1)
Modified: trunk/pommed/mactel/kbd_backlight.c
===================================================================
--- trunk/pommed/mactel/kbd_backlight.c 2007-04-14 19:07:12 UTC (rev 304)
+++ trunk/pommed/mactel/kbd_backlight.c 2007-04-15 14:35:32 UTC (rev 305)
@@ -26,6 +26,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
+#include <time.h>
#include <syslog.h>
@@ -87,6 +88,11 @@
{
int curval;
+ int i;
+ float tmpval;
+ float step;
+ struct timespec fade_step;
+
FILE *fp;
if (kbd_bck_info.inhibit)
@@ -100,6 +106,35 @@
if ((val < KBD_BACKLIGHT_OFF) || (val > KBD_BACKLIGHT_MAX))
return;
+ if (who == KBD_AUTO)
+ {
+ fade_step.tv_sec = 0;
+ fade_step.tv_nsec = (KBD_BACKLIGHT_FADE_LENGTH / KBD_BACKLIGHT_FADE_STEPS) * 1000000;
+
+ tmpval = (float)curval;
+ step = (float)(val - tmpval) / (float)KBD_BACKLIGHT_FADE_STEPS;
+
+ for (i = 0; i < KBD_BACKLIGHT_FADE_STEPS; i++)
+ {
+ tmpval += step;
+
+ fp = fopen(KBD_BACKLIGHT, "a");
+ if (fp == NULL)
+ {
+ logmsg(LOG_WARNING, "Could not open %s: %s", KBD_BACKLIGHT, strerror(errno));
+ continue;
+ }
+
+ fprintf(fp, "%d", (int)tmpval);
+
+ fclose(fp);
+
+ logdebug("KBD backlight value faded to %d\n", (int)tmpval);
+
+ nanosleep(&fade_step, NULL);
+ }
+ }
+
fp = fopen(KBD_BACKLIGHT, "a");
if (fp == NULL)
{
More information about the Pommed-commits
mailing list