From 922065f97d9e804f12684cb7c11bd9581790c6fd Mon Sep 17 00:00:00 2001 From: Julian Bouzas <julian.bouzas@collabora.com> Date: Tue, 18 Jun 2019 10:09:40 -0400 Subject: [PATCH] proxy: add destroyed signal --- lib/wp/proxy.c | 17 +++++++++++++++++ lib/wp/proxy.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/lib/wp/proxy.c b/lib/wp/proxy.c index 8926f6d1..a35e33aa 100644 --- a/lib/wp/proxy.c +++ b/lib/wp/proxy.c @@ -32,6 +32,14 @@ enum { PROP_PROXY, }; +enum +{ + SIGNAL_DESTROYED, + LAST_SIGNAL, +}; + +static guint wp_proxy_signals[LAST_SIGNAL] = { 0 }; + static void wp_proxy_async_initable_init (gpointer iface, gpointer iface_data); G_DEFINE_ABSTRACT_TYPE_WITH_CODE (WpProxy, wp_proxy, G_TYPE_OBJECT, @@ -44,6 +52,9 @@ proxy_event_destroy (void *data) WpProxyPrivate *self = wp_proxy_get_instance_private (WP_PROXY(data)); g_autoptr (WpCore) core = g_weak_ref_get (&self->core); + /* Emit the destroy signal */ + g_signal_emit (data, wp_proxy_signals[SIGNAL_DESTROYED], 0); + /* Set the proxy to NULL */ self->proxy = NULL; @@ -193,6 +204,12 @@ wp_proxy_class_init (WpProxyClass * klass) g_object_class_install_property (object_class, PROP_PROXY, g_param_spec_pointer ("pw-proxy", "pw-proxy", "The pipewire proxy", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); + + /* Signals */ + wp_proxy_signals[SIGNAL_DESTROYED] = + g_signal_new ("destroyed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WpProxyClass, destroyed), NULL, NULL, + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } void diff --git a/lib/wp/proxy.h b/lib/wp/proxy.h index 24bc0dda..6ef85489 100644 --- a/lib/wp/proxy.h +++ b/lib/wp/proxy.h @@ -22,6 +22,9 @@ G_DECLARE_DERIVABLE_TYPE (WpProxy, wp_proxy, WP, PROXY, GObject) struct _WpProxyClass { GObjectClass parent_class; + + /* Signals */ + void (*destroyed)(WpProxy *wp_proxy); }; void wp_proxy_register (WpProxy * self); -- GitLab