]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Added snd_config_get_ireal function
authorJaroslav Kysela <perex@perex.cz>
Mon, 26 Nov 2001 15:19:19 +0000 (15:19 +0000)
committerJaroslav Kysela <perex@perex.cz>
Mon, 26 Nov 2001 15:19:19 +0000 (15:19 +0000)
include/conf.h
src/conf.c

index c9e0e72730ffcd23d268397d56a322f13b7d3b94..f525dfa83b0019da2a2cd51bce7470b284d4f013 100644 (file)
@@ -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);
index 1b93cfe497fa4e3ef24c34e933a7b2108d8def65..ecd1b96d8f786b8b29bc4da183756d6c0408b05a 100644 (file)
@@ -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