From: Jaroslav Kysela Date: Mon, 26 Nov 2001 15:19:19 +0000 (+0000) Subject: Added snd_config_get_ireal function X-Git-Tag: v1.0.3~570 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=aa68b89c370842f61075decc8fdde3577662a2ae;p=alsa-lib.git Added snd_config_get_ireal function --- diff --git a/include/conf.h b/include/conf.h index c9e0e727..f525dfa8 100644 --- a/include/conf.h +++ b/include/conf.h @@ -112,6 +112,7 @@ int snd_config_set_pointer(snd_config_t *config, const void *ptr); int snd_config_get_id(snd_config_t *config, const char **value); int snd_config_get_integer(snd_config_t *config, long *value); int snd_config_get_real(snd_config_t *config, double *value); +int snd_config_get_ireal(snd_config_t *config, double *value); int snd_config_get_string(snd_config_t *config, const char **value); int snd_config_get_ascii(snd_config_t *config, char **value); int snd_config_get_pointer(snd_config_t *config, const void **value); diff --git a/src/conf.c b/src/conf.c index 1b93cfe4..ecd1b96d 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1808,6 +1808,27 @@ int snd_config_get_real(snd_config_t *config, double *ptr) return 0; } +/** + * \brief Get the value of a real or integer config node + * \param config Config node handle + * \param ptr Returned value pointer + * \return 0 on success otherwise a negative error code + * + * Note: If the config type is integer, it is converted + * to the double type on the fly. + */ +int snd_config_get_ireal(snd_config_t *config, double *ptr) +{ + assert(config && ptr); + if (config->type == SND_CONFIG_TYPE_REAL) + *ptr = config->u.real; + else if (config->type == SND_CONFIG_TYPE_INTEGER) + *ptr = config->u.integer; + else + return -EINVAL; + return 0; +} + /** * \brief Get the value of a string config node * \param config Config node handle