summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-04-27 18:21:28 +0200
committerThomas Haller <thaller@redhat.com>2016-04-28 12:52:13 +0200
commitda394606b325a8a6eaca1d24eb0673dc6803f4b7 (patch)
tree8b0ff1f1acf70fe389708d1ef56ead504350a890
parent885a01980f9c36ef51e64a00b29077f8437547bd (diff)
downloadNetworkManager-th/sleep-monitor-merge-bgo765682.tar.gz
sleep-monitor: merge RESUMING and SLEEPING signal into SLEEP_SIGNALth/sleep-monitor-merge-bgo765682
Having two signals is more complicated and everybody who cares about one signal also cares about the other.
-rw-r--r--src/nm-manager.c24
-rw-r--r--src/nm-sleep-monitor.c35
-rw-r--r--src/nm-sleep-monitor.h8
3 files changed, 22 insertions, 45 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 3f6648b912..56a7959a7c 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -4017,21 +4017,12 @@ impl_manager_sleep (NMManager *self,
}
static void
-sleeping_cb (NMSleepMonitor *monitor, gpointer user_data)
+sleep_signal_cb (NMSleepMonitor *monitor, gboolean is_about_to_suspend, gpointer user_data)
{
NMManager *self = user_data;
- _LOGD (LOGD_SUSPEND, "Received sleeping signal");
- _internal_sleep (self, TRUE);
-}
-
-static void
-resuming_cb (NMSleepMonitor *monitor, gpointer user_data)
-{
- NMManager *self = user_data;
-
- _LOGD (LOGD_SUSPEND, "Received resuming signal");
- _internal_sleep (self, FALSE);
+ _LOGD (LOGD_SUSPEND, "Received %s signal", is_about_to_suspend ? "sleeping" : "resuming");
+ _internal_sleep (self, is_about_to_suspend);
}
static void
@@ -5198,10 +5189,8 @@ nm_manager_init (NMManager *self)
/* sleep/wake handling */
priv->sleep_monitor = g_object_ref (nm_sleep_monitor_get ());
- g_signal_connect (priv->sleep_monitor, NM_SLEEP_MONITOR_SLEEPING,
- G_CALLBACK (sleeping_cb), self);
- g_signal_connect (priv->sleep_monitor, NM_SLEEP_MONITOR_RESUMING,
- G_CALLBACK (resuming_cb), self);
+ g_signal_connect (priv->sleep_monitor, NM_SLEEP_MONITOR_SLEEP_SIGNAL,
+ G_CALLBACK (sleep_signal_cb), self);
/* Listen for authorization changes */
g_signal_connect (nm_auth_manager_get (),
@@ -5437,8 +5426,7 @@ dispose (GObject *object)
_set_prop_filter (manager, NULL);
if (priv->sleep_monitor) {
- g_signal_handlers_disconnect_by_func (priv->sleep_monitor, sleeping_cb, manager);
- g_signal_handlers_disconnect_by_func (priv->sleep_monitor, resuming_cb, manager);
+ g_signal_handlers_disconnect_by_func (priv->sleep_monitor, sleep_signal_cb, manager);
g_clear_object (&priv->sleep_monitor);
}
diff --git a/src/nm-sleep-monitor.c b/src/nm-sleep-monitor.c
index af9bf6fbfd..90eab55882 100644
--- a/src/nm-sleep-monitor.c
+++ b/src/nm-sleep-monitor.c
@@ -83,8 +83,7 @@ struct _NMSleepMonitorClass {
};
enum {
- SLEEPING,
- RESUMING,
+ SLEEP_SIGNAL,
LAST_SIGNAL,
};
static guint signals[LAST_SIGNAL] = {0};
@@ -238,17 +237,17 @@ sleep_signal (NMSleepMonitor *self,
_LOGD ("received %s signal", is_about_to_suspend ? "SLEEP" : "RESUME");
- if (is_about_to_suspend) {
- g_signal_emit (self, signals[SLEEPING], 0);
#if !USE_UPOWER
- drop_inhibitor (self);
+ if (!is_about_to_suspend)
+ take_inhibitor (self);
#endif
- } else {
+
+ g_signal_emit (self, signals[SLEEP_SIGNAL], 0, is_about_to_suspend);
+
#if !USE_UPOWER
- take_inhibitor (self);
+ if (is_about_to_suspend)
+ drop_inhibitor (self);
#endif
- g_signal_emit (self, signals[RESUMING], 0);
- }
}
static void
@@ -333,17 +332,11 @@ nm_sleep_monitor_class_init (NMSleepMonitorClass *klass)
gobject_class->dispose = dispose;
- signals[SLEEPING] = g_signal_new (NM_SLEEP_MONITOR_SLEEPING,
- NM_TYPE_SLEEP_MONITOR,
- G_SIGNAL_RUN_LAST,
- 0, NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
- signals[RESUMING] = g_signal_new (NM_SLEEP_MONITOR_RESUMING,
- NM_TYPE_SLEEP_MONITOR,
- G_SIGNAL_RUN_LAST,
- 0, NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ signals[SLEEP_SIGNAL] = g_signal_new (NM_SLEEP_MONITOR_SLEEP_SIGNAL,
+ NM_TYPE_SLEEP_MONITOR,
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
}
diff --git a/src/nm-sleep-monitor.h b/src/nm-sleep-monitor.h
index 21e6b844c8..58c1b3d0e8 100644
--- a/src/nm-sleep-monitor.h
+++ b/src/nm-sleep-monitor.h
@@ -13,16 +13,13 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2012 Red Hat, Inc.
+ * (C) Copyright 2012-2016 Red Hat, Inc.
* Author: Matthias Clasen <mclasen@redhat.com>
*/
#ifndef __NETWORKMANAGER_SLEEP_MONITOR_H__
#define __NETWORKMANAGER_SLEEP_MONITOR_H__
-
-#include "nm-default.h"
-
G_BEGIN_DECLS
#define NM_TYPE_SLEEP_MONITOR (nm_sleep_monitor_get_type ())
@@ -32,8 +29,7 @@ G_BEGIN_DECLS
#define NM_IS_SLEEP_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NM_TYPE_SLEEP_MONITOR))
#define NM_IS_SLEEP_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), NM_TYPE_SLEEP_MONITOR))
-#define NM_SLEEP_MONITOR_SLEEPING "sleeping"
-#define NM_SLEEP_MONITOR_RESUMING "resuming"
+#define NM_SLEEP_MONITOR_SLEEP_SIGNAL "sleep-signal"
typedef struct _NMSleepMonitorClass NMSleepMonitorClass;