1use fmod_sys::*;
8use std::ffi::c_uint;
9
10bitflags::bitflags! {
11 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
12 pub struct InitFlags: c_uint {
13 const NORMAL = FMOD_STUDIO_INIT_NORMAL;
14 const LIVEUPDATE = FMOD_STUDIO_INIT_LIVEUPDATE;
15 const ALLOW_MISSING_PLUGINS = FMOD_STUDIO_INIT_ALLOW_MISSING_PLUGINS;
16 const SYNCHRONOUS_UPDATE = FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE;
17 const DEFERRED_CALLBACKS = FMOD_STUDIO_INIT_DEFERRED_CALLBACKS;
18 const LOAD_FROM_UPDATE = FMOD_STUDIO_INIT_LOAD_FROM_UPDATE;
19 const MEMORY_TRACKING = FMOD_STUDIO_INIT_MEMORY_TRACKING;
20 }
21}
22
23impl From<FMOD_STUDIO_INITFLAGS> for InitFlags {
24 fn from(value: FMOD_STUDIO_INITFLAGS) -> Self {
25 InitFlags::from_bits_truncate(value)
26 }
27}
28
29impl From<InitFlags> for FMOD_STUDIO_INITFLAGS {
30 fn from(value: InitFlags) -> Self {
31 value.bits()
32 }
33}
34
35bitflags::bitflags! {
36 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
37 pub struct LoadBankFlags: c_uint {
38 const NORMAL = FMOD_STUDIO_LOAD_BANK_NORMAL;
39 const NONBLOCKING = FMOD_STUDIO_LOAD_BANK_NONBLOCKING;
40 const DECOMPRESS_SAMPLES = FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES;
41 const UNENCRYPTED = FMOD_STUDIO_LOAD_BANK_UNENCRYPTED;
42 }
43}
44
45impl From<FMOD_STUDIO_LOAD_BANK_FLAGS> for LoadBankFlags {
46 fn from(value: FMOD_STUDIO_LOAD_BANK_FLAGS) -> Self {
47 LoadBankFlags::from_bits_truncate(value)
48 }
49}
50
51impl From<LoadBankFlags> for FMOD_STUDIO_LOAD_BANK_FLAGS {
52 fn from(value: LoadBankFlags) -> Self {
53 value.bits()
54 }
55}
56
57bitflags::bitflags! {
58 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
59 pub struct ParameterFlags: c_uint {
60 const READONLY = FMOD_STUDIO_PARAMETER_READONLY;
61 const AUTOMATIC = FMOD_STUDIO_PARAMETER_AUTOMATIC;
62 const GLOBAL = FMOD_STUDIO_PARAMETER_GLOBAL;
63 const DISCRETE = FMOD_STUDIO_PARAMETER_DISCRETE;
64 const LABELED = FMOD_STUDIO_PARAMETER_LABELED;
65 }
66}
67
68impl From<FMOD_STUDIO_PARAMETER_FLAGS> for ParameterFlags {
69 fn from(value: FMOD_STUDIO_PARAMETER_FLAGS) -> Self {
70 ParameterFlags::from_bits_truncate(value)
71 }
72}
73
74impl From<ParameterFlags> for FMOD_STUDIO_PARAMETER_FLAGS {
75 fn from(value: ParameterFlags) -> Self {
76 value.bits()
77 }
78}
79
80bitflags::bitflags! {
81 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
82 pub struct CommandCaptureFlags: c_uint {
83 const NORMAL = FMOD_STUDIO_COMMANDCAPTURE_NORMAL;
84 const FILE_FLUSH = FMOD_STUDIO_COMMANDCAPTURE_FILEFLUSH;
85 const SKIP_INITIAL_STATE = FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE;
86 }
87}
88
89impl From<FMOD_STUDIO_COMMANDCAPTURE_FLAGS> for CommandCaptureFlags {
90 fn from(value: FMOD_STUDIO_COMMANDCAPTURE_FLAGS) -> Self {
91 CommandCaptureFlags::from_bits_truncate(value)
92 }
93}
94
95impl From<CommandCaptureFlags> for FMOD_STUDIO_COMMANDCAPTURE_FLAGS {
96 fn from(value: CommandCaptureFlags) -> Self {
97 value.bits()
98 }
99}
100
101bitflags::bitflags! {
102 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
103 pub struct CommandReplayFlags: c_uint {
104 const NORMAL = FMOD_STUDIO_COMMANDCAPTURE_NORMAL;
105 const SKIP_CLEANUP = FMOD_STUDIO_COMMANDREPLAY_SKIP_CLEANUP;
106 const FAST_FORWARD = FMOD_STUDIO_COMMANDREPLAY_FAST_FORWARD;
107 const SKIP_BANK_LOAD = FMOD_STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD;
108 }
109}
110
111impl From<FMOD_STUDIO_COMMANDREPLAY_FLAGS> for CommandReplayFlags {
112 fn from(value: FMOD_STUDIO_COMMANDREPLAY_FLAGS) -> Self {
113 CommandReplayFlags::from_bits_truncate(value)
114 }
115}
116
117impl From<CommandReplayFlags> for FMOD_STUDIO_COMMANDREPLAY_FLAGS {
118 fn from(value: CommandReplayFlags) -> Self {
119 value.bits()
120 }
121}
122
123bitflags::bitflags! {
124 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
125 pub struct EventCallbackMask: c_uint {
126 const CREATED = FMOD_STUDIO_EVENT_CALLBACK_CREATED;
127 const DESTROYED = FMOD_STUDIO_EVENT_CALLBACK_DESTROYED;
128 const STARTING = FMOD_STUDIO_EVENT_CALLBACK_STARTING;
129 const STARTED = FMOD_STUDIO_EVENT_CALLBACK_STARTED;
130 const RESTARTED = FMOD_STUDIO_EVENT_CALLBACK_RESTARTED;
131 const STOPPED = FMOD_STUDIO_EVENT_CALLBACK_STOPPED;
132 const START_FAILED = FMOD_STUDIO_EVENT_CALLBACK_START_FAILED;
133 const CREATE_PROGRAMMER_SOUND = FMOD_STUDIO_EVENT_CALLBACK_CREATE_PROGRAMMER_SOUND;
134 const DESTROY_PROGRAMMER_SOUND = FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND;
135 const PLUGIN_CREATED = FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_CREATED;
136 const PLUGIN_DESTROYED = FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_DESTROYED;
137 const TIMELINE_MARKER = FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER;
138 const TIMELINE_BEAT = FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT;
139 const SOUND_PLAYED = FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED;
140 const SOUND_STOPPED = FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED;
141 const REAL_TO_VIRTUAL = FMOD_STUDIO_EVENT_CALLBACK_REAL_TO_VIRTUAL;
142 const VIRTUAL_TO_REAL = FMOD_STUDIO_EVENT_CALLBACK_VIRTUAL_TO_REAL;
143 const START_EVENT_COMMAND = FMOD_STUDIO_EVENT_CALLBACK_START_EVENT_COMMAND;
144 const NESTED_TIMELINE_BEAT = FMOD_STUDIO_EVENT_CALLBACK_NESTED_TIMELINE_BEAT;
145 const ALL = FMOD_STUDIO_EVENT_CALLBACK_ALL;
146 }
147}
148
149impl From<FMOD_STUDIO_EVENT_CALLBACK_TYPE> for EventCallbackMask {
150 fn from(value: FMOD_STUDIO_EVENT_CALLBACK_TYPE) -> Self {
151 EventCallbackMask::from_bits_truncate(value)
152 }
153}
154
155impl From<EventCallbackMask> for FMOD_STUDIO_EVENT_CALLBACK_TYPE {
156 fn from(value: EventCallbackMask) -> Self {
157 value.bits()
158 }
159}
160
161bitflags::bitflags! {
162 #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
163 pub struct SystemCallbackMask: c_uint {
164 const PREUPDATE = FMOD_STUDIO_SYSTEM_CALLBACK_PREUPDATE;
165 const POSTUPDATE = FMOD_STUDIO_SYSTEM_CALLBACK_POSTUPDATE;
166 const BANK_UNLOAD = FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD;
167 const LIVEUPDATE_CONNECTED = FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED;
168 const LIVEUPDATE_DISCONNECTED = FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED;
169 }
170}
171
172impl From<FMOD_STUDIO_SYSTEM_CALLBACK_TYPE> for SystemCallbackMask {
173 fn from(value: FMOD_STUDIO_SYSTEM_CALLBACK_TYPE) -> Self {
174 SystemCallbackMask::from_bits_truncate(value)
175 }
176}
177
178impl From<SystemCallbackMask> for FMOD_STUDIO_SYSTEM_CALLBACK_TYPE {
179 fn from(value: SystemCallbackMask) -> Self {
180 value.bits()
181 }
182}