[Goodies-commits] r5732 - xfce4-power-manager/trunk/src
Ali Abdallah
aliov at xfce.org
Tue Oct 21 12:39:26 CEST 2008
Author: aliov
Date: 2008-10-21 10:39:26 +0000 (Tue, 21 Oct 2008)
New Revision: 5732
Modified:
xfce4-power-manager/trunk/src/xfpm-cpu.c
xfce4-power-manager/trunk/src/xfpm-driver.c
xfce4-power-manager/trunk/src/xfpm-hal.c
xfce4-power-manager/trunk/src/xfpm-hal.h
Log:
Support for unpermitted cpu freq settings operation
Modified: xfce4-power-manager/trunk/src/xfpm-cpu.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-cpu.c 2008-10-21 09:23:37 UTC (rev 5731)
+++ xfce4-power-manager/trunk/src/xfpm-cpu.c 2008-10-21 10:39:26 UTC (rev 5732)
@@ -66,7 +66,7 @@
GParamSpec *pspec);
static void xfpm_cpu_load_config(XfpmCpu *cpu);
-
+static void xfpm_cpu_check(XfpmCpu *cpu);
static void xfpm_cpu_set_governor(XfpmCpu *cpu,
gboolean ac_adapter_present);
@@ -79,6 +79,8 @@
struct XfpmCpuPrivate
{
XfpmHal *hal;
+ gboolean cpu_freq_can_be_used;
+
};
enum
@@ -145,6 +147,7 @@
priv->hal = xfpm_hal_new();
xfpm_cpu_load_config(cpu);
+ xfpm_cpu_check(cpu);
g_signal_connect(G_OBJECT(cpu),"notify",G_CALLBACK(xfpm_cpu_notify_cb),NULL);
@@ -275,6 +278,16 @@
return NULL;
}
+static void xfpm_cpu_check(XfpmCpu *cpu)
+{
+ XfpmCpuPrivate *priv;
+ priv = XFPM_CPU_GET_PRIVATE(cpu);
+
+ priv->cpu_freq_can_be_used =
+ xfpm_hal_cpu_freq_interface_can_be_used(priv->hal);
+
+}
+
static void
xfpm_cpu_set_governor(XfpmCpu *cpu,gboolean ac_adapter_present)
{
@@ -327,10 +340,19 @@
gpointer data)
{
XfpmCpu *cpu = XFPM_CPU(object);
+ XfpmCpuPrivate *priv;
+ priv = XFPM_CPU_GET_PRIVATE(cpu);
+
+ if ( !priv->cpu_freq_can_be_used )
+ {
+ XFPM_DEBGU("Xfpm cannot use cpu freq control\n");
+ return
+ }
if ( !cpu->cpu_freq_enabled )
{
XFPM_DEBUG("Cpu freq control is disabled\n");
+ return;
}
if ( !strcmp(arg1->name,"on-ac-adapter") ||
Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-21 09:23:37 UTC (rev 5731)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-21 10:39:26 UTC (rev 5732)
@@ -885,7 +885,7 @@
{
const gchar *error =
_("Unable to use power management service, functionalities like hibernate and shutdown will not work "\
- "Possible reasons: you don't have permission or "\
+ "Possible reasons: you don't have enough permission or a"\
"broken connection with the hardware abstract layer or the message bus daemon is not running");
NotifyNotification *n = xfpm_notify_new(_("Xfce power manager"),
error,
Modified: xfce4-power-manager/trunk/src/xfpm-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-hal.c 2008-10-21 09:23:37 UTC (rev 5731)
+++ xfce4-power-manager/trunk/src/xfpm-hal.c 2008-10-21 10:39:26 UTC (rev 5732)
@@ -292,8 +292,8 @@
reply = dbus_connection_send_with_reply_and_block(priv->connection,message,-1,&error);
dbus_message_unref(message);
- if ( reply ) dbus_message_unref(reply);
-
+ if ( reply ) dbus_message_unref(reply);
+
if ( dbus_error_is_set(&error) )
{
/* This is the only one place in the program we will
@@ -307,6 +307,46 @@
return FALSE;
}
+gboolean xfpm_hal_cpu_freq_interface_can_be_used(XfpmHal *hal)
+{
+ g_return_val_if_fail(XFPM_IS_HAL(hal),FALSE);
+ XfpmHalPrivate *priv;
+ priv = XFPM_HAL_GET_PRIVATE(hal);
+
+ g_return_val_if_fail(priv->connected == TRUE,FALSE);
+
+ DBusMessage *message;
+ DBusMessage *reply;
+ DBusError error;
+
+ message = dbus_message_new_method_call(HAL_DBUS_SERVICE,
+ HAL_ROOT_COMPUTER,
+ HAL_DBUS_INTERFACE_CPU,
+ "CpuFreqJustToCheck");
+
+ if (!message)
+ {
+ return FALSE;
+ }
+
+ dbus_error_init(&error);
+
+ reply = dbus_connection_send_with_reply_and_block(priv->connection,message,-1,&error);
+ dbus_message_unref(message);
+
+ if ( reply ) dbus_message_unref(reply);
+
+ if ( dbus_error_is_set(&error) )
+ {
+ if (!strcmp(error.name,"org.freedesktop.DBus.Error.UnknownMethod"))
+ {
+ dbus_error_free(&error);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
gboolean xfpm_hal_connect_to_signals(XfpmHal *hal,
gboolean device_removed,
gboolean device_added,
Modified: xfce4-power-manager/trunk/src/xfpm-hal.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-hal.h 2008-10-21 09:23:37 UTC (rev 5731)
+++ xfce4-power-manager/trunk/src/xfpm-hal.h 2008-10-21 10:39:26 UTC (rev 5732)
@@ -80,6 +80,7 @@
XfpmHal *xfpm_hal_new (void);
gboolean xfpm_hal_is_connected (XfpmHal *hal);
gboolean xfpm_hal_power_management_can_be_used (XfpmHal *hal);
+gboolean xfpm_hal_cpu_freq_interface_can_be_used(XfpmHal *hal);
gboolean xfpm_hal_connect_to_signals (XfpmHal *hal,
gboolean device_removed,
gboolean device_added,
More information about the Goodies-commits
mailing list