[Goodies-commits] r6885 - in xfce4-power-manager/trunk: . settings src

Ali Abdallah aliov at xfce.org
Wed Mar 11 13:33:35 CET 2009


Author: aliov
Date: 2009-03-11 12:33:35 +0000 (Wed, 11 Mar 2009)
New Revision: 6885

Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/settings/xfpm-settings.glade
   xfce4-power-manager/trunk/src/xfpm-dpms.c
Log:
Set dpms to standby or suspend depending on the user settings

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-03-11 12:06:57 UTC (rev 6884)
+++ xfce4-power-manager/trunk/ChangeLog	2009-03-11 12:33:35 UTC (rev 6885)
@@ -1,4 +1,7 @@
 
+2009-03-11 13:33 Ali aliov at xfce.org 
+	 * : Set dpms to standby or suspend depending on the user settings
+
 2009-03-11 13:06 Ali aliov at xfce.org 
 	 * : Fix infinite loop caused by g_signal_connect+added advanced settings in the dialog
 

Modified: xfce4-power-manager/trunk/settings/xfpm-settings.glade
===================================================================
--- xfce4-power-manager/trunk/settings/xfpm-settings.glade	2009-03-11 12:06:57 UTC (rev 6884)
+++ xfce4-power-manager/trunk/settings/xfpm-settings.glade	2009-03-11 12:33:35 UTC (rev 6885)
@@ -833,7 +833,7 @@
                                         <property name="orientation">vertical</property>
                                         <child>
                                           <widget class="GtkRadioButton" id="sleep-dpms-mode">
-                                            <property name="label" translatable="yes">Sleep</property>
+                                            <property name="label" translatable="yes">Standby</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="receives_default">False</property>

Modified: xfce4-power-manager/trunk/src/xfpm-dpms.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dpms.c	2009-03-11 12:06:57 UTC (rev 6884)
+++ xfce4-power-manager/trunk/src/xfpm-dpms.c	2009-03-11 12:33:35 UTC (rev 6885)
@@ -76,6 +76,7 @@
     guint16        off_on_ac;
     
     gboolean       on_battery;
+    guint8         sleep_dpms_mode; /*0=sleep 1=suspend*/
 };
 
 G_DEFINE_TYPE(XfpmDpms, xfpm_dpms, G_TYPE_OBJECT)
@@ -111,39 +112,58 @@
 }
 
 static void
-xfpm_dpms_timeouts_on_battery (XfpmDpms *dpms)
+xfpm_dpms_set_timeouts (XfpmDpms *dpms, guint16 standby, guint16 suspend, guint off)
 {
     CARD16 x_standby = 0 ,x_suspend = 0,x_off = 0;
     
     DPMSGetTimeouts (GDK_DISPLAY(), &x_standby, &x_suspend, &x_off);
     
-    if ( x_suspend != dpms->priv->sleep_on_battery ||
-    	 x_off != dpms->priv->off_on_battery )	
+    if ( standby != x_standby || suspend != x_suspend || off != x_off )
     {
-	DPMSSetTimeouts (GDK_DISPLAY(), dpms->priv->sleep_on_battery ,
-					dpms->priv->sleep_on_battery ,
-					dpms->priv->off_on_battery );
-	TRACE("sleep=%d  turn_off=%d\n", dpms->priv->sleep_on_battery, dpms->priv->off_on_battery);
+	TRACE ("Settings dpms: standby=%d suspend=%d off=%d\n", standby, suspend, off);
+	DPMSSetTimeouts (GDK_DISPLAY(), standby,
+					suspend,
+					off );
     }
+    
 }
 
 static void
