[Xfce4-commits] <xfce4-power-manager:0.8-hal-based> Handle weired negative brightness level reported by HAL on some systems.
Ali Abdallah
noreply at xfce.org
Tue Mar 2 18:26:01 CET 2010
Updating branch refs/heads/0.8-hal-based
to b25c5a58c688476e70244980005fa596611ab59f (commit)
from ae4f70d52bbc098c2cec5de1d1b979eb0bff87ac (commit)
commit b25c5a58c688476e70244980005fa596611ab59f
Author: Ali Abdallah <aliov at xfce.org>
Date: Tue Mar 2 18:21:00 2010 +0100
Handle weired negative brightness level reported by HAL on some systems.
src/xfpm-brightness-hal.c | 30 +++++++++++++++++++-----------
src/xfpm-brightness-hal.h | 4 ++--
2 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/src/xfpm-brightness-hal.c b/src/xfpm-brightness-hal.c
index 0b0c7d3..7b0c051 100644
--- a/src/xfpm-brightness-hal.c
+++ b/src/xfpm-brightness-hal.c
@@ -61,9 +61,9 @@ struct XfpmBrightnessHalPrivate
XfpmAdapter *adapter;
XfpmScreenSaver *saver;
- guint max_level;
- guint hw_level;
- guint step;
+ gint max_level;
+ gint hw_level;
+ gint step;
gboolean brightness_in_hw;
gboolean hw_found;
gboolean block;
@@ -180,6 +180,16 @@ xfpm_brightness_hal_read_hal_level (XfpmBrightnessHal *brg)
g_warning ("Error getting brightness level: %s\n", error->message);
g_error_free (error);
}
+
+ /*
+ * Sometimes HAL send us negative values, it seems to be
+ * a bug in rounding in bash shell
+ */
+ if (brg->priv->hw_level < 0)
+ {
+ g_warning ("Negative value returned by HAL, assuming 0");
+ brg->priv->hw_level = 0;
+ }
}
static gboolean
@@ -231,7 +241,6 @@ xfpm_brightness_hal_up (XfpmBrightnessHal *brg)
signal:
xfpm_brightness_hal_read_hal_level (brg);
-
if ( show_popup )
g_signal_emit (G_OBJECT (brg), signals [BRIGHTNESS_UP], 0, brg->priv->hw_level);
}
@@ -248,7 +257,7 @@ xfpm_brightness_hal_down (XfpmBrightnessHal *brg)
if ( enable_brightness == FALSE || brg->priv->brightness_in_hw)
goto signal;
-
+
if ( brg->priv->hw_level != 0)
{
TRACE("Brightness key down");
@@ -257,7 +266,6 @@ xfpm_brightness_hal_down (XfpmBrightnessHal *brg)
signal:
xfpm_brightness_hal_read_hal_level (brg);
-
if ( show_popup )
g_signal_emit (G_OBJECT (brg), signals [BRIGHTNESS_UP], 0, brg->priv->hw_level);
}
@@ -281,7 +289,7 @@ static void
xfpm_brightness_hal_reset_cb (EggIdletime *idle, XfpmBrightnessHal *brg)
{
GError *error = NULL;
- guint level;
+ gint level;
if (brg->priv->block)
return;
@@ -309,7 +317,7 @@ static void
xfpm_brightness_timeout_on_ac (XfpmBrightnessHal *brg)
{
GError *error = NULL;
- guint level;
+ gint level;
if ( brg->priv->on_battery )
return;
@@ -336,7 +344,7 @@ static void
xfpm_brightness_timeout_on_battery (XfpmBrightnessHal *brg)
{
GError *error = NULL;
- guint level;
+ gint level;
if ( !brg->priv->on_battery )
return;
@@ -579,14 +587,14 @@ gboolean xfpm_brightness_hal_has_hw (XfpmBrightnessHal *brg)
return brg->priv->hw_found;
}
-void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg, guint level)
+void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg, gint level)
{
g_return_if_fail (XFPM_IS_BRIGHTNESS_HAL (brg));
brg->priv->hw_level = level;
}
-guint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg)
+gint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg)
{
g_return_val_if_fail (XFPM_IS_BRIGHTNESS_HAL (brg), 0);
diff --git a/src/xfpm-brightness-hal.h b/src/xfpm-brightness-hal.h
index b574677..c7b25dc 100644
--- a/src/xfpm-brightness-hal.h
+++ b/src/xfpm-brightness-hal.h
@@ -56,9 +56,9 @@ XfpmBrightnessHal *xfpm_brightness_hal_new (void);
gboolean xfpm_brightness_hal_has_hw (XfpmBrightnessHal *brg) G_GNUC_PURE;
void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg,
- guint level);
+ gint level);
-guint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg) G_GNUC_PURE;
+gint xfpm_brightness_hal_get_max_level (XfpmBrightnessHal *brg) G_GNUC_PURE;
G_END_DECLS
#endif /* __XFPM_BRIGHTNESS_HAL_H */
More information about the Xfce4-commits
mailing list