[Goodies-commits] r5608 - xfce4-power-manager/trunk/src

Ali Abdallah aliov at xfce.org
Tue Oct 14 08:56:52 CEST 2008


Author: aliov
Date: 2008-10-14 06:56:52 +0000 (Tue, 14 Oct 2008)
New Revision: 5608

Modified:
   xfce4-power-manager/trunk/src/xfpm-battery-icon.c
   xfce4-power-manager/trunk/src/xfpm-battery.c
   xfce4-power-manager/trunk/src/xfpm-battery.h
   xfce4-power-manager/trunk/src/xfpm-common.h
   xfce4-power-manager/trunk/src/xfpm-driver.c
   xfce4-power-manager/trunk/src/xfpm-hal.c
   xfce4-power-manager/trunk/src/xfpm-settings.c
Log:
Implement HAL power save method

Modified: xfce4-power-manager/trunk/src/xfpm-battery-icon.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery-icon.c	2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-battery-icon.c	2008-10-14 06:56:52 UTC (rev 5608)
@@ -483,7 +483,7 @@
     // battery is discharging
     if ( is_charging == FALSE && is_discharging == TRUE )
     {
-        if ( remaining_per > battery_icon->critical_level + 18 )
+        if ( remaining_per > ( battery_icon->critical_level + 10 ) )
         {
             if ( !battery_icon->ac_adapter_present )
             {
@@ -493,7 +493,7 @@
             gtk_status_icon_set_tooltip(GTK_STATUS_ICON(battery_icon),tip);
             xfpm_battery_icon_update(battery_icon,DISCHARGING,remaining_per);
         } 
-        else if ( remaining_per <= battery_icon->critical_level+18 && remaining_per > battery_icon->critical_level + 18 )
+        else if ( remaining_per <= ( battery_icon->critical_level+10 ) && remaining_per > battery_icon->critical_level )
         {
             strcat(tip,_(" Battery charge level is low"));
             gtk_status_icon_set_tooltip(GTK_STATUS_ICON(battery_icon),tip);

Modified: xfce4-power-manager/trunk/src/xfpm-battery.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.c	2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-battery.c	2008-10-14 06:56:52 UTC (rev 5608)
@@ -78,6 +78,8 @@
 #endif
 static void xfpm_battery_refresh_critical_charge(XfpmBattery *batt);
 static void xfpm_battery_refresh(XfpmBattery *batt);
+
+static void xfpm_battery_set_power_save(XfpmBattery *batt);
     
 static void xfpm_battery_notify_cb (GObject *object,
                                     GParamSpec *arg1,
@@ -144,6 +146,7 @@
     PROP_AC_ADAPTER,
     PROP_CRITICAL_CHARGE,
     PROP_CRITICAL_ACTION,
+    PROP_POWER_SAVE,
 #ifdef HAVE_LIBNOTIFY
     PROP_ENABLE_NOTIFICATION,
 #endif
@@ -213,7 +216,14 @@
                                                       XFPM_TYPE_SHOW_ICON,
                                                       0,
                                                       G_PARAM_READWRITE));
-                                                                                                       
+     g_object_class_install_property(gobject_class,
+                                    PROP_POWER_SAVE,
+                                    g_param_spec_boolean("enable-powersave",
+                                                         "Enable power save",
+                                                         "power save",
+                                                         TRUE,
+                                                         G_PARAM_READWRITE));
+                                                         
     g_type_class_add_private(klass,sizeof(XfpmBatteryPrivate));                                                     
 }
 
@@ -299,6 +309,9 @@
     case PROP_SHOW_TRAY_ICON:
         battery->show_tray = g_value_get_enum(value);
         break;    
+    case PROP_POWER_SAVE:
+        battery->power_save = g_value_get_boolean(value);
+        break;    
 #ifdef HAVE_LIBNOTIFY
     case PROP_ENABLE_NOTIFICATION:
         battery->notify_enabled = g_value_get_boolean(value);
@@ -331,7 +344,10 @@
         break;
     case PROP_SHOW_TRAY_ICON:
         g_value_set_enum(value, battery->show_tray);
-        break;    
+        break;
+    case PROP_POWER_SAVE:
+        g_value_set_boolean(value,battery->power_save);
+        break;        
 #ifdef HAVE_LIBNOTIFY
     case PROP_ENABLE_NOTIFICATION:
         g_value_set_boolean(value, battery->notify_enabled);
@@ -507,6 +523,23 @@
     xfpm_battery_refresh_tray_icon(batt);
 }
 
