--- 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);