[pulseaudio-discuss] [PATCH] pa_modargs interface question
Ulrich Eckhardt
pulseaudio at base-42.de
Tue Jul 5 20:36:30 UTC 2016
---
modargs: Document behaviour on missing arguments
The behaviour is to leave the value unchanged. The idea is to init the value
with a default before the call and not treat a missing value as error. That
way, only parsing errors or validating errors actually return error codes.
diff --git a/src/pulsecore/modargs.h b/src/pulsecore/modargs.h
index 50cf6c5..96132a3 100644
--- a/src/pulsecore/modargs.h
+++ b/src/pulsecore/modargs.h
@@ -42,27 +42,35 @@ void pa_modargs_free(pa_modargs*ma);
* the argument was not specified, return def instead.*/
const char *pa_modargs_get_value(pa_modargs *ma, const char *key, const char *def);
-/* Return a module argument as unsigned 32bit value in *value */
+/* Return a module argument as unsigned 32bit value in *value. If the argument
+ * was not specified, *value remains unchanged. */
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);
int pa_modargs_get_value_boolean(pa_modargs *ma, const char *key, bool *value);
-/* Return a module argument as double value in *value */
+/* Return a module argument as double value in *value. If the argument was not
+ * specified, *value remains unchanged. */
int pa_modargs_get_value_double(pa_modargs *ma, const char *key, double *value);
-/* Return a module argument as pa_volume_t value in *value */
+/* Return a module argument as pa_volume_t value in *value. If the argument
+ * was not specified, *value remains unchanged. */
int pa_modargs_get_value_volume(pa_modargs *ma, const char *key, pa_volume_t *value);
-/* Return sample rate from the "rate" argument */
+/* Return sample rate from the "rate" argument. If the argument was not
+ * specified, *rate remains unchanged. */
int pa_modargs_get_sample_rate(pa_modargs *ma, uint32_t *rate);
-/* Return sample spec data from the three arguments "rate", "format" and "channels" */
+/* Return sample spec data from the three arguments "rate", "format" and
+ * "channels". If the argument was not specified, *ss remains unchanged. */
int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *ss);
-/* Return channel map data from the argument "channel_map" if name is NULL, otherwise read from the specified argument */
+/* Return channel map data from the argument "channel_map" if name is NULL,
+ * otherwise read from the specified argument. If the argument was not
+ * specified, *map remains unchanged. */
int pa_modargs_get_channel_map(pa_modargs *ma, const char *name, pa_channel_map *map);
-/* Return resample method from the argument "resample_method" */
+/* Return resample method from the argument "resample_method". If the argument
+ * was not specified, *method remains unchanged. */
int pa_modargs_get_resample_method(pa_modargs *ma, pa_resample_method_t *method);
/* Combination of pa_modargs_get_sample_spec() and
@@ -72,7 +80,8 @@ structure if no channel_map is found, using pa_channel_map_init_auto() */
int pa_modargs_get_sample_spec_and_channel_map(pa_modargs *ma, pa_sample_spec *ss, pa_channel_map *map, pa_channel_map_def_t def);
-/* Return alternate sample rate from "alternate_sample_rate" parameter */
+/* Return alternate sample rate from "alternate_sample_rate" parameter. If the
+ * argument was not specified, *alternate_rate remains unchanged. */
int pa_modargs_get_alternate_sample_rate(pa_modargs *ma, uint32_t *alternate_rate);
int pa_modargs_get_proplist(pa_modargs *ma, const char *name,
pa_proplist *p, pa_update_mode_t m);
More information about the pulseaudio-discuss
mailing list