summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2010-03-29 16:42:35 +0100
committerRichard Hughes <richard@hughsie.com>2010-03-29 16:42:35 +0100
commitd1bd4d42fd383777d3c1e6586513f59ccdb2ea96 (patch)
treeed09d4a865d6fc5c49f35dac9ad513ce9a4b2034 /src
parent4b5dc883e60adcd41d005eb6f9e2feb012a1a7de (diff)
downloadupower-d1bd4d42fd383777d3c1e6586513f59ccdb2ea96.tar.gz
Get the suspend and hibernate commands from the backend, rather than hardcoding Linux specifics
Diffstat (limited to 'src')
-rw-r--r--src/freebsd/up-backend.c10
-rw-r--r--src/linux/up-backend.c21
-rw-r--r--src/up-backend.h2
-rw-r--r--src/up-daemon.c8
4 files changed, 34 insertions, 7 deletions
diff --git a/src/freebsd/up-backend.c b/src/freebsd/up-backend.c
index 69bc154..e62bb22 100644
--- a/src/freebsd/up-backend.c
+++ b/src/freebsd/up-backend.c
@@ -301,7 +301,7 @@ up_backend_coldplug (UpBackend *backend, UpDaemon *daemon)
/**
* up_backend_get_powersave_command:
**/
-gchar *
+const gchar *
up_backend_get_powersave_command (UpBackend *backend, gboolean powersave)
{
/* XXX: Do we want to use powerd here? */
@@ -311,19 +311,19 @@ up_backend_get_powersave_command (UpBackend *backend, gboolean powersave)
/**
* up_backend_get_suspend_command:
**/
-gchar *
+const gchar *
up_backend_get_suspend_command (UpBackend *backend)
{
- return g_strdup (UP_BACKEND_SUSPEND_COMMAND);
+ return UP_BACKEND_SUSPEND_COMMAND;
}
/**
* up_backend_get_hibernate_command:
**/
-gchar *
+const gchar *
up_backend_get_hibernate_command (UpBackend *backend)
{
- return g_strdup (UP_BACKEND_HIBERNATE_COMMAND);
+ return UP_BACKEND_HIBERNATE_COMMAND;
}
/**
diff --git a/src/linux/up-backend.c b/src/linux/up-backend.c
index c12102d..26ff5f0 100644
--- a/src/linux/up-backend.c
+++ b/src/linux/up-backend.c
@@ -68,6 +68,9 @@ G_DEFINE_TYPE (UpBackend, up_backend, G_TYPE_OBJECT)
static gboolean up_backend_device_add (UpBackend *backend, GUdevDevice *native);
static void up_backend_device_remove (UpBackend *backend, GUdevDevice *native);
+#define UP_BACKEND_SUSPEND_COMMAND "/usr/sbin/pm-suspend"
+#define UP_BACKEND_HIBERNATE_COMMAND "/usr/sbin/pm-hibernate"
+
/**
* up_backend_device_new:
**/
@@ -522,6 +525,24 @@ out:
}
/**
+ * up_backend_get_suspend_command:
+ **/
+const gchar *
+up_backend_get_suspend_command (UpBackend *backend)
+{
+ return UP_BACKEND_SUSPEND_COMMAND;
+}
+
+/**
+ * up_backend_get_hibernate_command:
+ **/
+const gchar *
+up_backend_get_hibernate_command (UpBackend *backend)
+{
+ return UP_BACKEND_HIBERNATE_COMMAND;
+}
+
+/**
* up_backend_class_init:
* @klass: The UpBackendClass
**/
diff --git a/src/up-backend.h b/src/up-backend.h
index 2384388..d485a2e 100644
--- a/src/up-backend.h
+++ b/src/up-backend.h
@@ -71,6 +71,8 @@ gboolean up_backend_kernel_can_suspend (UpBackend *backend);
gboolean up_backend_kernel_can_hibernate (UpBackend *backend);
gboolean up_backend_has_encrypted_swap (UpBackend *backend);
gfloat up_backend_get_used_swap (UpBackend *backend);
+const gchar *up_backend_get_suspend_command (UpBackend *backend);
+const gchar *up_backend_get_hibernate_command (UpBackend *backend);
G_END_DECLS
diff --git a/src/up-daemon.c b/src/up-daemon.c
index c2ba877..bd84636 100644
--- a/src/up-daemon.c
+++ b/src/up-daemon.c
@@ -430,6 +430,7 @@ up_daemon_suspend (UpDaemon *daemon, DBusGMethodInvocation *context)
{
GError *error;
PolkitSubject *subject = NULL;
+ const gchar *command;
/* no kernel support */
if (!daemon->priv->kernel_can_suspend) {
@@ -457,7 +458,8 @@ up_daemon_suspend (UpDaemon *daemon, DBusGMethodInvocation *context)
}
/* do this deferred action */
- up_daemon_deferred_sleep (daemon, "/usr/sbin/pm-suspend", context);
+ command = up_backend_get_suspend_command (daemon->priv->backend);
+ up_daemon_deferred_sleep (daemon, command, context);
out:
if (subject != NULL)
g_object_unref (subject);
@@ -494,6 +496,7 @@ up_daemon_hibernate (UpDaemon *daemon, DBusGMethodInvocation *context)
{
GError *error;
PolkitSubject *subject = NULL;
+ const gchar *command;
/* no kernel support */
if (!daemon->priv->kernel_can_hibernate) {
@@ -539,7 +542,8 @@ up_daemon_hibernate (UpDaemon *daemon, DBusGMethodInvocation *context)
}
/* do this deferred action */
- up_daemon_deferred_sleep (daemon, "/usr/sbin/pm-hibernate", context);
+ command = up_backend_get_hibernate_command (daemon->priv->backend);
+ up_daemon_deferred_sleep (daemon, command, context);
out:
if (subject != NULL)
g_object_unref (subject);