summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/modargs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pulsecore/modargs.c')
-rw-r--r--src/pulsecore/modargs.c50
1 files changed, 31 insertions, 19 deletions
diff --git a/src/pulsecore/modargs.c b/src/pulsecore/modargs.c
index 3733f655..1311af3c 100644
--- a/src/pulsecore/modargs.c
+++ b/src/pulsecore/modargs.c
@@ -26,7 +26,6 @@
#endif
#include <ctype.h>
-#include <assert.h>
#include <stdlib.h>
#include <string.h>
@@ -39,6 +38,7 @@
#include <pulsecore/sink.h>
#include <pulsecore/source.h>
#include <pulsecore/core-util.h>
+#include <pulsecore/macro.h>
#include "modargs.h"
@@ -48,7 +48,10 @@ struct entry {
static int add_key_value(pa_hashmap *map, char *key, char *value, const char* const valid_keys[]) {
struct entry *e;
- assert(map && key && value);
+
+ pa_assert(map);
+ pa_assert(key);
+ pa_assert(value);
if (valid_keys) {
const char*const* v;
@@ -63,10 +66,11 @@ static int add_key_value(pa_hashmap *map, char *key, char *value, const char* co
}
}
- e = pa_xmalloc(sizeof(struct entry));
+ e = pa_xnew(struct entry, 1);
e->key = key;
e->value = value;
pa_hashmap_put(map, key, e);
+
return 0;
}
@@ -74,7 +78,6 @@ pa_modargs *pa_modargs_new(const char *args, const char* const* valid_keys) {
pa_hashmap *map = NULL;
map = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
- assert(map);
if (args) {
enum { WHITESPACE, KEY, VALUE_START, VALUE_SIMPLE, VALUE_DOUBLE_QUOTES, VALUE_TICKS } state;
@@ -166,10 +169,10 @@ fail:
return NULL;
}
-
static void free_func(void *p, PA_GCC_UNUSED void*userdata) {
struct entry *e = p;
- assert(e);
+ pa_assert(e);
+
pa_xfree(e->key);
pa_xfree(e->value);
pa_xfree(e);
@@ -192,7 +195,10 @@ const char *pa_modargs_get_value(pa_modargs *ma, const char *key, const char *de
int pa_modargs_get_value_u32(pa_modargs *ma, const char *key, uint32_t *value) {
const char *v;
- assert(ma && key && value);
+
+ pa_assert(ma);
+ pa_assert(key);
+ pa_assert(value);
if (!(v = pa_modargs_get_value(ma, key, NULL)))
return 0;
@@ -205,7 +211,10 @@ int pa_modargs_get_value_u32(pa_modargs *ma, const char *key, uint32_t *value) {
int pa_modargs_get_value_s32(pa_modargs *ma, const char *key, int32_t *value) {
const char *v;
- assert(ma && key && value);
+
+ pa_assert(ma);
+ pa_assert(key);
+ pa_assert(value);
if (!(v = pa_modargs_get_value(ma, key, NULL)))
return 0;
@@ -219,7 +228,10 @@ int pa_modargs_get_value_s32(pa_modargs *ma, const char *key, int32_t *value) {
int pa_modargs_get_value_boolean(pa_modargs *ma, const char *key, int *value) {
const char *v;
int r;
- assert(ma && key && value);
+
+ pa_assert(ma);
+ pa_assert(key);
+ pa_assert(value);
if (!(v = pa_modargs_get_value(ma, key, NULL)))
return 0;
@@ -238,9 +250,9 @@ int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *rss) {
const char *format;
uint32_t channels;
pa_sample_spec ss;
- assert(ma && rss);
-/* DEBUG_TRAP;*/
+ pa_assert(ma);
+ pa_assert(rss);
ss = *rss;
if ((pa_modargs_get_value_u32(ma, "rate", &ss.rate)) < 0)
@@ -263,16 +275,16 @@ int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *rss) {
return 0;
}
-int pa_modargs_get_channel_map(pa_modargs *ma, pa_channel_map *rmap) {
+int pa_modargs_get_channel_map(pa_modargs *ma, const char *name, pa_channel_map *rmap) {
pa_channel_map map;
const char *cm;
- assert(ma);
- assert(rmap);
+ pa_assert(ma);
+ pa_assert(rmap);
map = *rmap;
- if ((cm = pa_modargs_get_value(ma, "channel_map", NULL)))
+ if ((cm = pa_modargs_get_value(ma, name ? name : "channel_map", NULL)))
if (!pa_channel_map_parse(&map, cm))
return -1;
@@ -287,9 +299,9 @@ int pa_modargs_get_sample_spec_and_channel_map(pa_modargs *ma, pa_sample_spec *r
pa_sample_spec ss;
pa_channel_map map;
- assert(ma);
- assert(rss);
- assert(rmap);
+ pa_assert(ma);
+ pa_assert(rss);
+ pa_assert(rmap);
ss = *rss;
@@ -299,7 +311,7 @@ int pa_modargs_get_sample_spec_and_channel_map(pa_modargs *ma, pa_sample_spec *r
if (!pa_channel_map_init_auto(&map, ss.channels, def))
map.channels = 0;
- if (pa_modargs_get_channel_map(ma, &map) < 0)
+ if (pa_modargs_get_channel_map(ma, NULL, &map) < 0)
return -1;
if (map.channels != ss.channels)