[Goodies-commits] r6932 - in xfce4-power-manager/trunk: . src
Ali Abdallah
aliov at xfce.org
Tue Mar 17 19:55:03 CET 2009
Author: aliov
Date: 2009-03-17 18:55:03 +0000 (Tue, 17 Mar 2009)
New Revision: 6932
Modified:
xfce4-power-manager/trunk/ChangeLog
xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml
xfce4-power-manager/trunk/src/xfpm-battery.c
xfce4-power-manager/trunk/src/xfpm-battery.h
xfce4-power-manager/trunk/src/xfpm-engine.c
xfce4-power-manager/trunk/src/xfpm-supply.c
xfce4-power-manager/trunk/src/xfpm-supply.h
Log:
Some optimization in the battery code+added GetOnBattery and on LowBattery DBus methods
Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog 2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/ChangeLog 2009-03-17 18:55:03 UTC (rev 6932)
@@ -1,4 +1,7 @@
+2009-03-17 19:54 Ali aliov at xfce.org
+ * : Some optimization in the battery code+added GetOnBattery and on LowBattery DBus methods
+
2009-03-17 19:15 Ali aliov at xfce.org
* : Added experimentale code to monitor hal proxy+some typos
Modified: xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml
===================================================================
--- xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml 2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml 2009-03-17 18:55:03 UTC (rev 6932)
@@ -20,6 +20,14 @@
<method name="CanHibernate">
<arg type="b" name="can_hibernate" direction="out"/>
</method>
+
+ <method name="GetOnBattery">
+ <arg type="b" name="on_battery" direction="out"/>
+ </method>
+ <method name="GetLowBattery">
+ <arg type="b" name="low_battery" direction="out"/>
+ </method>
+
</interface>
</node>
Modified: xfce4-power-manager/trunk/src/xfpm-battery.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.c 2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-battery.c 2009-03-17 18:55:03 UTC (rev 6932)
@@ -41,6 +41,8 @@
#include "xfpm-marshal.h"
#include "xfpm-enum-types.h"
#include "xfpm-battery-info.h"
+#include "xfpm-xfconf.h"
+#include "xfpm-config.h"
#include "xfpm-notify.h"
#include "xfpm-adapter.h"
@@ -57,6 +59,7 @@
XfpmTrayIcon *icon;
XfpmAdapter *adapter;
HalBattery *device;
+ XfpmXfconf *conf;
HalDeviceType type;
gchar *icon_prefix;
@@ -429,6 +432,54 @@
}
static void
+xfpm_battery_property_changed_cb (XfconfChannel *channel, gchar *property,
+ GValue *value, XfpmBattery *battery)
+{
+ if ( G_VALUE_TYPE(value) == G_TYPE_INVALID )
+ return;
+
+ if ( xfpm_strequal (property, SHOW_TRAY_ICON_CFG) )
+ {
+ guint val = g_value_get_uint (value);
+ battery->priv->show_icon = val;
+ xfpm_battery_refresh_visible_icon (battery);
+ }
+ else if ( xfpm_strequal( property, CRITICAL_POWER_LEVEL) )
+ {
+ guint val = g_value_get_uint (value);
+ if ( val > 20 )
+ {
+ g_warning ("Value %d for property %s is out of range \n", val, CRITICAL_POWER_LEVEL);
+ battery->priv->critical_level = 10;
+ }
+ else
+ battery->priv->critical_level = val;
+ }
+}
+
+static void
+xfpm_battery_load_configuration (XfpmBattery *battery)
+{
+ battery->priv->show_icon =
+ xfconf_channel_get_uint (battery->priv->conf->channel, SHOW_TRAY_ICON_CFG, 0);
+
+ if ( battery->priv->show_icon < 0 || battery->priv->show_icon > 3 )
+ {
+ g_warning ("Invalid value %d for property %s, using default\n", battery->priv->show_icon, SHOW_TRAY_ICON_CFG);
+ xfconf_channel_set_uint (battery->priv->conf->channel, CRITICAL_BATT_ACTION_CFG, 0);
+ }
+
+ battery->priv->critical_level =
+ xfconf_channel_get_uint (battery->priv->conf->channel, CRITICAL_POWER_LEVEL, 0);
+
+ if ( battery->priv->critical_level <0 || battery->priv->critical_level > 20 )
+ {
+ g_warning ("Value %d for property %s is out of range \n", battery->priv->critical_level, CRITICAL_POWER_LEVEL);
+ battery->priv->critical_level = 10;
+ }
+}
+
+static void
xfpm_battery_class_init(XfpmBatteryClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS(klass);
@@ -468,11 +519,17 @@
battery->priv->icon = xfpm_tray_icon_new ();
battery->priv->show_icon = SHOW_ICON_ALWAYS;
battery->priv->adapter = xfpm_adapter_new ();
+ battery->priv->conf = xfpm_xfconf_new ();
battery->priv->adapter_present = xfpm_adapter_get_present (battery->priv->adapter);
g_signal_connect (battery->priv->adapter ,"adapter-changed",
G_CALLBACK(xfpm_battery_adapter_changed_cb), battery);
+
+ g_signal_connect (battery->priv->conf->channel ,"property-changed",
+ G_CALLBACK(xfpm_battery_property_changed_cb), battery);
+
+ xfpm_battery_load_configuration (battery);
}
static void
@@ -489,6 +546,8 @@
g_free(battery->priv->icon_prefix);
g_object_unref (battery->priv->adapter);
+
+ g_object_unref (battery->priv->conf);
G_OBJECT_CLASS(xfpm_battery_parent_class)->finalize(object);
}
Modified: xfce4-power-manager/trunk/src/xfpm-battery.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.h 2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-battery.h 2009-03-17 18:55:03 UTC (rev 6932)
@@ -62,9 +62,6 @@
GType xfpm_battery_get_type (void) G_GNUC_CONST;
XfpmBattery *xfpm_battery_new (const HalBattery *device);
-void xfpm_battery_set_show_icon (XfpmBattery *battery,
- XfpmShowIcon show_icon);
-
const HalBattery *xfpm_battery_get_device (XfpmBattery *battery);
XfpmBatteryState xfpm_battery_get_state (XfpmBattery *battery);
@@ -75,9 +72,6 @@
void xfpm_battery_show_info (XfpmBattery *battery);
-void xfpm_battery_set_critical_level (XfpmBattery *battery,
- guint8 critical_level);
-
G_END_DECLS
#endif /* __XFPM_BATTERY_H */
Modified: xfce4-power-manager/trunk/src/xfpm-engine.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.c 2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-engine.c 2009-03-17 18:55:03 UTC (rev 6932)
@@ -484,6 +484,14 @@
gboolean *OUT_can_suspend,
GError **error);
+static gboolean xfpm_engine_dbus_get_on_battery (XfpmEngine *engine,
+ gboolean *OUT_on_battery,
+ GError **error);
+
+static gboolean xfpm_engine_dbus_get_low_battery(XfpmEngine *engine,
+ gboolean *OUT_low_battery,
+ GError **error);
+
#include "org.freedesktop.PowerManagement-server.h"
static void
@@ -556,3 +564,21 @@
return TRUE;
}
+
+static gboolean xfpm_engine_dbus_get_on_battery (XfpmEngine *engine,
+ gboolean *OUT_on_battery,
+ GError **error)
+{
+ *OUT_on_battery = engine->priv->on_battery;
+
+ return TRUE;
+}
+
+static gboolean xfpm_engine_dbus_get_low_battery(XfpmEngine *engine,
+ gboolean *OUT_low_battery,
+ GError **error)
+{
+ *OUT_low_battery = xfpm_supply_on_low_battery (engine->priv->supply);
+
+ return TRUE;
+}
Modified: xfce4-power-manager/trunk/src/xfpm-supply.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.c 2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-supply.c 2009-03-17 18:55:03 UTC (rev 6932)
@@ -64,9 +64,7 @@
gboolean adapter_present;
XfpmShutdownRequest critical_action;
- XfpmShowIcon show_icon;
- guint8 critical_level;
guint8 power_management;
};
@@ -78,8 +76,6 @@
static guint signals[LAST_SIGNAL] = { 0 };
-static FILE *file = NULL;
-
G_DEFINE_TYPE(XfpmSupply, xfpm_supply, G_TYPE_OBJECT)
static void
@@ -221,7 +217,6 @@
else
low_power = FALSE;
}
-
return low_power;
}
@@ -304,7 +299,6 @@
}
xfpm_notify_present_notification (supply->priv->notify, n, FALSE);
-
}
static void
@@ -524,14 +518,9 @@
udi = hal_device_get_udi (HAL_DEVICE(device));
TRACE("New battery found %s", udi);
- fprintf(file, "New battery found with udi %s", udi);
XfpmBattery *battery = xfpm_battery_new (device);
- xfpm_battery_set_show_icon (battery, supply->priv->show_icon);
-
- xfpm_battery_set_critical_level (battery, supply->priv->critical_level);
-
g_hash_table_insert (supply->priv->hash, g_strdup(udi), battery);
g_signal_connect (G_OBJECT(battery), "battery-state-changed",
@@ -556,7 +545,6 @@
if (!g_hash_table_remove(supply->priv->hash, udi))
g_critical ("Unable to removed battery object from hash");
}
-
}
static void
@@ -571,62 +559,12 @@
xfpm_supply_remove_battery (supply, device);
}
-static void
-xfpm_supply_set_battery_show_tray_icon (XfpmSupply *supply)
-{
- GList *list = NULL;
-
- list = g_hash_table_get_values (supply->priv->hash);
-
- if ( !list )
- return;
-
- int i;
- for ( i = 0; i<g_list_length(list); i++)
- {
- XfpmBattery *battery = NULL;
- battery = (XfpmBattery *) g_list_nth_data(list, i);
-
- if ( battery )
- {
- xfpm_battery_set_show_icon (battery, supply->priv->show_icon);
- }
- }
- g_list_free (list);
-}
-
-static void
-xfpm_supply_set_critical_power_level (XfpmSupply *supply)
-{
- GList *list = NULL;
-
- list = g_hash_table_get_values (supply->priv->hash);
-
- if ( !list )
- return;
-
- int i;
- for ( i = 0; i<g_list_length(list); i++)
- {
- XfpmBattery *battery = NULL;
- battery = (XfpmBattery *) g_list_nth_data(list, i);
-
- if ( battery )
- {
- xfpm_battery_set_critical_level (battery, supply->priv->critical_level);
- }
- }
- g_list_free (list);
-}
-
static gboolean
xfpm_supply_monitor_start (XfpmSupply *supply)
{
//FIXME: Check the system formfactor
GPtrArray *array = hal_power_get_batteries (supply->priv->power);
- file = fopen("/home/ali/tmp", "a");
- fprintf(file, "array len=%d", array->len);
int i = 0;
for ( i = 0; i<array->len; i++ )
@@ -659,25 +597,7 @@
else
supply->priv->critical_action = val;
}
- else if ( xfpm_strequal (property, SHOW_TRAY_ICON_CFG) )
- {
- guint val = g_value_get_uint (value);
- supply->priv->show_icon = val;
- xfpm_supply_set_battery_show_tray_icon (supply);
- }
- else if ( xfpm_strequal( property, CRITICAL_POWER_LEVEL) )
- {
- guint val = g_value_get_uint (value);
- if ( val > 20 )
- {
- g_warning ("Value %d for property %s is out of range \n", val, CRITICAL_POWER_LEVEL);
- supply->priv->critical_level = 10;
- }
- else
- supply->priv->critical_level = val;
-
- xfpm_supply_set_critical_power_level (supply);
- }
+
}
static void
@@ -700,14 +620,6 @@
g_free (str);
- supply->priv->show_icon =
- xfconf_channel_get_uint (supply->priv->conf->channel, SHOW_TRAY_ICON_CFG, 0);
-
- if ( supply->priv->show_icon < 0 || supply->priv->show_icon > 3 )
- {
- g_warning ("Invalid value %d for property %s, using default\n", supply->priv->show_icon, SHOW_TRAY_ICON_CFG);
- xfconf_channel_set_uint (supply->priv->conf->channel, CRITICAL_BATT_ACTION_CFG, 0);
- }
}
static void
@@ -752,3 +664,10 @@
G_CALLBACK(xfpm_supply_battery_removed_cb), supply);
}
+
+gboolean xfpm_supply_on_low_battery (XfpmSupply *supply)
+{
+ g_return_val_if_fail (XFPM_IS_SUPPLY(supply), FALSE);
+
+ return xfpm_supply_on_low_power(supply);
+}
Modified: xfce4-power-manager/trunk/src/xfpm-supply.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.h 2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-supply.h 2009-03-17 18:55:03 UTC (rev 6932)
@@ -53,7 +53,11 @@
GType xfpm_supply_get_type (void) G_GNUC_CONST;
XfpmSupply *xfpm_supply_new (guint8 power_management_info);
+
void xfpm_supply_monitor (XfpmSupply *supply);
+
+gboolean xfpm_supply_on_low_battery (XfpmSupply *supply);
+
G_END_DECLS
#endif /* __XFPM_SUPPLY_H */
More information about the Goodies-commits
mailing list