summaryrefslogtreecommitdiffstats
path: root/discover.c
diff options
context:
space:
mode:
authorManuel Bachmann <manuel.bachmann@iot.bzh>2016-06-13 10:11:28 +0200
committerYannick Gicquel <yannick.gicquel@iot.bzh>2016-10-11 17:09:07 +0200
commit6fc3e02df9de8347eb76fdfd26ed781686d37b6c (patch)
treea291b1fa88b957941e9abd3baee01df26ebf4177 /discover.c
parentd126c05ba201b0fd6daabf7c03d05da3db1b2957 (diff)
Clean up node status after sink_input unlink
We now unload all modules associated with a node when it disappears. Change-Id: I6d2055d546c9cc1b1967f85c973eafcc216bc91f Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Diffstat (limited to 'discover.c')
-rw-r--r--discover.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/discover.c b/discover.c
index eea6986..93a5d8b 100644
--- a/discover.c
+++ b/discover.c
@@ -757,6 +757,26 @@ void pa_discover_add_sink_input (struct userdata *u, pa_sink_input *sinp)
node = agl_node_get_from_client (u, sinp->client);
if (!node) return;
- /* start the default routing */
- implement_default_route (u, node, NULL, pa_utils_new_stamp ());
+ /* start routing */
+ agl_router_register_node (u, node);
+}
+
+void pa_discover_remove_sink_input (struct userdata *u, pa_sink_input *sinp)
+{
+ pa_core *core;
+ agl_node *node;
+
+ pa_assert (u);
+ pa_assert (sinp);
+ pa_assert_se (core = u->core);
+
+ if (!sinp->client)
+ return;
+
+ /* is there an existing matching node ? */
+ node = agl_node_get_from_client (u, sinp->client);
+ if (!node) return;
+
+ /* stop routing */
+ agl_router_unregister_node (u, node);
}