1
From b25c5a58c688476e70244980005fa596611ab59f Mon Sep 17 00:00:00 2001
2
From: Ali Abdallah <aliov@xfce.org>
3
Date: Tue, 02 Mar 2010 17:21:00 +0000
4
Subject: Handle weired negative brightness level reported by HAL on some systems.
7
diff --git a/src/xfpm-brightness-hal.c b/src/xfpm-brightness-hal.c
8
index 0b0c7d3..7b0c051 100644
9
--- a/src/xfpm-brightness-hal.c
10
+++ b/src/xfpm-brightness-hal.c
11
@@ -61,9 +61,9 @@ struct XfpmBrightnessHalPrivate
13
XfpmScreenSaver *saver;
21
gboolean brightness_in_hw;
24
@@ -180,6 +180,16 @@ xfpm_brightness_hal_read_hal_level (XfpmBrightnessHal *brg)
25
g_warning ("Error getting brightness level: %s\n", error->message);
30
+ * Sometimes HAL send us negative values, it seems to be
31
+ * a bug in rounding in bash shell
33
+ if (brg->priv->hw_level < 0)
35
+ g_warning ("Negative value returned by HAL, assuming 0");
36
+ brg->priv->hw_level = 0;
41
@@ -231,7 +241,6 @@ xfpm_brightness_hal_up (XfpmBrightnessHal *brg)
44
xfpm_brightness_hal_read_hal_level (brg);
47
g_signal_emit (G_OBJECT (brg), signals [BRIGHTNESS_UP], 0, brg->priv->hw_level);
49
@@ -248,7 +257,7 @@ xfpm_brightness_hal_down (XfpmBrightnessHal *brg)
51
if ( enable_brightness == FALSE || brg->priv->brightness_in_hw)
55
if ( brg->priv->hw_level != 0)
57
TRACE("Brightness key down");
58
@@ -257,7 +266,6 @@ xfpm_brightness_hal_down (XfpmBrightnessHal *brg)
61
xfpm_brightness_hal_read_hal_level (brg);
64
g_signal_emit (G_OBJECT (brg), signals [BRIGHTNESS_UP], 0, brg->priv->hw_level);
66
@@ -281,7 +289,7 @@ static void
67
xfpm_brightness_hal_reset_cb (EggIdletime *idle, XfpmBrightnessHal *brg)
75
@@ -309,7 +317,7 @@ static void
76
xfpm_brightness_timeout_on_ac (XfpmBrightnessHal *brg)
82
if ( brg->priv->on_battery )
84
@@ -336,7 +344,7 @@ static void
85
xfpm_brightness_timeout_on_battery (XfpmBrightnessHal *brg)
91
if ( !brg->priv->on_battery )
93
@@ -579,14 +587,14 @@ gboolean xfpm_brightness_hal_has_hw (XfpmBrightnessHal *brg)
94
return brg->priv->hw_found;
97
-void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg, guint level)
98
+void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg, gint level)
100
g_return_if_fail (XFPM_IS_BRIGHTNESS_HAL (brg));
102
brg->priv->hw_level = level;
105
-guint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg)
106
+gint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg)
108
g_return_val_if_fail (XFPM_IS_BRIGHTNESS_HAL (brg), 0);
110
diff --git a/src/xfpm-brightness-hal.h b/src/xfpm-brightness-hal.h
111
index b574677..c7b25dc 100644
112
--- a/src/xfpm-brightness-hal.h
113
+++ b/src/xfpm-brightness-hal.h
114
@@ -56,9 +56,9 @@ XfpmBrightnessHal *xfpm_brightness_hal_new (void);
115
gboolean xfpm_brightness_hal_has_hw (XfpmBrightnessHal *brg) G_GNUC_PURE;
117
void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg,
121
-guint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg) G_GNUC_PURE;
122
+gint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg) G_GNUC_PURE;
125
#endif /* __XFPM_BRIGHTNESS_HAL_H */