+static void
+xfpm_battery_set_power_save(XfpmBattery *batt)
+{
+    XfpmBatteryPrivate *priv;
+    priv = XFPM_BATTERY_GET_PRIVATE(batt);
+    GError *error = NULL;
+    
+    xfpm_hal_set_power_save(priv->hal,batt->power_save,&error);
+    
+    if ( error )
+    {
+        XFPM_DEBUG("%s : \n",error->message);
+        g_error_free(error);
+    }
+    
+}
+
 static void 
 xfpm_battery_notify_cb (GObject *object,
                         GParamSpec *arg1,
@@ -528,7 +561,15 @@
         xfpm_battery_refresh_notification(XFPM_BATTERY(object));
     }    
 #endif 
-    
+    else if ( !strcmp(arg1->name,"enable-powersave") )
+    {
+        xfpm_battery_set_power_save(XFPM_BATTERY(object));
+    }
+    else if ( !strcmp(arg1->name,"on-ac-adapter") )
+    {
+        if ( XFPM_BATTERY(object)->power_save )
+        xfpm_battery_set_power_save(XFPM_BATTERY(object));
+    }
 }
 
 static void
@@ -546,6 +587,7 @@
 #ifdef HAVE_LIBNOTIFY
         batt->notify_enabled = TRUE;
 #endif
+        batt->power_save = TRUE;
         batt->show_tray = ALWAYS;
         return;
     }
@@ -556,6 +598,7 @@
     batt->critical_level  =  xfconf_channel_get_uint(channel,CRITICAL_BATT_CFG,10);
     batt->critical_action = xfconf_channel_get_uint(channel,CRITICAL_BATT_ACTION_CFG,NOTHING);
     batt->show_tray = xfconf_channel_get_uint(channel,SHOW_TRAY_ICON_CFG,ALWAYS);
+    batt->power_save = xfconf_channel_get_bool(channel,POWER_SAVE_CFG,TRUE);
 #ifdef HAVE_LIBNOTIFY
      batt->notify_enabled = xfconf_channel_get_bool(channel,BATT_STATE_NOTIFICATION_CFG,TRUE);
 #endif 

Modified: xfce4-power-manager/trunk/src/xfpm-battery.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.h	2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-battery.h	2008-10-14 06:56:52 UTC (rev 5608)
@@ -50,6 +50,7 @@
     gboolean can_hibernate;
     gboolean can_suspend;
     gboolean show_sleep_errors;
+    gboolean power_save;
     
 #ifdef HAVE_LIBNOTIFY
     gboolean notify_enabled;

Modified: xfce4-power-manager/trunk/src/xfpm-common.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.h	2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-common.h	2008-10-14 06:56:52 UTC (rev 5608)
@@ -39,10 +39,11 @@
 #define ON_AC_CPU_GOV_CFG           "/xfce4-power-manager/on-ac-cpu-gov"
 #define ON_BATT_CPU_GOV_CFG         "/xfce4-power-manager/on-batt-cpu-gov"
 
+#define POWER_SAVE_CFG              "/xfce4-power-manager/power-save"
 #define LCD_BRIGHTNESS_CFG          "/xfce4-power-manager/lcd-brightness"
 #define LID_SWITCH_CFG              "/xfce4-power-manager/lid-switch-action"
-#define SLEEP_SWITCH_CFG              "/xfce4-power-manager/sleep-switch-action"
-#define POWER_SWITCH_CFG              "/xfce4-power-manager/power-switch-action"
+#define SLEEP_SWITCH_CFG            "/xfce4-power-manager/sleep-switch-action"
+#define POWER_SWITCH_CFG            "/xfce4-power-manager/power-switch-action"
 
 #ifdef HAVE_LIBNOTIFY
 #define BATT_STATE_NOTIFICATION_CFG "/xfce4-power-manager/battery-state-notification"  /* default TRUE */

Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c	2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c	2008-10-14 06:56:52 UTC (rev 5608)
@@ -402,6 +402,12 @@
         return;
     }
     
+    if ( !strcmp(property,POWER_SAVE_CFG) )
+    {
+        gboolean val = g_value_get_boolean(value);
+        g_object_set(G_OBJECT(priv->batt),"enable-powersave",val,NULL);
+        return;
+    }
 } 
 
 static gboolean

