1use fmod_sys::*;
8
9bitflags::bitflags! {
10 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
11 pub struct InitFlags: FMOD_INITFLAGS {
12 const NORMAL = FMOD_INIT_NORMAL;
13 const STREAM_FROM_UPDATE = FMOD_INIT_STREAM_FROM_UPDATE;
14 const MIX_FROM_UPDATE = FMOD_INIT_MIX_FROM_UPDATE;
15 const RIGHTHANDED_3D = FMOD_INIT_3D_RIGHTHANDED;
16 const CLIP_OUTPUT = FMOD_INIT_CLIP_OUTPUT;
17 const CHANNEL_LOWPASS = FMOD_INIT_CHANNEL_LOWPASS;
18 const CHANNEL_DISTANCE_FILTER = FMOD_INIT_CHANNEL_DISTANCEFILTER;
19 const PROFILE_ENABLE = FMOD_INIT_PROFILE_ENABLE;
20 const VOL_0_BECOMES_VIRTUAL = FMOD_INIT_VOL0_BECOMES_VIRTUAL;
21 const GEOMETRY_USE_CLOSEST = FMOD_INIT_GEOMETRY_USECLOSEST;
22 const PREFER_DOLBY_DOWNMIX = FMOD_INIT_PREFER_DOLBY_DOWNMIX;
23 const THREAD_UNSAFE = FMOD_INIT_THREAD_UNSAFE; const PROFILE_METER_ALL = FMOD_INIT_PROFILE_METER_ALL;
25 const MEMORY_TRACKING = FMOD_INIT_MEMORY_TRACKING;
26 }
27}
28
29impl From<FMOD_INITFLAGS> for InitFlags {
30 fn from(value: FMOD_INITFLAGS) -> Self {
31 InitFlags::from_bits_truncate(value)
32 }
33}
34
35impl From<InitFlags> for FMOD_INITFLAGS {
36 fn from(value: InitFlags) -> Self {
37 value.bits()
38 }
39}
40
41bitflags::bitflags! {
42 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
43 pub struct ThreadAffinity: FMOD_THREAD_AFFINITY {
44 const GROUP_DEFAULT = FMOD_THREAD_AFFINITY_GROUP_DEFAULT as FMOD_THREAD_AFFINITY;
45 const GROUP_A = FMOD_THREAD_AFFINITY_GROUP_A as FMOD_THREAD_AFFINITY;
46 const GROUP_B = FMOD_THREAD_AFFINITY_GROUP_B as FMOD_THREAD_AFFINITY;
47 const GROUP_C = FMOD_THREAD_AFFINITY_GROUP_C as FMOD_THREAD_AFFINITY;
48 const MIXER = FMOD_THREAD_AFFINITY_MIXER as FMOD_THREAD_AFFINITY;
49 const FEEDER = FMOD_THREAD_AFFINITY_FEEDER as FMOD_THREAD_AFFINITY;
50 const STREAM = FMOD_THREAD_AFFINITY_STREAM as FMOD_THREAD_AFFINITY;
51 const FILE = FMOD_THREAD_AFFINITY_FILE as FMOD_THREAD_AFFINITY;
52 const NONBLOCKING = FMOD_THREAD_AFFINITY_NONBLOCKING as FMOD_THREAD_AFFINITY;
53 const RECORD = FMOD_THREAD_AFFINITY_RECORD as FMOD_THREAD_AFFINITY;
54 const GEOMETRY = FMOD_THREAD_AFFINITY_GEOMETRY as FMOD_THREAD_AFFINITY;
55 const PROFILER = FMOD_THREAD_AFFINITY_PROFILER as FMOD_THREAD_AFFINITY;
56 const STUDIO_UPDATE = FMOD_THREAD_AFFINITY_STUDIO_UPDATE as FMOD_THREAD_AFFINITY;
57 const STUDIO_LOAD_BANK = FMOD_THREAD_AFFINITY_STUDIO_LOAD_BANK as FMOD_THREAD_AFFINITY;
58 const STUDIO_LOAD_SAMPLE = FMOD_THREAD_AFFINITY_STUDIO_LOAD_SAMPLE as FMOD_THREAD_AFFINITY;
59 const CORE_ALL = FMOD_THREAD_AFFINITY_CORE_ALL as FMOD_THREAD_AFFINITY;
60 const CORE_0 = FMOD_THREAD_AFFINITY_CORE_0 as FMOD_THREAD_AFFINITY;
61 const CORE_1 = FMOD_THREAD_AFFINITY_CORE_1 as FMOD_THREAD_AFFINITY;
62 const CORE_2 = FMOD_THREAD_AFFINITY_CORE_2 as FMOD_THREAD_AFFINITY;
63 const CORE_3 = FMOD_THREAD_AFFINITY_CORE_3 as FMOD_THREAD_AFFINITY;
64 const CORE_4 = FMOD_THREAD_AFFINITY_CORE_4 as FMOD_THREAD_AFFINITY;
65 const CORE_5 = FMOD_THREAD_AFFINITY_CORE_5 as FMOD_THREAD_AFFINITY;
66 const CORE_6 = FMOD_THREAD_AFFINITY_CORE_6 as FMOD_THREAD_AFFINITY;
67 const CORE_7 = FMOD_THREAD_AFFINITY_CORE_7 as FMOD_THREAD_AFFINITY;
68 const CORE_8 = FMOD_THREAD_AFFINITY_CORE_8 as FMOD_THREAD_AFFINITY;
69 const CORE_9 = FMOD_THREAD_AFFINITY_CORE_9 as FMOD_THREAD_AFFINITY;
70 const CORE_10 = FMOD_THREAD_AFFINITY_CORE_10 as FMOD_THREAD_AFFINITY;
71 const CORE_11 = FMOD_THREAD_AFFINITY_CORE_11 as FMOD_THREAD_AFFINITY;
72 const CORE_12 = FMOD_THREAD_AFFINITY_CORE_12 as FMOD_THREAD_AFFINITY;
73 const CORE_13 = FMOD_THREAD_AFFINITY_CORE_13 as FMOD_THREAD_AFFINITY;
74 const CORE_14 = FMOD_THREAD_AFFINITY_CORE_14 as FMOD_THREAD_AFFINITY;
75 const CORE_15 = FMOD_THREAD_AFFINITY_CORE_15 as FMOD_THREAD_AFFINITY;
76 }
77}
78
79impl From<FMOD_THREAD_AFFINITY> for ThreadAffinity {
80 fn from(value: FMOD_THREAD_AFFINITY) -> Self {
81 ThreadAffinity::from_bits_truncate(value)
82 }
83}
84
85impl From<ThreadAffinity> for FMOD_THREAD_AFFINITY {
86 fn from(value: ThreadAffinity) -> Self {
87 value.bits()
88 }
89}
90
91bitflags::bitflags! {
93 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
94 pub struct Mode: FMOD_MODE {
95 const DEFAULT = FMOD_DEFAULT;
96 const LOOP_OFF = FMOD_LOOP_OFF;
97 const LOOP_NORMAL = FMOD_LOOP_NORMAL;
98 const LOOP_BIDI = FMOD_LOOP_BIDI;
99 const D2 = FMOD_2D;
100 const D3 = FMOD_3D;
101 const CREATE_STREAM = FMOD_CREATESTREAM;
102 const CREATE_SAMPLE = FMOD_CREATESAMPLE;
103 const CREATE_COMPRESSED_SAMPLE = FMOD_CREATECOMPRESSEDSAMPLE;
104 const OPEN_USER = FMOD_OPENUSER;
105 const OPEN_MEMORY = FMOD_OPENMEMORY;
106 const OPEN_MEMORY_POINT = FMOD_OPENMEMORY_POINT;
107 const OPEN_RAW = FMOD_OPENRAW;
108 const OPEN_ONLY = FMOD_OPENONLY;
109 const ACCURATE_TIME = FMOD_ACCURATETIME;
110 const MPEG_SEARCH = FMOD_MPEGSEARCH;
111 const NONBLOCKING = FMOD_NONBLOCKING;
112 const UNIQUE = FMOD_UNIQUE;
113 const HEADRELATIVE_3D = FMOD_3D_HEADRELATIVE;
114 const WORLDRELATIVE_3D = FMOD_3D_WORLDRELATIVE;
115 const INVERSE_ROLLOFF_3D = FMOD_3D_INVERSEROLLOFF;
116 const LINEAR_ROLLOFF_3D = FMOD_3D_LINEARROLLOFF;
117 const LINEAR_SQUARE_ROLLOFF_3D = FMOD_3D_LINEARSQUAREROLLOFF;
118 const INVERSE_TAPERED_ROLLOFF_3D = FMOD_3D_INVERSETAPEREDROLLOFF;
119 const CUSTOM_ROLLOFF_3D = FMOD_3D_CUSTOMROLLOFF;
120 const IGNORE_GEOMETRY_3D = FMOD_3D_IGNOREGEOMETRY;
121 const IGNORE_TAGS = FMOD_IGNORETAGS;
122 const LOWMEM = FMOD_LOWMEM;
123 const VIRTUAL_PLAYFROM_START = FMOD_VIRTUAL_PLAYFROMSTART;
124 }
125}
126
127impl From<FMOD_MODE> for Mode {
128 fn from(value: FMOD_MODE) -> Self {
129 Mode::from_bits_truncate(value)
130 }
131}
132
133impl From<Mode> for FMOD_MODE {
134 fn from(value: Mode) -> Self {
135 value.bits()
136 }
137}
138
139bitflags::bitflags! {
141 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
142 pub struct ChannelMask: FMOD_CHANNELMASK {
143 const FRONT_LEFT = FMOD_CHANNELMASK_FRONT_LEFT;
144 const FRONT_RIGHT = FMOD_CHANNELMASK_FRONT_RIGHT;
145 const FRONT_CENTER = FMOD_CHANNELMASK_FRONT_CENTER;
146 const LOW_FREQUENCY = FMOD_CHANNELMASK_LOW_FREQUENCY;
147 const SURROUND_LEFT = FMOD_CHANNELMASK_SURROUND_LEFT;
148 const SURROUND_RIGHT = FMOD_CHANNELMASK_SURROUND_RIGHT ;
149 const BACK_LEFT = FMOD_CHANNELMASK_BACK_LEFT;
150 const BACK_RIGHT = FMOD_CHANNELMASK_BACK_RIGHT;
151 const BACK_CENTER = FMOD_CHANNELMASK_BACK_CENTER;
152 const MONO = FMOD_CHANNELMASK_MONO;
153 const STEREO = FMOD_CHANNELMASK_STEREO;
154 const LRC = FMOD_CHANNELMASK_LRC;
155 const QUAD = FMOD_CHANNELMASK_QUAD;
156 const SURROUND = FMOD_CHANNELMASK_SURROUND;
157 const _5POINT1 = FMOD_CHANNELMASK_5POINT1;
158 const _5POINT1_REARS = FMOD_CHANNELMASK_5POINT1_REARS;
159 const _7POINT0 = FMOD_CHANNELMASK_7POINT0;
160 const _7POINT1 = FMOD_CHANNELMASK_7POINT1;
161 }
162}
163
164impl From<FMOD_CHANNELMASK> for ChannelMask {
165 fn from(value: FMOD_CHANNELMASK) -> Self {
166 ChannelMask::from_bits_truncate(value)
167 }
168}
169
170impl From<ChannelMask> for FMOD_CHANNELMASK {
171 fn from(value: ChannelMask) -> Self {
172 value.bits()
173 }
174}
175
176bitflags::bitflags! {
177 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
178 pub struct DriverState: FMOD_DRIVER_STATE {
179 const CONNECTED = FMOD_DRIVER_STATE_CONNECTED;
180 const DEFAULT = FMOD_DRIVER_STATE_DEFAULT;
181 }
182}
183
184impl From<FMOD_DRIVER_STATE> for DriverState {
185 fn from(value: FMOD_DRIVER_STATE) -> Self {
186 DriverState::from_bits_truncate(value)
187 }
188}
189
190impl From<DriverState> for FMOD_DRIVER_STATE {
191 fn from(value: DriverState) -> Self {
192 value.bits()
193 }
194}