]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm: hw: use position offset macro of TLV data
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 15 May 2018 12:36:37 +0000 (21:36 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 15 May 2018 16:03:13 +0000 (18:03 +0200)
A series of SNDRV_CTL_TLVO_XXX macro was introduced for position offset
of TLV data. This commit applies a code optimization.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/pcm/pcm_hw.c

index 65b198c573789de08fb4e5d7133a27e6ef832988..a728b23baa8afa41a9a6918f69dca46690971838 100644 (file)
@@ -1199,6 +1199,7 @@ snd_pcm_query_chmaps_from_hw(int card, int dev, int subdev,
        snd_ctl_t *ctl;
        snd_ctl_elem_id_t id = {0};
        unsigned int tlv[2048], *start;
+       unsigned int type;
        snd_pcm_chmap_query_t **map;
        int i, ret, nums;
 
@@ -1223,9 +1224,10 @@ snd_pcm_query_chmaps_from_hw(int card, int dev, int subdev,
        /* FIXME: the parser below assumes that the TLV only contains
         * chmap-related blocks
         */
-       if (tlv[0] != SND_CTL_TLVT_CONTAINER) {
-               if (!is_chmap_type(tlv[0])) {
-                       SYSMSG("Invalid TLV type %d\n", tlv[0]);
+       type = tlv[SNDRV_CTL_TLVO_TYPE];
+       if (type != SND_CTL_TLVT_CONTAINER) {
+               if (!is_chmap_type(type)) {
+                       SYSMSG("Invalid TLV type %d\n", type);
                        return NULL;
                }
                start = tlv;
@@ -1234,7 +1236,7 @@ snd_pcm_query_chmaps_from_hw(int card, int dev, int subdev,
                unsigned int *p;
                int size;
                start = tlv + 2;
-               size = tlv[1];
+               size = tlv[SNDRV_CTL_TLVO_LEN];
                nums = 0;
                for (p = start; size > 0; ) {
                        if (!is_chmap_type(p[0])) {