From c078a97d778faa80a674af4d9a6451f24fac68cf Mon Sep 17 00:00:00 2001
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
Date: Tue, 31 Mar 2020 15:04:25 +0300
Subject: [PATCH] proxy: add 'bound' signal

---
 lib/wp/proxy.c | 7 +++++++
 lib/wp/proxy.h | 1 +
 2 files changed, 8 insertions(+)

diff --git a/lib/wp/proxy.c b/lib/wp/proxy.c
index 3026b58c..a35d8588 100644
--- a/lib/wp/proxy.c
+++ b/lib/wp/proxy.c
@@ -63,6 +63,7 @@ enum
 {
   SIGNAL_PW_PROXY_CREATED,
   SIGNAL_PW_PROXY_DESTROYED,
+  SIGNAL_BOUND,
   SIGNAL_PARAM,
   LAST_SIGNAL,
 };
@@ -119,6 +120,7 @@ proxy_event_bound (void *data, uint32_t global_id)
      pw_proxy_set_bound_id() and this can be very bad... */
   g_warn_if_fail (!priv->global || priv->global->id == global_id);
 
+  g_signal_emit (self, wp_proxy_signals[SIGNAL_BOUND], 0, global_id);
   wp_proxy_set_feature_ready (self, WP_PROXY_FEATURE_BOUND);
 
   /* construct a WpGlobal if it was not already there */
@@ -357,6 +359,11 @@ wp_proxy_class_init (WpProxyClass * klass)
       G_STRUCT_OFFSET (WpProxyClass, pw_proxy_destroyed), NULL, NULL, NULL,
       G_TYPE_NONE, 0);
 
+  wp_proxy_signals[SIGNAL_BOUND] = g_signal_new (
+      "bound", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
+      G_STRUCT_OFFSET (WpProxyClass, bound), NULL, NULL, NULL,
+      G_TYPE_NONE, 1, G_TYPE_UINT);
+
   wp_proxy_signals[SIGNAL_PARAM] = g_signal_new (
       "param", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_FIRST,
       G_STRUCT_OFFSET (WpProxyClass, param), NULL, NULL, NULL, G_TYPE_NONE, 5,
diff --git a/lib/wp/proxy.h b/lib/wp/proxy.h
index 0600dc92..9144dddc 100644
--- a/lib/wp/proxy.h
+++ b/lib/wp/proxy.h
@@ -88,6 +88,7 @@ struct _WpProxyClass
 
   void (*pw_proxy_created) (WpProxy * self, struct pw_proxy * proxy);
   void (*pw_proxy_destroyed) (WpProxy * self);
+  void (*bound) (WpProxy * self, guint32 id);
   void (*param) (WpProxy * self, gint seq, guint32 id, guint32 index,
       guint32 next, const struct spa_pod *param);
 };
-- 
GitLab