OSDN Git Service

Added integer64 routines for control API
authorJaroslav Kysela <perex@perex.cz>
Wed, 8 May 2002 07:56:39 +0000 (07:56 +0000)
committerJaroslav Kysela <perex@perex.cz>
Wed, 8 May 2002 07:56:39 +0000 (07:56 +0000)
include/control.h
src/control/control.c

index 10c0ab0..b3001a3 100644 (file)
@@ -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);
index 5b740b6..4281059 100644 (file)
@@ -2021,6 +2021,19 @@ long snd_ctl_elem_value_get_integer(const snd_ctl_elem_value_t *obj, unsigned in
 }
 
 /**
+ * \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
  * \param idx Entry index
@@ -2071,6 +2084,18 @@ void snd_ctl_elem_value_set_integer(snd_ctl_elem_value_t *obj, unsigned int idx,
 }
 
 /**
+ * \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
  * \param idx Entry index