]> git.alsa-project.org Git - alsa-lib.git/commitdiff
control: add a series of macro for offset of several types of TLV
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 15 May 2018 12:36:34 +0000 (21:36 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 15 May 2018 16:03:11 +0000 (18:03 +0200)
In development period for Linux v4.18, a series of SNDRV_CTL_TLVO_XXX
macro was introduced to kernel stuffs for position offset of TLV data.

This commit adds these macros to backport header in this library.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/tlv.h

index b4df440c015bb963f4df418aa99d60d8a8cb53cd..2ea4768504374319f7ff92cc085723f19f0eb2d3 100644 (file)
 #define SNDRV_CTL_TLVD_LENGTH(...) \
        ((unsigned int)sizeof((const unsigned int[]) { __VA_ARGS__ }))
 
+/* Accessor offsets for TLV data items */
+#define SNDRV_CTL_TLVO_TYPE            0
+#define SNDRV_CTL_TLVO_LEN             1
+
 #define SNDRV_CTL_TLVD_CONTAINER_ITEM(...) \
        SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__)
 #define SNDRV_CTL_TLVD_DECLARE_CONTAINER(name, ...) \
                SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \
        }
 
+/* Accessor offsets for min, mute and step items in dB scale type TLV */
+#define SNDRV_CTL_TLVO_DB_SCALE_MIN            2
+#define SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP  3
+
 /* dB scale specified with min/max values instead of step */
 #define SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \
        SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB))
                SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
        }
 
+/* Accessor offsets for min, max items in db-minmax types of TLV. */
+#define SNDRV_CTL_TLVO_DB_MINMAX_MIN   2
+#define SNDRV_CTL_TLVO_DB_MINMAX_MAX   3
+
 /* linear volume between min_dB and max_dB (.01dB unit) */
 #define SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
        SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB))
                SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
        }
 
+/* Accessor offsets for min, max items in db-linear type of TLV. */
+#define SNDRV_CTL_TLVO_DB_LINEAR_MIN   2
+#define SNDRV_CTL_TLVO_DB_LINEAR_MAX   3
+
 /* dB range container:
  * Items in dB range container must be ordered by their values and by their
  * dB values. This implies that larger values must correspond with larger