X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=node.c;h=e2c500787aa5dfd8ed860efe228503244ae27917;hb=f259ec53101a3754cd2da24a369ea48bb1947e62;hp=212a9230dc608faa12ad023a2c32e1ef94ef2686;hpb=acb229813f5845e8b38bea56870211319887f3b4;p=staging%2Fagl-audio-plugin.git diff --git a/node.c b/node.c index 212a923..e2c5007 100644 --- a/node.c +++ b/node.c @@ -68,6 +68,27 @@ void agl_nodeset_done(struct userdata *u) } } +int agl_nodeset_add_role (struct userdata *u, const char *role, agl_node_type type, agl_nodeset_resdef *resdef) +{ + agl_nodeset *ns; + agl_nodeset_map *map; + + pa_assert (u); + pa_assert_se (ns = u->nodeset); + + map = pa_xnew0 (agl_nodeset_map, 1); + map->name = pa_xstrdup (role); + map->type = type; + map->role = pa_xstrdup (role); + + if (resdef) { + map->resdef = pa_xnew (agl_nodeset_resdef, 1); + memcpy (map->resdef, resdef, sizeof(agl_nodeset_resdef)); + } + + return pa_hashmap_put (ns->roles, (void *)map->name, map); +} + agl_node *agl_node_create (struct userdata *u, agl_node *data) { agl_nodeset *ns; @@ -132,6 +153,16 @@ const char *agl_node_type_str (agl_node_type type) } } +const char *agl_node_direction_str (agl_direction direction) +{ + switch (direction) { + case agl_direction_unknown: return "unknown"; + case agl_input: return "input"; + case agl_output: return "output"; + default: return "< ??? >"; + } +} + agl_node *agl_node_get_from_data (struct userdata *u, agl_direction type, void *data) { pa_sink_input_new_data *sinp_data;