From da394606b325a8a6eaca1d24eb0673dc6803f4b7 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 27 Apr 2016 18:21:28 +0200 Subject: sleep-monitor: merge RESUMING and SLEEPING signal into SLEEP_SIGNAL Having two signals is more complicated and everybody who cares about one signal also cares about the other. --- src/nm-manager.c | 24 ++++++------------------ src/nm-sleep-monitor.c | 35 ++++++++++++++--------------------- src/nm-sleep-monitor.h | 8 ++------ 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 */ #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; -- cgit v1.2.1