1/* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6#ifndef __UAPI_SOUND_TLV_H 7#define __UAPI_SOUND_TLV_H 8#define SNDRV_CTL_TLVT_CONTAINER 0 9#define SNDRV_CTL_TLVT_DB_SCALE 1 10#define SNDRV_CTL_TLVT_DB_LINEAR 2 11#define SNDRV_CTL_TLVT_DB_RANGE 3 12#define SNDRV_CTL_TLVT_DB_MINMAX 4 13#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 14#define SNDRV_CTL_TLVT_CHMAP_FIXED 0x101 15#define SNDRV_CTL_TLVT_CHMAP_VAR 0x102 16#define SNDRV_CTL_TLVT_CHMAP_PAIRED 0x103 17#define SNDRV_CTL_TLVD_ITEM(type, ...) \ 18 (type), SNDRV_CTL_TLVD_LENGTH(__VA_ARGS__), __VA_ARGS__ 19#define SNDRV_CTL_TLVD_LENGTH(...) \ 20 ((unsigned int)sizeof((const unsigned int[]) { __VA_ARGS__ })) 21#define SNDRV_CTL_TLVO_TYPE 0 22#define SNDRV_CTL_TLVO_LEN 1 23#define SNDRV_CTL_TLVD_CONTAINER_ITEM(...) \ 24 SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__) 25#define SNDRV_CTL_TLVD_DECLARE_CONTAINER(name, ...) \ 26 unsigned int name[] = { \ 27 SNDRV_CTL_TLVD_CONTAINER_ITEM(__VA_ARGS__) \ 28 } 29#define SNDRV_CTL_TLVD_DB_SCALE_MASK 0xffff 30#define SNDRV_CTL_TLVD_DB_SCALE_MUTE 0x10000 31#define SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \ 32 SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_SCALE, \ 33 (min), \ 34 ((step) & SNDRV_CTL_TLVD_DB_SCALE_MASK) | \ 35 ((mute) ? SNDRV_CTL_TLVD_DB_SCALE_MUTE : 0)) 36#define SNDRV_CTL_TLVD_DECLARE_DB_SCALE(name, min, step, mute) \ 37 unsigned int name[] = { \ 38 SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \ 39 } 40#define SNDRV_CTL_TLVO_DB_SCALE_MIN 2 41#define SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP 3 42#define SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \ 43 SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB)) 44#define SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \ 45 SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB)) 46#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(name, min_dB, max_dB) \ 47 unsigned int name[] = { \ 48 SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \ 49 } 50#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX_MUTE(name, min_dB, max_dB) \ 51 unsigned int name[] = { \ 52 SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \ 53 } 54#define SNDRV_CTL_TLVO_DB_MINMAX_MIN 2 55#define SNDRV_CTL_TLVO_DB_MINMAX_MAX 3 56#define SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \ 57 SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB)) 58#define SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(name, min_dB, max_dB) \ 59 unsigned int name[] = { \ 60 SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \ 61 } 62#define SNDRV_CTL_TLVO_DB_LINEAR_MIN 2 63#define SNDRV_CTL_TLVO_DB_LINEAR_MAX 3 64#define SNDRV_CTL_TLVD_DB_RANGE_ITEM(...) \ 65 SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__) 66#define SNDRV_CTL_TLVD_DECLARE_DB_RANGE(name, ...) \ 67 unsigned int name[] = { \ 68 SNDRV_CTL_TLVD_DB_RANGE_ITEM(__VA_ARGS__) \ 69 } 70#define SNDRV_CTL_TLVD_DB_GAIN_MUTE -9999999 71#endif 72