From 712501af1511b24b68bab25f4f81c35889794634 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 8 May 2002 07:56:39 +0000 Subject: [PATCH] Added integer64 routines for control API --- include/control.h | 6 +++++- src/control/control.c | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/include/control.h b/include/control.h index 10c0ab0f..b3001a3a 100644 --- a/include/control.h +++ b/include/control.h @@ -82,7 +82,9 @@ typedef enum _snd_ctl_elem_type { SND_CTL_ELEM_TYPE_BYTES, /** IEC958 (S/PDIF) setting content */ SND_CTL_ELEM_TYPE_IEC958, - SND_CTL_ELEM_TYPE_LAST = SND_CTL_ELEM_TYPE_IEC958 + /** 64-bit integer contents */ + SND_CTL_ELEM_TYPE_INTEGER64, + SND_CTL_ELEM_TYPE_LAST = SND_CTL_ELEM_TYPE_INTEGER64 } snd_ctl_elem_type_t; /** CTL related interface */ @@ -385,10 +387,12 @@ void snd_ctl_elem_value_set_name(snd_ctl_elem_value_t *obj, const char *val); void snd_ctl_elem_value_set_index(snd_ctl_elem_value_t *obj, unsigned int val); int snd_ctl_elem_value_get_boolean(const snd_ctl_elem_value_t *obj, unsigned int idx); long snd_ctl_elem_value_get_integer(const snd_ctl_elem_value_t *obj, unsigned int idx); +long long snd_ctl_elem_value_get_integer64(const snd_ctl_elem_value_t *obj, unsigned int idx); unsigned int snd_ctl_elem_value_get_enumerated(const snd_ctl_elem_value_t *obj, unsigned int idx); unsigned char snd_ctl_elem_value_get_byte(const snd_ctl_elem_value_t *obj, unsigned int idx); void snd_ctl_elem_value_set_boolean(snd_ctl_elem_value_t *obj, unsigned int idx, long val); void snd_ctl_elem_value_set_integer(snd_ctl_elem_value_t *obj, unsigned int idx, long val); +void snd_ctl_elem_value_set_integer64(snd_ctl_elem_value_t *obj, unsigned int idx, long long val); void snd_ctl_elem_value_set_enumerated(snd_ctl_elem_value_t *obj, unsigned int idx, unsigned int val); void snd_ctl_elem_value_set_byte(snd_ctl_elem_value_t *obj, unsigned int idx, unsigned char val); const void * snd_ctl_elem_value_get_bytes(const snd_ctl_elem_value_t *obj); diff --git a/src/control/control.c b/src/control/control.c index 5b740b6b..4281059e 100644 --- a/src/control/control.c +++ b/src/control/control.c @@ -2020,6 +2020,19 @@ long snd_ctl_elem_value_get_integer(const snd_ctl_elem_value_t *obj, unsigned in return obj->value.integer.value[idx]; } +/** + * \brief Get value for an entry of a #SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/value + * \param obj CTL element id/value + * \param idx Entry index + * \return value for the entry + */ +long long snd_ctl_elem_value_get_integer64(const snd_ctl_elem_value_t *obj, unsigned int idx) +{ + assert(obj); + assert(idx < sizeof(obj->value.integer64.value) / sizeof(obj->value.integer64.value[0])); + return obj->value.integer64.value[idx]; +} + /** * \brief Get value for an entry of a #SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/value * \param obj CTL element id/value @@ -2070,6 +2083,18 @@ void snd_ctl_elem_value_set_integer(snd_ctl_elem_value_t *obj, unsigned int idx, obj->value.integer.value[idx] = val; } +/** + * \brief Set value for an entry of a #SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/value + * \param obj CTL element id/value + * \param idx Entry index + * \param val value for the entry + */ +void snd_ctl_elem_value_set_integer64(snd_ctl_elem_value_t *obj, unsigned int idx, long long val) +{ + assert(obj); + obj->value.integer64.value[idx] = val; +} + /** * \brief Set value for an entry of a #SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/value * \param obj CTL element id/value -- 2.47.1