diff options
author | Richard Hughes <richard@hughsie.com> | 2010-03-29 16:42:35 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2010-03-29 16:42:35 +0100 |
commit | d1bd4d42fd383777d3c1e6586513f59ccdb2ea96 (patch) | |
tree | ed09d4a865d6fc5c49f35dac9ad513ce9a4b2034 /src | |
parent | 4b5dc883e60adcd41d005eb6f9e2feb012a1a7de (diff) | |
download | upower-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.c | 10 | ||||
-rw-r--r-- | src/linux/up-backend.c | 21 | ||||
-rw-r--r-- | src/up-backend.h | 2 | ||||
-rw-r--r-- | src/up-daemon.c | 8 |
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); |