[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