Lines Matching refs:ma
46 static int add_key_value(pa_modargs *ma, char *key, char *value, const char* const valid_keys[], bool ignore_dupes) {
50 pa_assert(ma);
51 pa_assert(ma->raw);
52 pa_assert(ma->unescaped);
56 if (pa_hashmap_get(ma->unescaped, key)) {
84 pa_hashmap_put(ma->unescaped, key, e);
92 pa_hashmap_put(ma->raw, key, e);
107 static int parse(pa_modargs *ma, const char *args, const char* const* valid_keys, bool ignore_dupes) {
157 if (add_key_value(ma,
177 if (add_key_value(ma,
198 if (add_key_value(ma,
219 if (add_key_value(ma,
241 if (add_key_value(ma, pa_xstrndup(key, key_len), pa_xstrdup(""), valid_keys, ignore_dupes) < 0)
244 if (add_key_value(ma, pa_xstrndup(key, key_len), pa_xstrdup(value), valid_keys, ignore_dupes) < 0)
256 pa_modargs *ma = pa_xnew(pa_modargs, 1);
258 ma->raw = pa_hashmap_new_full(pa_idxset_string_hash_func, pa_idxset_string_compare_func, NULL, free_func);
259 ma->unescaped = pa_hashmap_new_full(pa_idxset_string_hash_func, pa_idxset_string_compare_func, NULL, free_func);
261 if (args && parse(ma, args, valid_keys, false) < 0)
264 return ma;
267 pa_modargs_free(ma);
271 int pa_modargs_append(pa_modargs *ma, const char *args, const char* const* valid_keys) {
272 return parse(ma, args, valid_keys, true);
275 int pa_modargs_remove_key(pa_modargs *ma, const char *key) {
276 if (pa_hashmap_remove_and_free(ma->unescaped, key) == 0) {
277 pa_hashmap_remove_and_free(ma->raw, key);
284 void pa_modargs_free(pa_modargs*ma) {
285 pa_assert(ma);
287 pa_hashmap_free(ma->raw);
288 pa_hashmap_free(ma->unescaped);
289 pa_xfree(ma);
292 const char *pa_modargs_get_value(pa_modargs *ma, const char *key, const char *def) {
295 pa_assert(ma);
298 if (!(e = pa_hashmap_get(ma->unescaped, key)))
304 static const char *modargs_get_value_raw(pa_modargs *ma, const char *key, const char *def) {
307 pa_assert(ma);
310 if (!(e = pa_hashmap_get(ma->raw, key)))
311 if (!(e = pa_hashmap_get(ma->unescaped, key)))
317 int pa_modargs_get_value_u32(pa_modargs *ma, const char *key, uint32_t *value) {
322 if (!(v = pa_modargs_get_value(ma, key, NULL)))
331 int pa_modargs_get_value_s32(pa_modargs *ma, const char *key, int32_t *value) {
336 if (!(v = pa_modargs_get_value(ma, key, NULL)))
345 int pa_modargs_get_value_boolean(pa_modargs *ma, const char *key, bool *value) {
351 if (!(v = pa_modargs_get_value(ma, key, NULL)))
364 int pa_modargs_get_value_double(pa_modargs *ma, const char *key, double *value) {
369 if (!(v = pa_modargs_get_value(ma, key, NULL)))
378 int pa_modargs_get_value_volume(pa_modargs *ma, const char *key, pa_volume_t *value) {
383 if (!(v = pa_modargs_get_value(ma, key, NULL)))
392 int pa_modargs_get_sample_rate(pa_modargs *ma, uint32_t *rate) {
398 if ((pa_modargs_get_value_u32(ma, "rate", &rate_local)) < 0 ||
407 int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *rss) {
415 if ((pa_modargs_get_sample_rate(ma, &ss.rate)) < 0)
419 if ((pa_modargs_get_value_u32(ma, "channels", &channels)) < 0 ||
424 if ((format = pa_modargs_get_value(ma, "format", NULL)))
436 int pa_modargs_get_alternate_sample_rate(pa_modargs *ma, uint32_t *alternate_rate) {
442 if ((pa_modargs_get_value_u32(ma, "alternate_rate", &rate_local)) < 0 ||
451 int pa_modargs_get_channel_map(pa_modargs *ma, const char *name, pa_channel_map *rmap) {
459 if ((cm = pa_modargs_get_value(ma, name ? name : "channel_map", NULL)))
470 int pa_modargs_get_resample_method(pa_modargs *ma, pa_resample_method_t *rmethod) {
473 pa_assert(ma);
476 if ((m = pa_modargs_get_value(ma, "resample_method", NULL))) {
489 pa_modargs *ma,
502 if (pa_modargs_get_sample_spec(ma, &ss) < 0)
510 if (pa_modargs_get_channel_map(ma, NULL, &map) < 0)
514 if (!pa_modargs_get_value(ma, "channels", NULL))
526 int pa_modargs_get_proplist(pa_modargs *ma, const char *name, pa_proplist *p, pa_update_mode_t m) {
530 pa_assert(ma);
534 if (!(v = modargs_get_value_raw(ma, name, NULL)))
546 const char *pa_modargs_iterate(pa_modargs *ma, void **state) {
549 pa_assert(ma);
551 if (!(e = pa_hashmap_iterate(ma->unescaped, state, NULL)))