Modified: xfce4-power-manager/trunk/src/xfpm-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-hal.c	2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-hal.c	2008-10-14 06:56:52 UTC (rev 5608)
@@ -999,7 +999,7 @@
 
     if ( !reply ) 
     {
-        g_set_error(gerror,0,0,_("No reply from HAL daemon to set cpu governor message"));
+        g_set_error(gerror,0,0,_("No reply from HAL daemon to set power save profile"));
         return;
     }
     dbus_message_unref(reply);

Modified: xfce4-power-manager/trunk/src/xfpm-settings.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-settings.c	2008-10-14 03:14:36 UTC (rev 5607)
+++ xfce4-power-manager/trunk/src/xfpm-settings.c	2008-10-14 06:56:52 UTC (rev 5608)
@@ -166,6 +166,17 @@
     }
 }
 
+static void
+set_power_save_cb(GtkWidget *widget,XfconfChannel *channel)
+{
+    gboolean value = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
+    
+    if(!xfconf_channel_set_bool(channel,POWER_SAVE_CFG,value))
+    {
+        g_critical("Cannot set value %s\n",POWER_SAVE_CFG);
+    }
+}
+
 #ifdef HAVE_DPMS
 static void
 set_dpms_cb(GtkWidget *widget,XfconfChannel *channel)
@@ -384,8 +395,9 @@
     GtkWidget *label;
     GtkWidget *critical_spin;
     GtkWidget *action;
+    GtkWidget *check_powersave;
     
-    table = gtk_table_new(3,2,TRUE);
+    table = gtk_table_new(4,2,TRUE);
     gtk_widget_show(table);
     frame = xfce_create_framebox(_("Battery configuration"), &align);
     gtk_widget_show(frame);
@@ -422,18 +434,30 @@
     gtk_widget_show(action);
     g_signal_connect(action,"changed",G_CALLBACK(set_critical_action_cb),channel);
     gtk_table_attach(GTK_TABLE(table),action,1,2,1,2,GTK_SHRINK,GTK_SHRINK,0,0);
+
+    /// Enable power save
+    label = gtk_label_new(_("Enable power save on battery power"));
+    gtk_widget_show(label);
+    check_powersave = gtk_check_button_new();
+    gtk_widget_show(check_powersave);
+    gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,2,3);
+    gtk_table_attach(GTK_TABLE(table),check_powersave,1,2,2,3,GTK_SHRINK,GTK_SHRINK,0,0);
+    g_signal_connect(check_powersave,"toggled",G_CALLBACK(set_power_save_cb),channel);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_powersave),
+                                 xfconf_channel_get_bool(channel,POWER_SAVE_CFG,TRUE)); 
+                                 
     
 #ifdef HAVE_LIBNOTIFY
     GtkWidget *notify_bt;        
     label = gtk_label_new(_("Enable battery state notification"));
     gtk_widget_show(label);
-    gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,2,3);
+    gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,3,4);
     notify_bt = gtk_check_button_new();
     gtk_widget_show(notify_bt);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(notify_bt),
                                  xfconf_channel_get_bool(channel,BATT_STATE_NOTIFICATION_CFG,TRUE)); 
     g_signal_connect(notify_bt,"toggled",G_CALLBACK(set_battery_state_notification_cb),channel); 
-    gtk_table_attach(GTK_TABLE(table),notify_bt,1,2,2,3,GTK_SHRINK,GTK_SHRINK,0,0);                             
+    gtk_table_attach(GTK_TABLE(table),notify_bt,1,2,3,4,GTK_SHRINK,GTK_SHRINK,0,0);                             
 #endif        
     
     gtk_container_add(GTK_CONTAINER(align),table);
@@ -963,8 +987,9 @@
     return frame;
 }
 
+
 static void
-_cursor_changed_cb(GtkTreeView *view,gpointer data)
+_cursor_changed_cb(GtkIconView *view,gpointer data)
 {
     GtkTreeSelection *sel;
 	GtkTreeModel     *model;
@@ -989,7 +1014,6 @@
     {
         gtk_notebook_set_current_page(GTK_NOTEBOOK(nt),0);
     }
-        
 }
 
 static GtkWidget *




More information about the Goodies-commits mailing list