This function gets a pa_volume_t from a string. --- src/pulsecore/modargs.c | 14 ++++++++++++++ src/pulsecore/modargs.h | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/src/pulsecore/modargs.c b/src/pulsecore/modargs.c index af9fabf..e86ffa5 100644 --- a/src/pulsecore/modargs.c +++ b/src/pulsecore/modargs.c @@ -350,6 +350,20 @@ int pa_modargs_get_value_double(pa_modargs *ma, const char *key, double *value) return 0; } +int pa_modargs_get_value_volume(pa_modargs *ma, const char *key, pa_volume_t *value) { + const char *v; + + pa_assert(value); + + if (!(v = pa_modargs_get_value(ma, key, NULL))) + return 0; + + if (pa_parse_volume(v, value) < 0) + return -1; + + return 0; +} + int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *rss) { const char *format; uint32_t channels; diff --git a/src/pulsecore/modargs.h b/src/pulsecore/modargs.h index 5da9cf1..c1345ea 100644 --- a/src/pulsecore/modargs.h +++ b/src/pulsecore/modargs.h @@ -26,6 +26,7 @@ #include <pulse/sample.h> #include <pulse/channelmap.h> #include <pulse/proplist.h> +#include <pulse/volume.h> #include <pulsecore/macro.h> typedef struct pa_modargs pa_modargs; @@ -48,6 +49,9 @@ int pa_modargs_get_value_boolean(pa_modargs *ma, const char *key, pa_bool_t *val /* Return a module argument as double value in *value */ 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 */ +int pa_modargs_get_value_volume(pa_modargs *ma, const char *key, pa_volume_t *value); + /* Return sample spec data from the three arguments "rate", "format" and "channels" */ int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *ss); -- 1.7.11.7