[Goodies-commits] r5733 - xfce4-power-manager/trunk/src
Ali Abdallah
aliov at xfce.org
Tue Oct 21 13:13:36 CEST 2008
Author: aliov
Date: 2008-10-21 11:13:35 +0000 (Tue, 21 Oct 2008)
New Revision: 5733
Modified:
xfce4-power-manager/trunk/src/xfpm-cpu.c
xfce4-power-manager/trunk/src/xfpm-cpu.h
xfce4-power-manager/trunk/src/xfpm-driver.c
xfce4-power-manager/trunk/src/xfpm-enums.h
xfce4-power-manager/trunk/src/xfpm-settings.c
Log:
method for getting available cpu governors move to xfpm-cpu.c
Modified: xfce4-power-manager/trunk/src/xfpm-cpu.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-cpu.c 2008-10-21 10:39:26 UTC (rev 5732)
+++ xfce4-power-manager/trunk/src/xfpm-cpu.c 2008-10-21 11:13:35 UTC (rev 5733)
@@ -66,7 +66,8 @@
GParamSpec *pspec);
static void xfpm_cpu_load_config(XfpmCpu *cpu);
-static void xfpm_cpu_check(XfpmCpu *cpu);
+static void xfpm_cpu_check(XfpmCpu *cpu);
+static void xfpm_cpu_get_governors(XfpmCpu *cpu);
static void xfpm_cpu_set_governor(XfpmCpu *cpu,
gboolean ac_adapter_present);
@@ -79,8 +80,7 @@
struct XfpmCpuPrivate
{
XfpmHal *hal;
- gboolean cpu_freq_can_be_used;
-
+ guint8 governors;
};
enum
@@ -145,9 +145,12 @@
priv = XFPM_CPU_GET_PRIVATE(cpu);
priv->hal = xfpm_hal_new();
+ priv->governors = 0;
xfpm_cpu_load_config(cpu);
+
xfpm_cpu_check(cpu);
+ xfpm_cpu_get_governors(cpu);
g_signal_connect(G_OBJECT(cpu),"notify",G_CALLBACK(xfpm_cpu_notify_cb),NULL);
@@ -283,9 +286,48 @@
XfpmCpuPrivate *priv;
priv = XFPM_CPU_GET_PRIVATE(cpu);
- priv->cpu_freq_can_be_used =
- xfpm_hal_cpu_freq_interface_can_be_used(priv->hal);
+ if (!xfpm_hal_cpu_freq_interface_can_be_used(priv->hal))
+ priv->governors |= CPU_FREQ_CANNOT_BE_USED;
+
+ XFPM_DEBUG("Cpu freq control cannot be used\n");
+}
+
+static void xfpm_cpu_get_governors(XfpmCpu *cpu)
+{
+ XfpmCpuPrivate *priv;
+ priv = XFPM_CPU_GET_PRIVATE(cpu);
+ if ( priv->governors & CPU_FREQ_CANNOT_BE_USED )
+ {
+ return;
+ }
+
+ GError *g_error = NULL;
+ gchar **govs = NULL;
+
+ govs = xfpm_hal_get_available_cpu_governors(priv->hal,&g_error);
+
+ if ( g_error )
+ {
+ XFPM_DEBUG("%s :\n",g_error->message);
+ g_error_free(g_error);
+ return;
+ }
+
+ int i = 0;
+ if ( govs )
+ {
+ for ( i = 0 ; govs[i] ; i++ )
+ {
+ if ( !strcmp(govs[i],"powersave") ) priv->governors |= POWERSAVE;
+ if ( !strcmp(govs[i],"ondemand") ) priv->governors |= ONDEMAND;
+ if ( !strcmp(govs[i],"performance") ) priv->governors |= PERFORMANCE;
+ if ( !strcmp(govs[i],"conservative") ) priv->governors |= CONSERVATIVE;
+ if ( !strcmp(govs[i],"userspace") ) priv->governors |= USERSPACE;
+ }
+ libhal_free_string_array(govs);
+ }
+
}
static void
@@ -343,10 +385,10 @@
XfpmCpuPrivate *priv;
priv = XFPM_CPU_GET_PRIVATE(cpu);
- if ( !priv->cpu_freq_can_be_used )
+ if ( priv->governors & CPU_FREQ_CANNOT_BE_USED )
{
- XFPM_DEBGU("Xfpm cannot use cpu freq control\n");
- return
+ XFPM_DEBUG("Xfpm cannot use cpu freq control\n");
+ return;
}
if ( !cpu->cpu_freq_enabled )
@@ -370,3 +412,14 @@
cpu = g_object_new(XFPM_TYPE_CPU,NULL);
return cpu;
}
+
+guint8
+xfpm_cpu_get_available_governors(XfpmCpu *cpu)
+{
+ g_return_val_if_fail(XFPM_IS_CPU(cpu),0);
+
+ XfpmCpuPrivate *priv;
+ priv = XFPM_CPU_GET_PRIVATE(cpu);
+
+ return priv->governors;
+}
Modified: xfce4-power-manager/trunk/src/xfpm-cpu.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-cpu.h 2008-10-21 10:39:26 UTC (rev 5732)
+++ xfce4-power-manager/trunk/src/xfpm-cpu.h 2008-10-21 11:13:35 UTC (rev 5733)
@@ -30,6 +30,7 @@
#define XFPM_TYPE_CPU (xfpm_cpu_get_type())
#define XFPM_CPU(o) (G_TYPE_CHECK_INSTANCE_CAST(o,XFPM_TYPE_CPU,XfpmCpu))
+#define XFPM_IS_CPU(o) (G_TYPE_CHECK_INSTANCE_TYPE(o,XFPM_TYPE_CPU))
typedef struct XfpmCpuPrivate XfpmCpuPrivate;
@@ -52,8 +53,9 @@
} XfpmCpuClass;
-GType xfpm_cpu_get_type(void) G_GNUC_CONST;
-XfpmCpu *xfpm_cpu_new (void);
+GType xfpm_cpu_get_type (void) G_GNUC_CONST;
+XfpmCpu *xfpm_cpu_new (void);
+guint8 xfpm_cpu_get_available_governors (XfpmCpu *cpu);
G_END_DECLS
Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-21 10:39:26 UTC (rev 5732)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c 2008-10-21 11:13:35 UTC (rev 5733)
@@ -549,7 +549,6 @@
XfconfChannel *channel;
GtkWidget *dialog;
- GError *g_error = NULL;
gboolean with_dpms;
channel = xfconf_channel_new(XFPM_CHANNEL_CFG);
@@ -557,33 +556,12 @@
g_signal_connect(channel,"property-changed",
G_CALLBACK(xfpm_driver_property_changed_cb),drv);
- guint8 gov = 0;
+ guint8 governors = 0;
if ( priv->cpufreq_control )
{
- gchar **govs;
-
- govs = xfpm_hal_get_available_cpu_governors(priv->hal,&g_error);
- if ( g_error )
- {
- XFPM_DEBUG("%s :\n",g_error->message);
- g_error_free(g_error);
- goto no_gov_found;
- }
- int i = 0;
- if ( govs )
- {
- for ( i = 0 ; govs[i] ; i++ )
- {
- if ( !strcmp(govs[i],"powersave") ) gov |= POWERSAVE;
- if ( !strcmp(govs[i],"ondemand") ) gov |= ONDEMAND;
- if ( !strcmp(govs[i],"performance") ) gov |= PERFORMANCE;
- if ( !strcmp(govs[i],"conservative") ) gov |= CONSERVATIVE;
- if ( !strcmp(govs[i],"userspace") ) gov |= USERSPACE;
- }
- libhal_free_string_array(govs);
- }
+ governors = xfpm_cpu_get_available_governors(priv->cpu);
}
- no_gov_found:
+
#ifdef HAVE_DPMS
with_dpms = xfpm_dpms_capable(priv->dpms);
#else
@@ -601,7 +579,7 @@
priv->formfactor == SYSTEM_LAPTOP ? TRUE : FALSE,
priv->power_management,
with_dpms,
- gov,
+ governors,
switch_buttons,
priv->lcd_brightness_control,
ups_found);
Modified: xfce4-power-manager/trunk/src/xfpm-enums.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-enums.h 2008-10-21 10:39:26 UTC (rev 5732)
+++ xfce4-power-manager/trunk/src/xfpm-enums.h 2008-10-21 11:13:35 UTC (rev 5733)
@@ -48,11 +48,12 @@
/* CPU Freq Linux governors */
typedef enum
{
- POWERSAVE = (1<<0),
- ONDEMAND = (1<<1),
- PERFORMANCE = (1<<2),
- CONSERVATIVE = (1<<3),
- USERSPACE = (1<<4)
+ CPU_FREQ_CANNOT_BE_USED = (1<<0),
+ POWERSAVE = (1<<1),
+ ONDEMAND = (1<<2),
+ PERFORMANCE = (1<<3),
+ CONSERVATIVE = (1<<4),
+ USERSPACE = (1<<5)
} XfpmCpuGovernor;
Modified: xfce4-power-manager/trunk/src/xfpm-settings.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-settings.c 2008-10-21 10:39:26 UTC (rev 5732)
+++ xfce4-power-manager/trunk/src/xfpm-settings.c 2008-10-21 11:13:35 UTC (rev 5733)
@@ -721,6 +721,17 @@
gtk_widget_set_sensitive(GTK_WIDGET(cpu_gov),FALSE);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cpu_gov),FALSE);
}
+
+ if ( govs & CPU_FREQ_CANNOT_BE_USED )
+ {
+ GtkWidget *label;
+ label = gtk_label_new(_("CPU frequency control cannot be used"));
+ gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0);
+ gtk_widget_show(label);
+ gtk_widget_set_sensitive(GTK_WIDGET(cpu_gov),FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cpu_gov),FALSE);
+ }
+
else
{
GtkWidget *frame;
More information about the Goodies-commits
mailing list