+xfpm_dpms_timeouts_on_battery (XfpmDpms *dpms)
+{
+    if ( dpms->priv->sleep_dpms_mode == 0 )
+    {
+	xfpm_dpms_set_timeouts      (dpms, 
+				     dpms->priv->sleep_on_battery ,
+				     0,
+				     dpms->priv->off_on_battery );
+    }
+    else 
+    {
+	xfpm_dpms_set_timeouts 	    (dpms, 
+				     0,
+				     dpms->priv->sleep_on_battery ,
+				     dpms->priv->off_on_battery );
+    }
+}
+
+static void
 xfpm_dpms_timeouts_on_adapter (XfpmDpms *dpms)
 {
-    CARD16 x_standby = 0 ,x_suspend = 0,x_off = 0;
-    
-    DPMSGetTimeouts (GDK_DISPLAY(), &x_standby, &x_suspend, &x_off);
-    
-    if ( x_suspend != dpms->priv->sleep_on_ac ||
-    	 x_off != dpms->priv->off_on_ac )	
+    if ( dpms->priv->sleep_dpms_mode == 0 )
     {
-	DPMSSetTimeouts (GDK_DISPLAY(), dpms->priv->sleep_on_ac ,
-					dpms->priv->sleep_on_ac ,
-					dpms->priv->off_on_ac );
-					
-	TRACE("sleep=%d  turn_off=%d\n", dpms->priv->sleep_on_ac, dpms->priv->off_on_ac );
+	xfpm_dpms_set_timeouts	   (dpms, 
+				    dpms->priv->sleep_on_ac ,
+				    0,
+				    dpms->priv->off_on_ac );
     }
-    
+    else
+    {
+	xfpm_dpms_set_timeouts     (dpms, 
+				    0,
+				    dpms->priv->sleep_on_ac ,
+				    dpms->priv->off_on_ac );
+    }
 }
 
 static gboolean
@@ -172,7 +192,7 @@
 }
 
 static void
-xfpm_dpms_set_timeouts (XfpmDpms *dpms)
+xfpm_dpms_check (XfpmDpms *dpms)
 {
     xfpm_dpms_enable_disable (dpms);
     
@@ -221,9 +241,27 @@
 	dpms->priv->off_on_battery = MIN (3600, val * 60);
 	set = TRUE;
     }
+    else if ( xfpm_strequal (property, DPMS_SLEEP_MODE) )
+    {
+	const gchar *str = g_value_get_string (value);
+	if ( xfpm_strequal (str, "sleep" ) )
+	{
+	    dpms->priv->sleep_dpms_mode = 0;
+	}
+	else if ( xfpm_strequal (str, "suspend") )
+	{
+	    dpms->priv->sleep_dpms_mode = 1;
+	}
+	else
+	{
+	    g_critical("Invalid value %s for property %s\n", str, DPMS_SLEEP_MODE);
+	    dpms->priv->sleep_dpms_mode = 0;
+	}
+	set = TRUE;
+    }
     
     if ( set )
-    	xfpm_dpms_set_timeouts (dpms);
+    	xfpm_dpms_check (dpms);
 }
 
 static void
@@ -243,6 +281,23 @@
     
     dpms->priv->off_on_ac = 
     	MIN(xfconf_channel_get_uint( dpms->priv->channel, ON_AC_DPMS_OFF, 15) * 60, 3600);
+	
+    gchar *str = xfconf_channel_get_string (dpms->priv->channel, DPMS_SLEEP_MODE, "sleep");
+    
+    if ( xfpm_strequal (str, "sleep" ) )
+    {
+	dpms->priv->sleep_dpms_mode = 0;
+    }
+    else if ( xfpm_strequal (str, "suspend") )
+    {
+	dpms->priv->sleep_dpms_mode = 1;
+    }
+    else
+    {
+	g_critical("Invalid value %s for property %s\n", str, DPMS_SLEEP_MODE);
+	dpms->priv->sleep_dpms_mode = 0;
+    }
+    g_free (str);
 }
 
 XfpmDpms *
@@ -276,7 +331,7 @@
     
     dpms->priv->on_battery = on_battery;
     
-    xfpm_dpms_set_timeouts (dpms);
+    xfpm_dpms_check (dpms);
 }
 
 gboolean xfpm_dpms_capable (XfpmDpms *dpms)




More information about the Goodies-commits mailing list