X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=router.c;fp=router.c;h=2478ab231e4c47538d99269648cdd2af3d83657a;hb=6fc3e02df9de8347eb76fdfd26ed781686d37b6c;hp=855f9f8e21e7f1deea1dcbbc67339951d2451a2e;hpb=d126c05ba201b0fd6daabf7c03d05da3db1b2957;p=staging%2Fagl-audio-plugin.git diff --git a/router.c b/router.c index 855f9f8..2478ab2 100644 --- a/router.c +++ b/router.c @@ -84,6 +84,22 @@ void pa_router_done (struct userdata *u) } } +void agl_router_register_node (struct userdata *u, agl_node *node) +{ + pa_assert (u); + pa_assert (node); + + implement_default_route (u, node, NULL, pa_utils_new_stamp ()); +} + +void agl_router_unregister_node (struct userdata *u, agl_node *node) +{ + pa_assert (u); + pa_assert (node); + + remove_routes (u, node, NULL, pa_utils_new_stamp ()); +} + agl_node *agl_router_make_prerouting (struct userdata *u, agl_node *data) { pa_router *router; @@ -196,3 +212,12 @@ agl_node *find_default_route (struct userdata *u, agl_node *start, uint32_t stam return NULL; } + +void remove_routes (struct userdata *u, agl_node *start, agl_node *end, uint32_t stamp) +{ + if (start->direction == agl_input) { + agl_switch_teardown_link (u, start, end); + } else { + agl_switch_teardown_link (u, end, start); + } +}