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