Lines Matching defs:tlv

2  * \file control/tlv.c
47 * \param tlv the TLV source
59 int snd_tlv_parse_dB_info(unsigned int *tlv,
68 type = tlv[SNDRV_CTL_TLVO_TYPE];
69 size = tlv[SNDRV_CTL_TLVO_LEN];
78 tlv += 2;
81 err = snd_tlv_parse_dB_info(tlv, size, db_tlvp);
86 len = int_index(tlv[SNDRV_CTL_TLVO_LEN]) + 2;
88 tlv += len;
111 *db_tlvp = tlv;
122 * \param tlv the TLV source returned by #snd_tlv_parse_dB_info()
129 int snd_tlv_get_dB_range(unsigned int *tlv, long rangemin, long rangemax,
134 switch (tlv[SNDRV_CTL_TLVO_TYPE]) {
137 len = int_index(tlv[SNDRV_CTL_TLVO_LEN]);
144 submin = (int)tlv[pos];
145 submax = (int)tlv[pos + 1];
148 err = snd_tlv_get_dB_range(tlv + pos + 2,
164 pos += int_index(tlv[pos + 3]) + 4;
170 if (tlv[SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP] & 0x10000)
173 *min = (int)tlv[SNDRV_CTL_TLVO_DB_SCALE_MIN];
174 step = (tlv[SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP] & 0xffff);
175 *max = (int)tlv[SNDRV_CTL_TLVO_DB_SCALE_MIN] +
181 *min = (int)tlv[SNDRV_CTL_TLVO_DB_LINEAR_MIN];
182 *max = (int)tlv[SNDRV_CTL_TLVO_DB_LINEAR_MAX];
186 *max = (int)tlv[SNDRV_CTL_TLVO_DB_MINMAX_MAX];
194 * \param tlv the TLV source returned by #snd_tlv_parse_dB_info()
201 int snd_tlv_convert_to_dB(unsigned int *tlv, long rangemin, long rangemax,
204 unsigned int type = tlv[SNDRV_CTL_TLVO_TYPE];
209 len = int_index(tlv[SNDRV_CTL_TLVO_LEN]);
214 rangemin = (int)tlv[pos];
215 rangemax = (int)tlv[pos + 1];
217 return snd_tlv_convert_to_dB(tlv + pos + 2,
220 pos += int_index(tlv[pos + 3]) + 4;
226 min = tlv[SNDRV_CTL_TLVO_DB_SCALE_MIN];
227 step = (tlv[SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP] & 0xffff);
228 mute = (tlv[SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP] >> 16) & 1;
238 mindb = tlv[SNDRV_CTL_TLVO_DB_MINMAX_MIN];
239 maxdb = tlv[SNDRV_CTL_TLVO_DB_MINMAX_MAX];
254 int mindb = tlv[SNDRV_CTL_TLVO_DB_LINEAR_MIN];
255 int maxdb = tlv[SNDRV_CTL_TLVO_DB_LINEAR_MAX];
283 * \param tlv the TLV source returned by #snd_tlv_parse_dB_info()
293 int snd_tlv_convert_from_dB(unsigned int *tlv, long rangemin, long rangemax,
296 unsigned int type = tlv[SNDRV_CTL_TLVO_TYPE];
302 len = int_index(tlv[SNDRV_CTL_TLVO_LEN]);
309 submin = (int)tlv[pos];
310 submax = (int)tlv[pos + 1];
313 if (!snd_tlv_get_dB_range(tlv + pos + 2,
317 return snd_tlv_convert_from_dB(tlv + pos + 2,
327 pos += int_index(tlv[pos + 3]) + 4;
334 min = tlv[SNDRV_CTL_TLVO_DB_SCALE_MIN];
335 step = tlv[SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP] & 0xffff;
336 mute = tlv[SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP] & 0x10000;
360 min = tlv[SNDRV_CTL_TLVO_DB_MINMAX_MIN];
361 max = tlv[SNDRV_CTL_TLVO_DB_MINMAX_MAX];
384 min = tlv[SNDRV_CTL_TLVO_DB_LINEAR_MIN];
385 max = tlv[SNDRV_CTL_TLVO_DB_LINEAR_MAX];
417 unsigned int *tlv;
441 err = snd_tlv_parse_dB_info(rec->buf, sizeof(rec->buf), &rec->tlv);
464 return snd_tlv_get_dB_range(info.tlv, info.minval, info.maxval,
485 return snd_tlv_convert_to_dB(info.tlv, info.minval, info.maxval,
508 return snd_tlv_convert_from_dB(info.tlv, info.minval, info.maxval,