diff --git a/lib/wp/remote-pipewire.c b/lib/wp/remote-pipewire.c
index 15659bf404bab64eb3995d368789c331b61c00df..7806fbd4cb9cf26c4839a8154201a9c1ab6bb1ea 100644
--- a/lib/wp/remote-pipewire.c
+++ b/lib/wp/remote-pipewire.c
@@ -17,6 +17,12 @@
 
 G_DEFINE_QUARK (node, signal_detail_node)
 G_DEFINE_QUARK (port, signal_detail_port)
+G_DEFINE_QUARK (factory, signal_detail_factory)
+G_DEFINE_QUARK (link, signal_detail_link)
+G_DEFINE_QUARK (client, signal_detail_client)
+G_DEFINE_QUARK (module, signal_detail_module)
+G_DEFINE_QUARK (device, signal_detail_device)
+G_DEFINE_QUARK (endpoint, signal_detail_endpoint)
 
 typedef struct _WpLoopSource WpLoopSource;
 struct _WpLoopSource
@@ -108,21 +114,42 @@ G_DEFINE_TYPE (WpRemotePipewire, wp_remote_pipewire, WP_TYPE_REMOTE)
 
 static void
 registry_global(void *data, uint32_t id, uint32_t parent_id,
-		uint32_t permissions, uint32_t type, uint32_t version,
-		const struct spa_dict *props)
+    uint32_t permissions, uint32_t type, uint32_t version,
+    const struct spa_dict *props)
 {
+  GQuark detail = 0;
+
   switch (type) {
   case PW_TYPE_INTERFACE_Node:
-    g_signal_emit (data, signals[SIGNAL_GLOBAL_ADDED],
-        signal_detail_node_quark (), id, parent_id, props);
+    detail = signal_detail_node_quark ();
     break;
   case PW_TYPE_INTERFACE_Port:
-    g_signal_emit (data, signals[SIGNAL_GLOBAL_ADDED],
-        signal_detail_port_quark (), id, parent_id, props);
+    detail = signal_detail_port_quark ();
+    break;
+  case PW_TYPE_INTERFACE_Factory:
+    detail = signal_detail_factory_quark ();
+    break;
+  case PW_TYPE_INTERFACE_Link:
+    detail = signal_detail_link_quark ();
+    break;
+  case PW_TYPE_INTERFACE_Client:
+    detail = signal_detail_client_quark ();
+    break;
+  case PW_TYPE_INTERFACE_Module:
+    detail = signal_detail_module_quark ();
+    break;
+  case PW_TYPE_INTERFACE_Device:
+    detail = signal_detail_device_quark ();
+    break;
+  case PW_TYPE_INTERFACE_Endpoint:
+    detail = signal_detail_endpoint_quark ();
     break;
   default:
     break;
   }
+
+  g_signal_emit (data, signals[SIGNAL_GLOBAL_ADDED], detail, id, parent_id,
+      props);
 }
 
 static void