aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am12
-rw-r--r--src/main.c6
-rw-r--r--src/meson.build7
-rw-r--r--src/mm-base-bearer.c2
-rw-r--r--src/mm-base-bearer.h4
-rw-r--r--src/mm-base-manager.c2
-rw-r--r--src/mm-base-manager.h2
-rw-r--r--src/mm-base-modem.c4
-rw-r--r--src/mm-base-modem.h4
-rw-r--r--src/mm-bearer-list.c2
-rw-r--r--src/mm-bearer-list.h2
-rw-r--r--src/mm-bearer-mbim.c6
-rw-r--r--src/mm-bearer-qmi.c2
-rw-r--r--src/mm-broadband-bearer.c2
-rw-r--r--src/mm-broadband-modem.c4
-rw-r--r--src/mm-context.c6
-rw-r--r--src/mm-context.h2
-rw-r--r--src/mm-iface-modem-3gpp.c2
-rw-r--r--src/mm-iface-modem-3gpp.h2
-rw-r--r--src/mm-iface-modem-time.c2
-rw-r--r--src/mm-iface-modem-time.h2
-rw-r--r--src/mm-iface-modem.c2
-rw-r--r--src/mm-iface-modem.h2
-rw-r--r--src/mm-sleep-monitor-powerd.c171
-rw-r--r--src/mm-sleep-monitor-systemd.c (renamed from src/mm-sleep-monitor.c)4
25 files changed, 221 insertions, 35 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index e4ca5f7a..2a2c30dd 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -399,7 +399,17 @@ nodist_ModemManager_SOURCES = $(DAEMON_ENUMS_GENERATED)
# Additional suspend/resume support via systemd
if WITH_SYSTEMD_SUSPEND_RESUME
-ModemManager_SOURCES += mm-sleep-monitor.h mm-sleep-monitor.c
+ModemManager_SOURCES += \
+ mm-sleep-monitor.h \
+ mm-sleep-monitor-systemd.c \
+ $(NULL)
+endif
+
+if WITH_POWERD_SUSPEND_RESUME
+ModemManager_SOURCES += \
+ mm-sleep-monitor.h \
+ mm-sleep-monitor-powerd.c \
+ $(NULL)
endif
# Additional QMI support in ModemManager
diff --git a/src/main.c b/src/main.c
index 8516d7bc..368df7ae 100644
--- a/src/main.c
+++ b/src/main.c
@@ -31,7 +31,7 @@
#include "mm-base-manager.h"
#include "mm-context.h"
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
# include "mm-sleep-monitor.h"
#endif
@@ -56,7 +56,7 @@ quit_cb (gpointer user_data)
return FALSE;
}
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
static void
sleeping_cb (MMSleepMonitor *sleep_monitor)
@@ -193,7 +193,7 @@ main (int argc, char *argv[])
name_lost_cb,
NULL,
NULL);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
{
MMSleepMonitor *sleep_monitor;
diff --git a/src/meson.build b/src/meson.build
index fdf6b09c..2d1faed7 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -266,7 +266,7 @@ endif
# Additional suspend/resume support via systemd
if enable_systemd_suspend_resume
- sources += files('mm-sleep-monitor.c')
+ sources += files('mm-sleep-monitor-systemd.c')
deps += [
gio_unix_dep,
@@ -274,6 +274,11 @@ if enable_systemd_suspend_resume
]
endif
+#suspend/resume support via powerd
+if enable_powerd_suspend_resume
+ sources += files('mm-sleep-monitor-powerd.c')
+endif
+
if enable_polkit
deps += polkit_gobject_dep
endif
diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c
index f8d8e73a..64a19a97 100644
--- a/src/mm-base-bearer.c
+++ b/src/mm-base-bearer.c
@@ -1604,7 +1604,7 @@ mm_base_bearer_report_connection_status_detailed (MMBaseBearer *self
/*****************************************************************************/
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
typedef struct _SyncingContext SyncingContext;
static void interface_syncing_step (GTask *task);
diff --git a/src/mm-base-bearer.h b/src/mm-base-bearer.h
index c497a6d5..336b4442 100644
--- a/src/mm-base-bearer.h
+++ b/src/mm-base-bearer.h
@@ -149,7 +149,7 @@ struct _MMBaseBearerClass {
GAsyncResult *res,
GError **error);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
/* Reload connection status:
*
@@ -226,7 +226,7 @@ void mm_base_bearer_report_speeds (MMBaseBearer *self,
guint64 uplink_speed,
guint64 downlink_speed);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
/* Sync Broadband Bearer (async) */
void mm_base_bearer_sync (MMBaseBearer *self,
diff --git a/src/mm-base-manager.c b/src/mm-base-manager.c
index 46f1ad43..13a98ebc 100644
--- a/src/mm-base-manager.c
+++ b/src/mm-base-manager.c
@@ -727,7 +727,7 @@ mm_base_manager_num_modems (MMBaseManager *self)
/*****************************************************************************/
/* Quick resume synchronization */
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
static void
base_modem_sync_ready (MMBaseModem *self,
diff --git a/src/mm-base-manager.h b/src/mm-base-manager.h
index be51d0c0..e913f497 100644
--- a/src/mm-base-manager.h
+++ b/src/mm-base-manager.h
@@ -66,7 +66,7 @@ void mm_base_manager_start (MMBaseManager *manager,
void mm_base_manager_shutdown (MMBaseManager *manager,
gboolean disable);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
void mm_base_manager_sync (MMBaseManager *manager);
#endif
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 9dc26601..e7c49025 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -629,7 +629,7 @@ mm_base_modem_wait_link_port (MMBaseModem *self,
/******************************************************************************/
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
gboolean
mm_base_modem_sync_finish (MMBaseModem *self,
@@ -675,7 +675,7 @@ mm_base_modem_sync (MMBaseModem *self,
task);
}
-#endif /* WITH_SYSTEMD_SUSPEND_RESUME */
+#endif /* WITH_SUSPEND_RESUME */
/******************************************************************************/
diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h
index 1b7a2219..24eba82b 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -109,7 +109,7 @@ struct _MMBaseModemClass {
GAsyncResult *res,
GError **error);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
/* Modem synchronization.
* When resuming in quick suspend/resume mode,
* this method triggers a synchronization of all modem interfaces */
@@ -245,7 +245,7 @@ gboolean mm_base_modem_disable_finish (MMBaseModem *self,
GAsyncResult *res,
GError **error);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
void mm_base_modem_sync (MMBaseModem *self,
GAsyncReadyCallback callback,
diff --git a/src/mm-bearer-list.c b/src/mm-bearer-list.c
index 790115eb..42e6b3ba 100644
--- a/src/mm-bearer-list.c
+++ b/src/mm-bearer-list.c
@@ -277,7 +277,7 @@ mm_bearer_list_disconnect_all_bearers (MMBearerList *self,
/*****************************************************************************/
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
typedef struct {
GList *pending;
diff --git a/src/mm-bearer-list.h b/src/mm-bearer-list.h
index 8f3c8d49..50338fdf 100644
--- a/src/mm-bearer-list.h
+++ b/src/mm-bearer-list.h
@@ -86,7 +86,7 @@ gboolean mm_bearer_list_disconnect_all_bearers_finish (MMBearerList *self,
GAsyncResult *res,
GError **error);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
void mm_bearer_list_sync_all_bearers (MMBearerList *self,
GAsyncReadyCallback callback,
diff --git a/src/mm-bearer-mbim.c b/src/mm-bearer-mbim.c
index 3a56e07e..542881e3 100644
--- a/src/mm-bearer-mbim.c
+++ b/src/mm-bearer-mbim.c
@@ -1709,7 +1709,7 @@ report_connection_status (MMBaseBearer *self,
/*****************************************************************************/
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
static MMBearerConnectionStatus
reload_connection_status_finish (MMBaseBearer *self,
@@ -1845,7 +1845,7 @@ reload_connection_status (MMBaseBearer *self,
task);
}
-#endif /* WITH_SYSTEMD_SUSPEND_RESUME */
+#endif /* WITH_SUSPEND_RESUME */
/*****************************************************************************/
@@ -1906,7 +1906,7 @@ mm_bearer_mbim_class_init (MMBearerMbimClass *klass)
base_bearer_class->reload_stats_finish = reload_stats_finish;
base_bearer_class->load_connection_status = NULL;
base_bearer_class->load_connection_status_finish = NULL;
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
base_bearer_class->reload_connection_status = reload_connection_status;
base_bearer_class->reload_connection_status_finish = reload_connection_status_finish;
#endif
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
index c6835e40..b0a86bc4 100644
--- a/src/mm-bearer-qmi.c
+++ b/src/mm-bearer-qmi.c
@@ -2680,7 +2680,7 @@ mm_bearer_qmi_class_init (MMBearerQmiClass *klass)
base_bearer_class->reload_stats_finish = reload_stats_finish;
base_bearer_class->load_connection_status = load_connection_status;
base_bearer_class->load_connection_status_finish = load_connection_status_finish;
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
base_bearer_class->reload_connection_status = reload_connection_status;
base_bearer_class->reload_connection_status_finish = reload_connection_status_finish;
#endif
diff --git a/src/mm-broadband-bearer.c b/src/mm-broadband-bearer.c
index ffb5d6e8..0a4f7477 100644
--- a/src/mm-broadband-bearer.c
+++ b/src/mm-broadband-bearer.c
@@ -2043,7 +2043,7 @@ mm_broadband_bearer_class_init (MMBroadbandBearerClass *klass)
base_bearer_class->report_connection_status = report_connection_status;
base_bearer_class->load_connection_status = load_connection_status;
base_bearer_class->load_connection_status_finish = load_connection_status_finish;
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
base_bearer_class->reload_connection_status = load_connection_status;
base_bearer_class->reload_connection_status_finish = load_connection_status_finish;
#endif
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 3dde167e..5c309195 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -12064,7 +12064,7 @@ enable (MMBaseModem *self,
}
/*****************************************************************************/
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
typedef enum {
SYNCING_STEP_FIRST,
@@ -13640,7 +13640,7 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass)
base_modem_class->disable = disable;
base_modem_class->disable_finish = disable_finish;
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
base_modem_class->sync = synchronize;
base_modem_class->sync_finish = synchronize_finish;
#endif
diff --git a/src/mm-context.c b/src/mm-context.c
index 37793e5a..ecb409bb 100644
--- a/src/mm-context.c
+++ b/src/mm-context.c
@@ -231,7 +231,7 @@ static gchar *test_plugin_dir;
#if defined WITH_UDEV
static gboolean test_no_udev;
#endif
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
static gboolean test_no_suspend_resume;
static gboolean test_quick_suspend_resume;
#endif
@@ -266,7 +266,7 @@ static const GOptionEntry test_entries[] = {
NULL
},
#endif
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
{
"test-no-suspend-resume", 0, 0, G_OPTION_ARG_NONE, &test_no_suspend_resume,
"Disable suspend/resume support at runtime even if available",
@@ -340,7 +340,7 @@ mm_context_get_test_no_udev (void)
}
#endif
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
gboolean
mm_context_get_test_no_suspend_resume (void)
{
diff --git a/src/mm-context.h b/src/mm-context.h
index 8a5c0458..f33f27ac 100644
--- a/src/mm-context.h
+++ b/src/mm-context.h
@@ -50,7 +50,7 @@ const gchar *mm_context_get_test_plugin_dir (void);
#if defined WITH_UDEV
gboolean mm_context_get_test_no_udev (void);
#endif
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
gboolean mm_context_get_test_no_suspend_resume (void);
gboolean mm_context_get_test_quick_suspend_resume (void);
#endif
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
index 51536612..000d1abb 100644
--- a/src/mm-iface-modem-3gpp.c
+++ b/src/mm-iface-modem-3gpp.c
@@ -2794,7 +2794,7 @@ mm_iface_modem_3gpp_enable (MMIfaceModem3gpp *self,
/*****************************************************************************/
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
typedef struct _SyncingContext SyncingContext;
static void interface_syncing_step (GTask *task);
diff --git a/src/mm-iface-modem-3gpp.h b/src/mm-iface-modem-3gpp.h
index 39425f0f..042af657 100644
--- a/src/mm-iface-modem-3gpp.h
+++ b/src/mm-iface-modem-3gpp.h
@@ -302,7 +302,7 @@ gboolean mm_iface_modem_3gpp_disable_finish (MMIfaceModem3gpp *self,
GAsyncResult *res,
GError **error);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
/* Sync 3GPP interface (async) */
void mm_iface_modem_3gpp_sync (MMIfaceModem3gpp *self,
diff --git a/src/mm-iface-modem-time.c b/src/mm-iface-modem-time.c
index 0d4f3764..af631bcc 100644
--- a/src/mm-iface-modem-time.c
+++ b/src/mm-iface-modem-time.c
@@ -728,7 +728,7 @@ mm_iface_modem_time_enable (MMIfaceModemTime *self,
/*****************************************************************************/
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
typedef struct _SyncingContext SyncingContext;
static void interface_syncing_step (GTask *task);
diff --git a/src/mm-iface-modem-time.h b/src/mm-iface-modem-time.h
index a3ac7074..753dc837 100644
--- a/src/mm-iface-modem-time.h
+++ b/src/mm-iface-modem-time.h
@@ -125,7 +125,7 @@ gboolean mm_iface_modem_time_disable_finish (MMIfaceModemTime *self,
/* Shutdown Time interface */
void mm_iface_modem_time_shutdown (MMIfaceModemTime *self);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
/* Sync Time interface (async) */
void mm_iface_modem_time_sync (MMIfaceModemTime *self,
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index bea7f077..69c1872b 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -4472,7 +4472,7 @@ mm_iface_modem_enable (MMIfaceModem *self,
/*****************************************************************************/
/* MODEM SYNCHRONIZATION */
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
typedef struct _SyncingContext SyncingContext;
static void interface_syncing_step (GTask *task);
diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h
index 43034dda..cf4274be 100644
--- a/src/mm-iface-modem.h
+++ b/src/mm-iface-modem.h
@@ -481,7 +481,7 @@ void mm_iface_modem_shutdown (MMIfaceModem *self);
gboolean mm_iface_modem_abort_invocation_if_state_not_reached (MMIfaceModem *self,
GDBusMethodInvocation *invocation,
MMModemState minimum_required);
-#if defined WITH_SYSTEMD_SUSPEND_RESUME
+#if defined WITH_SUSPEND_RESUME
/* Sync Modem interface (async) */
void mm_iface_modem_sync (MMIfaceModem *self,
diff --git a/src/mm-sleep-monitor-powerd.c b/src/mm-sleep-monitor-powerd.c
new file mode 100644
index 00000000..4d6d7bba
--- /dev/null
+++ b/src/mm-sleep-monitor-powerd.c
@@ -0,0 +1,171 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2022 Google, Inc.
+ * Author: Rukun Mao <rmao@google.com>
+ * Original code from ./mm-sleep-monitor-systemd.c
+ */
+
+#include "config.h"
+
+#include <errno.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <glib/gi18n.h>
+#include <gio/gio.h>
+
+#include "mm-log-object.h"
+#include "mm-utils.h"
+#include "mm-sleep-monitor.h"
+
+#define PD_NAME "org.chromium.PowerManager"
+#define PD_PATH "/org/chromium/PowerManager"
+#define PD_INTERFACE "org.chromium.PowerManager"
+
+struct _MMSleepMonitor {
+ GObject parent_instance;
+
+ GDBusProxy *pd_proxy;
+};
+
+struct _MMSleepMonitorClass {
+ GObjectClass parent_class;
+
+ void (*sleeping) (MMSleepMonitor *monitor);
+ void (*resuming) (MMSleepMonitor *monitor);
+};
+
+enum {
+ SLEEPING,
+ RESUMING,
+ LAST_SIGNAL,
+};
+
+static guint signals[LAST_SIGNAL] = {0};
+
+static void log_object_iface_init (MMLogObjectInterface *iface);
+
+G_DEFINE_TYPE_EXTENDED (MMSleepMonitor, mm_sleep_monitor, G_TYPE_OBJECT, 0,
+ G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init))
+
+/*****************************************************************************/
+
+static gchar *
+log_object_build_id (MMLogObject *_self)
+{
+ return g_strdup ("sleep-monitor-powerd");
+}
+
+/********************************************************************/
+
+static void
+signal_cb (GDBusProxy *proxy,
+ const gchar *sendername,
+ const gchar *signalname,
+ GVariant *args,
+ gpointer data)
+{
+ MMSleepMonitor *self = data;
+ gboolean is_about_to_suspend;
+
+ if (proxy == self->pd_proxy) {
+ if (strcmp (signalname, "SuspendImminent") == 0) {
+ mm_obj_info (self, "system suspend signal from powerd");
+ g_signal_emit (self, signals[SLEEPING], 0);
+ } else if (strcmp (signalname, "SuspendDone") == 0) {
+ mm_obj_info (self, "system resume signal from powerd");
+ g_signal_emit (self, signals[RESUMING], 0);
+ }
+ }
+}
+
+static void
+on_pd_proxy_acquired (GObject *object,
+ GAsyncResult *res,
+ MMSleepMonitor *self)
+{
+ GError *error = NULL;
+ char *owner;
+
+ self->pd_proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
+ if (!self->pd_proxy) {
+ mm_obj_warn (self, "failed to acquire powerd proxy: %s", error->message);
+ g_clear_error (&error);
+ return;
+ }
+
+ g_signal_connect (self->pd_proxy, "g-signal", G_CALLBACK (signal_cb), self);
+}
+
+static void
+mm_sleep_monitor_init (MMSleepMonitor *self)
+{
+ g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
+ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START |
+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+ NULL,
+ PD_NAME, PD_PATH, PD_INTERFACE,
+ NULL,
+ (GAsyncReadyCallback) on_pd_proxy_acquired, self);
+}
+
+static void
+finalize (GObject *object)
+{
+ MMSleepMonitor *self = MM_SLEEP_MONITOR (object);
+
+ if (self->pd_proxy)
+ g_object_unref (self->pd_proxy);
+
+ if (G_OBJECT_CLASS (mm_sleep_monitor_parent_class)->finalize != NULL)
+ G_OBJECT_CLASS (mm_sleep_monitor_parent_class)->finalize (object);
+}
+
+static void
+log_object_iface_init (MMLogObjectInterface *iface)
+{
+ iface->build_id = log_object_build_id;
+}
+
+static void
+mm_sleep_monitor_class_init (MMSleepMonitorClass *klass)
+{
+ GObjectClass *gobject_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->finalize = finalize;
+
+ signals[SLEEPING] = g_signal_new (MM_SLEEP_MONITOR_SLEEPING,
+ MM_TYPE_SLEEP_MONITOR,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (MMSleepMonitorClass, sleeping),
+ NULL, /* accumulator */
+ NULL, /* accumulator data */
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ signals[RESUMING] = g_signal_new (MM_SLEEP_MONITOR_RESUMING,
+ MM_TYPE_SLEEP_MONITOR,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (MMSleepMonitorClass, resuming),
+ NULL, /* accumulator */
+ NULL, /* accumulator data */
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+}
+
+MM_DEFINE_SINGLETON_GETTER (MMSleepMonitor, mm_sleep_monitor_get, MM_TYPE_SLEEP_MONITOR);
+
+/* ---------------------------------------------------------------------------------------------------- */
diff --git a/src/mm-sleep-monitor.c b/src/mm-sleep-monitor-systemd.c
index d3d181c1..a65aac42 100644
--- a/src/mm-sleep-monitor.c
+++ b/src/mm-sleep-monitor-systemd.c
@@ -34,7 +34,6 @@
#define SD_PATH "/org/freedesktop/login1"
#define SD_INTERFACE "org.freedesktop.login1.Manager"
-
struct _MMSleepMonitor {
GObject parent_instance;
@@ -55,6 +54,7 @@ enum {
RESUMING,
LAST_SIGNAL,
};
+
static guint signals[LAST_SIGNAL] = {0};
static void log_object_iface_init (MMLogObjectInterface *iface);
@@ -67,7 +67,7 @@ G_DEFINE_TYPE_EXTENDED (MMSleepMonitor, mm_sleep_monitor, G_TYPE_OBJECT, 0,
static gchar *
log_object_build_id (MMLogObject *_self)
{
- return g_strdup ("sleep-monitor");
+ return g_strdup ("sleep-monitor-systemd");
}
/********************************************************************/