[Goodies-commits] r6919 - in xfce4-power-manager/trunk: . libxfpm src
Ali Abdallah
aliov at xfce.org
Mon Mar 16 15:39:17 CET 2009
Author: aliov
Date: 2009-03-16 14:39:17 +0000 (Mon, 16 Mar 2009)
New Revision: 6919
Modified:
xfce4-power-manager/trunk/ChangeLog
xfce4-power-manager/trunk/libxfpm/hal-iface.c
xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
xfce4-power-manager/trunk/src/xfpm-cpu.c
xfce4-power-manager/trunk/src/xfpm-idle.c
Log:
Set brightness idle level to the last user selected level+Fix a bug in SetCpuFreqGovernor that was causing a proxy disconnection
Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog 2009-03-16 11:18:45 UTC (rev 6918)
+++ xfce4-power-manager/trunk/ChangeLog 2009-03-16 14:39:17 UTC (rev 6919)
@@ -1,4 +1,7 @@
+2009-03-16 15:39 Ali aliov at xfce.org
+ * : Set brightness idle level to the last user selected level+Fix a bug in SetCpuFreqGovernor that was causing a proxy disconnection
+
2009-03-15 13:57 Ali aliov at xfce.org
* : Added some icons from gpm+Catch brightness key to avoid display flickering
Modified: xfce4-power-manager/trunk/libxfpm/hal-iface.c
===================================================================
--- xfce4-power-manager/trunk/libxfpm/hal-iface.c 2009-03-16 11:18:45 UTC (rev 6918)
+++ xfce4-power-manager/trunk/libxfpm/hal-iface.c 2009-03-16 14:39:17 UTC (rev 6919)
@@ -420,6 +420,8 @@
g_return_val_if_fail (iface->priv->caller_privilege, FALSE);
g_return_val_if_fail (iface->priv->cpu_freq_iface_can_be_used, FALSE);
+ gboolean ret = FALSE;
+
DBusGProxy *proxy = dbus_g_proxy_new_for_name (iface->priv->bus,
"org.freedesktop.Hal",
"/org/freedesktop/Hal/devices/computer",
@@ -430,16 +432,14 @@
goto out;
}
- dbus_g_proxy_call (proxy, "SetCPUFreqGovernor", error,
- G_TYPE_STRING, &governor,
- G_TYPE_INVALID,
- G_TYPE_INVALID);
-
+ ret = dbus_g_proxy_call (proxy, "SetCPUFreqGovernor", error,
+ G_TYPE_STRING, governor,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID);
+
g_object_unref (proxy);
-
out:
-
- return FALSE;
+ return ret;
}
void hal_iface_free_string_array (gchar **array)
Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.c 2009-03-16 11:18:45 UTC (rev 6918)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.c 2009-03-16 14:39:17 UTC (rev 6919)
@@ -62,8 +62,6 @@
struct XfpmBrightnessHalPrivate
{
- HalManager *manager;
- HalDevice *device;
DBusGProxy *proxy;
XfpmXfconf *conf;
@@ -71,12 +69,15 @@
XfpmButtonXf86 *button;
gint max_level;
- guint on_battery_timeout;
- guint on_ac_timeout;
+ gint hw_level;
+ gboolean brightness_in_hw;
gboolean hw_found;
gboolean block;
gboolean on_battery;
+
+ guint on_battery_timeout;
+ guint on_ac_timeout;
};
enum
@@ -103,13 +104,12 @@
{
brg->priv = XFPM_BRIGHTNESS_HAL_GET_PRIVATE(brg);
- brg->priv->manager = NULL;
- brg->priv->device = NULL;
brg->priv->proxy = NULL;
brg->priv->idle = NULL;
brg->priv->hw_found = FALSE;
brg->priv->on_battery = FALSE;
brg->priv->block = FALSE;
+ brg->priv->brightness_in_hw = FALSE;
brg->priv->max_level = 0;
}
@@ -120,18 +120,12 @@
brg = XFPM_BRIGHTNESS_HAL(object);
- if ( brg->priv->manager )
- g_object_unref (brg->priv->manager);
-
if ( brg->priv->proxy )
g_object_unref (brg->priv->proxy);
if ( brg->priv->idle )
g_object_unref (brg->priv->idle);
- if ( brg->priv->device )
- g_object_unref (brg->priv->device);
-
if ( brg->priv->conf )
g_object_unref (brg->priv->conf);
@@ -192,73 +186,104 @@
}
static void
-xfpm_brightness_hal_device_changed_cb (HalDevice *device,
- const gchar *udi,
- const gchar *key,
- gboolean is_removed,
- gboolean is_added,
- XfpmBrightnessHal *brg)
+xfpm_brightness_hal_set_proxy (XfpmBrightnessHal *brg, const gchar *udi)
{
- g_print("YALLA key=%s\n", key);
- if ( xfpm_strequal (key, "laptop_panel.num_levels") )
- {
- gint level = hal_device_get_property_int (device, "laptop_panel.num_levels");
- TRACE("Brigthness num_levels=%d\n", level);
- }
-}
-
-static void
-xfpm_brightness_hal_get_device (XfpmBrightnessHal *brg, const gchar *udi)
-{
DBusGConnection *bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
brg->priv->hw_found = TRUE;
- hal_device_watch (brg->priv->device);
- g_signal_connect (brg->priv->device, "device-changed",
- G_CALLBACK(xfpm_brightness_hal_device_changed_cb), brg);
-
brg->priv->proxy = dbus_g_proxy_new_for_name (bus,
"org.freedesktop.Hal",
udi,
"org.freedesktop.Hal.Device.LaptopPanel");
-
+
if ( !brg->priv->proxy )
g_warning ("Unable to get proxy for device %s\n", udi);
-
+}
+
+static void
+xfpm_brightness_hal_get_device (XfpmBrightnessHal *brg, const gchar *udi)
+{
+ HalDevice *device = hal_device_new ();
+ hal_device_set_udi (device, udi);
+
brg->priv->max_level =
- hal_device_get_property_int (brg->priv->device, "laptop_panel.num_levels");
+ hal_device_get_property_int (device, "laptop_panel.num_levels");
+
+ if ( hal_device_has_key (device, "laptop_panel.brightness_in_hardware") )
+ brg->priv->brightness_in_hw = hal_device_get_property_bool (device ,"laptop_panel.brightness_in_hardware");
TRACE ("laptop_panel.num_levels=%d\n", brg->priv->max_level);
+
+ g_object_unref (device);
}
+
static gboolean
xfpm_brightness_hal_setup (XfpmBrightnessHal *brg)
{
gchar **udi = NULL;
- brg->priv->manager = hal_manager_new ();
- brg->priv->device = hal_device_new ();
+ HalManager *manager = hal_manager_new ();
- udi = hal_manager_find_device_by_capability (brg->priv->manager, "laptop_panel");
+ udi = hal_manager_find_device_by_capability (manager, "laptop_panel");
if ( !udi )
+ {
+ g_object_unref ( manager);
return FALSE;
+ }
- hal_device_set_udi (brg->priv->device, udi[0]);
+ TRACE ("Found laptop_panel with udi=%s\n", udi[0]);
+ xfpm_brightness_hal_get_device (brg, udi[0]);
+ xfpm_brightness_hal_set_proxy (brg, udi[0]);
+
+ brg->priv->hw_level = xfpm_brightness_hal_get_level (brg);
+ TRACE ("Current hw level =%d\n", brg->priv->hw_level);
+
+ hal_manager_free_string_array (udi);
+ return TRUE;
+}
+
+static void
+xfpm_brightness_hal_up (XfpmBrightnessHal *brg)
+{
+ if ( brg->priv->brightness_in_hw )
+ return;
+
+ if ( brg->priv->hw_level != brg->priv->max_level -2 )
+ {
+ xfpm_brightness_hal_set_level (brg, brg->priv->hw_level + 1 );
+ brg->priv->hw_level = xfpm_brightness_hal_get_level (brg);
+ }
+}
+
+static void
+xfpm_brightness_hal_down (XfpmBrightnessHal *brg)
+{
+ if ( brg->priv->brightness_in_hw )
+ return;
- if ( hal_device_has_key (brg->priv->device, "laptop_panel.num_levels") )
+ if ( brg->priv->hw_level != 0)
{
- TRACE ("Found laptop_panel with udi=%s\n", udi[0]);
- xfpm_brightness_hal_get_device (brg, udi[0]);
+ xfpm_brightness_hal_set_level (brg, brg->priv->hw_level - 1 );
+ brg->priv->hw_level = xfpm_brightness_hal_get_level (brg);
}
- else
+}
+
+static void
+xfpm_brightness_hal_button_pressed_cb (XfpmButtonXf86 *button, XfpmXF86Button type, XfpmBrightnessHal *brg)
+{
+ if ( type == BUTTON_MON_BRIGHTNESS_UP )
{
- g_object_unref (brg->priv->device);
+ brg->priv->block = TRUE;
+ xfpm_brightness_hal_up (brg);
}
-
- hal_manager_free_string_array (udi);
- return TRUE;
+ else if ( type == BUTTON_MON_BRIGHTNESS_DOWN )
+ {
+ brg->priv->block = TRUE;
+ xfpm_brightness_hal_down (brg);
+ }
}
static void
@@ -271,8 +296,8 @@
level = xfpm_brightness_hal_get_level(brg);
- if ( level != brg->priv->max_level -1 )
- xfpm_brightness_hal_set_level(brg, brg->priv->max_level -1 );
+ if ( level != brg->priv->hw_level )
+ xfpm_brightness_hal_set_level(brg, brg->priv->hw_level);
}
static void
@@ -378,13 +403,6 @@
xfpm_brightness_hal_set_timeouts (brg);
}
-static void
-xfpm_brightness_hal_button_pressed_cb (XfpmButtonXf86 *button, XfpmXF86Button type, XfpmBrightnessHal *brg)
-{
- if ( type == BUTTON_MON_BRIGHTNESS_DOWN || type == BUTTON_MON_BRIGHTNESS_UP )
- brg->priv->block = TRUE;
-}
-
XfpmBrightnessHal *
xfpm_brightness_hal_new ()
{
Modified: xfce4-power-manager/trunk/src/xfpm-cpu.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-cpu.c 2009-03-16 11:18:45 UTC (rev 6918)
+++ xfce4-power-manager/trunk/src/xfpm-cpu.c 2009-03-16 14:39:17 UTC (rev 6919)
@@ -76,7 +76,6 @@
if (! hal_iface_set_cpu_governor(cpu->priv->iface, governor, &error))
{
g_critical ("Unable to set CPU governor to %s: %s\n", governor, error->message);
- g_error_free (error);
}
}
@@ -138,10 +137,8 @@
TRACE ("Settings cpu governor to powersave");
xfpm_cpu_set_governor (cpu, "powersave");
}
- return;
}
g_free (current_governor);
-
}
static gboolean
Modified: xfce4-power-manager/trunk/src/xfpm-idle.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-idle.c 2009-03-16 11:18:45 UTC (rev 6918)
+++ xfce4-power-manager/trunk/src/xfpm-idle.c 2009-03-16 14:39:17 UTC (rev 6919)
@@ -215,7 +215,6 @@
if ( alarm )
{
- g_print("Alarm id=%d\n",alarm->id);
if (alarm->id != 0 )
{
g_signal_emit (G_OBJECT(idle), signals[ALARM_TIMEOUT], 0, alarm->id );
More information about the Goodies-commits
mailing list