X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=router.c;h=df469811685bf065746acb85ba4b3c87b797acba;hb=1d150864f72a103aebed4a43381ce109a414cfe2;hp=4ef018003dc3c001354796733e053fda5836934d;hpb=8c8a801130da286ce50cc3861b1725f7187b5fa8;p=staging%2Fagl-audio-plugin.git diff --git a/router.c b/router.c index 4ef0180..df46981 100644 --- a/router.c +++ b/router.c @@ -252,6 +252,34 @@ bool agl_router_assign_class_to_rtgroup (struct userdata *u, agl_node_type class return true; } +agl_rtgroup * agl_router_get_rtgroup_from_class (struct userdata *u, agl_node_type class, uint32_t zone, agl_direction type) +{ + agl_router *router; + pa_hashmap *rtable; + agl_rtgroup ***classmap; + agl_rtgroup **zonemap; + agl_rtgroup * rtg; + + pa_assert (u); + pa_assert_se (router = u->router); + pa_assert (class >= 0 && class < router->maplen); + pa_assert (zone < AGL_ZONE_MAX); + pa_assert (type == agl_input || type == agl_output); + + if (type == agl_input) { + rtable = router->rtgroups.input; + classmap = router->classmap.input; + } else { + rtable = router->rtgroups.output; + classmap = router->classmap.output; + } + + zonemap = classmap[zone]; + rtg = zonemap[class]; + + return rtg; +} + void agl_router_assign_class_priority (struct userdata *u, agl_node_type class, int priority) { agl_router *router;