From 6fc3e02df9de8347eb76fdfd26ed781686d37b6c Mon Sep 17 00:00:00 2001 From: Manuel Bachmann Date: Mon, 13 Jun 2016 10:11:28 +0200 Subject: 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 --- discover.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'discover.c') 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); } -- cgit 1.2.3-korg