node: add pa_nodeset_iterate_nodes()
authorJanos Kovacs <jankovac503@gmail.com>
Sat, 2 Feb 2013 17:19:19 +0000 (19:19 +0200)
committerJanos Kovacs <jankovac503@gmail.com>
Sat, 2 Feb 2013 17:19:19 +0000 (19:19 +0200)
murphy/node.c
murphy/node.h

index 8ef5e4d..f1926c0 100644 (file)
@@ -222,6 +222,25 @@ void pa_nodeset_need_resource(struct userdata *u, mir_node_type t)
     }    
 }
 
+mir_node *pa_nodeset_iterate_nodes(struct userdata *u, uint32_t *pidx)
+{
+    pa_nodeset *ns;
+    pa_idxset *idxset;
+    mir_node *node;
+
+    pa_assert(u);
+    pa_assert(pidx);
+    pa_assert_se((ns = u->nodeset));
+    pa_assert_se((idxset = ns->nodes));
+
+    if (*pidx == PA_IDXSET_INVALID)
+        node = pa_idxset_first(idxset, pidx);
+    else
+        node = pa_idxset_next(idxset, pidx);
+
+    return node;
+}
+
 mir_node *mir_node_create(struct userdata *u, mir_node *data)
 {
     pa_nodeset *ns;
index 0d50fad..ca79831 100644 (file)
@@ -164,6 +164,8 @@ mir_node_type pa_nodeset_get_type_by_binary(struct userdata *, const char *);
 
 void pa_nodeset_need_resource(struct userdata *, mir_node_type);
 
+mir_node *pa_nodeset_iterate_nodes(struct userdata *, uint32_t *);
+
 
 mir_node *mir_node_create(struct userdata *, mir_node *);
 void mir_node_destroy(struct userdata *, mir_node *);