1#[cfg(all(windows, not(target_env = "gnu")))]
7use std::os::raw::c_int as c_enum;
8#[cfg(any(not(windows), all(windows, target_env = "gnu")))]
9use std::os::raw::c_uint as c_enum;
10
11cubeb_enum! {
12 pub enum cubeb_channel : c_enum {
13 CHANNEL_UNKNOWN = 0,
14 CHANNEL_FRONT_LEFT = 1 << 0,
15 CHANNEL_FRONT_RIGHT = 1 << 1,
16 CHANNEL_FRONT_CENTER = 1 << 2,
17 CHANNEL_LOW_FREQUENCY = 1 << 3,
18 CHANNEL_BACK_LEFT = 1 << 4,
19 CHANNEL_BACK_RIGHT = 1 << 5,
20 CHANNEL_FRONT_LEFT_OF_CENTER = 1 << 6,
21 CHANNEL_FRONT_RIGHT_OF_CENTER = 1 << 7,
22 CHANNEL_BACK_CENTER = 1 << 8,
23 CHANNEL_SIDE_LEFT = 1 << 9,
24 CHANNEL_SIDE_RIGHT = 1 << 10,
25 CHANNEL_TOP_CENTER = 1 << 11,
26 CHANNEL_TOP_FRONT_LEFT = 1 << 12,
27 CHANNEL_TOP_FRONT_CENTER = 1 << 13,
28 CHANNEL_TOP_FRONT_RIGHT = 1 << 14,
29 CHANNEL_TOP_BACK_LEFT = 1 << 15,
30 CHANNEL_TOP_BACK_CENTER = 1 << 16,
31 CHANNEL_TOP_BACK_RIGHT = 1 << 17,
32 }
33}
34
35cubeb_enum! {
36 pub enum cubeb_channel_layout : c_enum {
37 CUBEB_LAYOUT_UNDEFINED = 0,
38 CUBEB_LAYOUT_MONO = CHANNEL_FRONT_CENTER,
39 CUBEB_LAYOUT_MONO_LFE = CUBEB_LAYOUT_MONO | CHANNEL_LOW_FREQUENCY,
40 CUBEB_LAYOUT_STEREO = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT,
41 CUBEB_LAYOUT_STEREO_LFE = CUBEB_LAYOUT_STEREO | CHANNEL_LOW_FREQUENCY,
42 CUBEB_LAYOUT_3F = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
43 CHANNEL_FRONT_CENTER,
44 CUBEB_LAYOUT_3F_LFE = CUBEB_LAYOUT_3F | CHANNEL_LOW_FREQUENCY,
45 CUBEB_LAYOUT_2F1 = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
46 CHANNEL_BACK_CENTER,
47 CUBEB_LAYOUT_2F1_LFE = CUBEB_LAYOUT_2F1 | CHANNEL_LOW_FREQUENCY,
48 CUBEB_LAYOUT_3F1 = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
49 CHANNEL_FRONT_CENTER | CHANNEL_BACK_CENTER,
50 CUBEB_LAYOUT_3F1_LFE = CUBEB_LAYOUT_3F1 | CHANNEL_LOW_FREQUENCY,
51 CUBEB_LAYOUT_2F2 = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
52 CHANNEL_SIDE_LEFT | CHANNEL_SIDE_RIGHT,
53 CUBEB_LAYOUT_2F2_LFE = CUBEB_LAYOUT_2F2 | CHANNEL_LOW_FREQUENCY,
54 CUBEB_LAYOUT_QUAD = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
55 CHANNEL_BACK_LEFT | CHANNEL_BACK_RIGHT,
56 CUBEB_LAYOUT_QUAD_LFE = CUBEB_LAYOUT_QUAD | CHANNEL_LOW_FREQUENCY,
57 CUBEB_LAYOUT_3F2 = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
58 CHANNEL_FRONT_CENTER | CHANNEL_SIDE_LEFT |
59 CHANNEL_SIDE_RIGHT,
60 CUBEB_LAYOUT_3F2_LFE = CUBEB_LAYOUT_3F2 | CHANNEL_LOW_FREQUENCY,
61 CUBEB_LAYOUT_3F2_BACK = CUBEB_LAYOUT_QUAD | CHANNEL_FRONT_CENTER,
62 CUBEB_LAYOUT_3F2_LFE_BACK = CUBEB_LAYOUT_3F2_BACK | CHANNEL_LOW_FREQUENCY,
63 CUBEB_LAYOUT_3F3R_LFE = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
64 CHANNEL_FRONT_CENTER | CHANNEL_LOW_FREQUENCY |
65 CHANNEL_BACK_CENTER | CHANNEL_SIDE_LEFT |
66 CHANNEL_SIDE_RIGHT,
67 CUBEB_LAYOUT_3F4_LFE = CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT |
68 CHANNEL_FRONT_CENTER | CHANNEL_LOW_FREQUENCY |
69 CHANNEL_BACK_LEFT | CHANNEL_BACK_RIGHT |
70 CHANNEL_SIDE_LEFT | CHANNEL_SIDE_RIGHT,
71 }
72}