summaryrefslogtreecommitdiff
path: root/lib/libsalsa/alsakernel.h
blob: 1e1fb52d77f320c4b14723b5f19e1fe35306faf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108

enum sndrv_pcm_format
{
  SNDRV_PCM_FORMAT_S8 = 0,
  SNDRV_PCM_FORMAT_U8,
  SNDRV_PCM_FORMAT_S16_LE,
  SNDRV_PCM_FORMAT_S16_BE,
  SNDRV_PCM_FORMAT_U16_LE,
  SNDRV_PCM_FORMAT_U16_BE,
  SNDRV_PCM_FORMAT_S24_LE,	/* low three bytes */
  SNDRV_PCM_FORMAT_S24_BE,	/* low three bytes */
  SNDRV_PCM_FORMAT_U24_LE,	/* low three bytes */
  SNDRV_PCM_FORMAT_U24_BE,	/* low three bytes */
  SNDRV_PCM_FORMAT_S32_LE,
  SNDRV_PCM_FORMAT_S32_BE,
  SNDRV_PCM_FORMAT_U32_LE,
  SNDRV_PCM_FORMAT_U32_BE,
  SNDRV_PCM_FORMAT_FLOAT_LE,	/* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
  SNDRV_PCM_FORMAT_FLOAT_BE,	/* 4-byte float, IEEE-754 32-bit, range -1.0 to 1.0 */
  SNDRV_PCM_FORMAT_FLOAT64_LE,	/* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
  SNDRV_PCM_FORMAT_FLOAT64_BE,	/* 8-byte float, IEEE-754 64-bit, range -1.0 to 1.0 */
  SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE,	/* IEC-958 subframe, Little Endian */
  SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE,	/* IEC-958 subframe, Big Endian */
  SNDRV_PCM_FORMAT_MU_LAW,
  SNDRV_PCM_FORMAT_A_LAW,
  SNDRV_PCM_FORMAT_IMA_ADPCM,
  SNDRV_PCM_FORMAT_MPEG,
  SNDRV_PCM_FORMAT_GSM,
  SNDRV_PCM_FORMAT_SPECIAL = 31,
  SNDRV_PCM_FORMAT_S24_3LE = 32,	/* in three bytes */
  SNDRV_PCM_FORMAT_S24_3BE,	/* in three bytes */
  SNDRV_PCM_FORMAT_U24_3LE,	/* in three bytes */
  SNDRV_PCM_FORMAT_U24_3BE,	/* in three bytes */
  SNDRV_PCM_FORMAT_S20_3LE,	/* in three bytes */
  SNDRV_PCM_FORMAT_S20_3BE,	/* in three bytes */
  SNDRV_PCM_FORMAT_U20_3LE,	/* in three bytes */
  SNDRV_PCM_FORMAT_U20_3BE,	/* in three bytes */
  SNDRV_PCM_FORMAT_S18_3LE,	/* in three bytes */
  SNDRV_PCM_FORMAT_S18_3BE,	/* in three bytes */
  SNDRV_PCM_FORMAT_U18_3LE,	/* in three bytes */
  SNDRV_PCM_FORMAT_U18_3BE,	/* in three bytes */
  SNDRV_PCM_FORMAT_LAST = SNDRV_PCM_FORMAT_U18_3BE,

#ifdef SNDRV_LITTLE_ENDIAN
  SNDRV_PCM_FORMAT_S16 = SNDRV_PCM_FORMAT_S16_LE,
  SNDRV_PCM_FORMAT_U16 = SNDRV_PCM_FORMAT_U16_LE,
  SNDRV_PCM_FORMAT_S24 = SNDRV_PCM_FORMAT_S24_LE,
  SNDRV_PCM_FORMAT_U24 = SNDRV_PCM_FORMAT_U24_LE,
  SNDRV_PCM_FORMAT_S32 = SNDRV_PCM_FORMAT_S32_LE,
  SNDRV_PCM_FORMAT_U32 = SNDRV_PCM_FORMAT_U32_LE,
  SNDRV_PCM_FORMAT_FLOAT = SNDRV_PCM_FORMAT_FLOAT_LE,
  SNDRV_PCM_FORMAT_FLOAT64 = SNDRV_PCM_FORMAT_FLOAT64_LE,
  SNDRV_PCM_FORMAT_IEC958_SUBFRAME = SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE,
#endif
#ifdef SNDRV_BIG_ENDIAN
  SNDRV_PCM_FORMAT_S16 = SNDRV_PCM_FORMAT_S16_BE,
  SNDRV_PCM_FORMAT_U16 = SNDRV_PCM_FORMAT_U16_BE,
  SNDRV_PCM_FORMAT_S24 = SNDRV_PCM_FORMAT_S24_BE,
  SNDRV_PCM_FORMAT_U24 = SNDRV_PCM_FORMAT_U24_BE,
  SNDRV_PCM_FORMAT_S32 = SNDRV_PCM_FORMAT_S32_BE,
  SNDRV_PCM_FORMAT_U32 = SNDRV_PCM_FORMAT_U32_BE,
  SNDRV_PCM_FORMAT_FLOAT = SNDRV_PCM_FORMAT_FLOAT_BE,
  SNDRV_PCM_FORMAT_FLOAT64 = SNDRV_PCM_FORMAT_FLOAT64_BE,
  SNDRV_PCM_FORMAT_IEC958_SUBFRAME = SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE,
#endif
};

#define FORMAT(v) [SND_PCM_FORMAT_##v] = #v
static const char *snd_pcm_format_names[] = {
  FORMAT (S8),
  FORMAT (U8),
  FORMAT (S16_LE),
  FORMAT (S16_BE),
  FORMAT (U16_LE),
  FORMAT (U16_BE),
  FORMAT (S24_LE),
  FORMAT (S24_BE),
  FORMAT (U24_LE),
  FORMAT (U24_BE),
  FORMAT (S32_LE),
  FORMAT (S32_BE),
  FORMAT (U32_LE),
  FORMAT (U32_BE),
  FORMAT (FLOAT_LE),
  FORMAT (FLOAT_BE),
  FORMAT (FLOAT64_LE),
  FORMAT (FLOAT64_BE),
  FORMAT (IEC958_SUBFRAME_LE),
  FORMAT (IEC958_SUBFRAME_BE),
  FORMAT (MU_LAW),
  FORMAT (A_LAW),
  FORMAT (IMA_ADPCM),
  FORMAT (MPEG),
  FORMAT (GSM),
  FORMAT (SPECIAL),
  FORMAT (S24_3LE),
  FORMAT (S24_3BE),
  FORMAT (U24_3LE),
  FORMAT (U24_3BE),
  FORMAT (S20_3LE),
  FORMAT (S20_3BE),
  FORMAT (U20_3LE),
  FORMAT (U20_3BE),
  FORMAT (S18_3LE),
  FORMAT (S18_3BE),
  FORMAT (U18_3LE),
  FORMAT (U18_3BE),
};