summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pulsecore/modargs.c10
-rw-r--r--src/pulsecore/modargs.h9
2 files changed, 19 insertions, 0 deletions
diff --git a/src/pulsecore/modargs.c b/src/pulsecore/modargs.c
index c7d734d9..e78cdb9a 100644
--- a/src/pulsecore/modargs.c
+++ b/src/pulsecore/modargs.c
@@ -415,3 +415,13 @@ int pa_modargs_get_proplist(pa_modargs *ma, const char *name, pa_proplist *p, pa
return 0;
}
+
+const char *pa_modargs_iterate(pa_modargs *ma, void **state) {
+ pa_hashmap *map = (pa_hashmap*) ma;
+ struct entry *e;
+
+ if (!(e = pa_hashmap_iterate(map, state, NULL)))
+ return NULL;
+
+ return e->key;
+}
diff --git a/src/pulsecore/modargs.h b/src/pulsecore/modargs.h
index b3125b10..1ed66e9a 100644
--- a/src/pulsecore/modargs.h
+++ b/src/pulsecore/modargs.h
@@ -60,4 +60,13 @@ int pa_modargs_get_sample_spec_and_channel_map(pa_modargs *ma, pa_sample_spec *s
int pa_modargs_get_proplist(pa_modargs *ma, const char *name, pa_proplist *p, pa_update_mode_t m);
+/* Iterate through the module argument list. The user should allocate a
+ * state variable of type void* and initialize it with NULL. A pointer
+ * to this variable should then be passed to pa_modargs_iterate()
+ * which should be called in a loop until it returns NULL which
+ * signifies EOL. On each invication this function will return the
+ * key string for the next entry. The keys in the argument list do not
+ * have any particular order. */
+const char *pa_modargs_iterate(pa_modargs *ma, void **state);
+
#endif