diff options
Diffstat (limited to 'vendor/fmod/inc/fmod_studio_common.h')
-rw-r--r-- | vendor/fmod/inc/fmod_studio_common.h | 336 |
1 files changed, 336 insertions, 0 deletions
diff --git a/vendor/fmod/inc/fmod_studio_common.h b/vendor/fmod/inc/fmod_studio_common.h new file mode 100644 index 0000000..e22d993 --- /dev/null +++ b/vendor/fmod/inc/fmod_studio_common.h | |||
@@ -0,0 +1,336 @@ | |||
1 | /* ======================================================================================== */ | ||
2 | /* FMOD Studio API - Common C/C++ header file. */ | ||
3 | /* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ | ||
4 | /* */ | ||
5 | /* This header defines common enumerations, structs and callbacks that are shared between */ | ||
6 | /* the C and C++ interfaces. */ | ||
7 | /* */ | ||
8 | /* For more detail visit: */ | ||
9 | /* https://fmod.com/resources/documentation-api?version=2.0&page=page=studio-api.html */ | ||
10 | /* ======================================================================================== */ | ||
11 | #ifndef FMOD_STUDIO_COMMON_H | ||
12 | #define FMOD_STUDIO_COMMON_H | ||
13 | |||
14 | #include "fmod.h" | ||
15 | |||
16 | /* | ||
17 | FMOD Studio types. | ||
18 | */ | ||
19 | typedef struct FMOD_STUDIO_SYSTEM FMOD_STUDIO_SYSTEM; | ||
20 | typedef struct FMOD_STUDIO_EVENTDESCRIPTION FMOD_STUDIO_EVENTDESCRIPTION; | ||
21 | typedef struct FMOD_STUDIO_EVENTINSTANCE FMOD_STUDIO_EVENTINSTANCE; | ||
22 | typedef struct FMOD_STUDIO_BUS FMOD_STUDIO_BUS; | ||
23 | typedef struct FMOD_STUDIO_VCA FMOD_STUDIO_VCA; | ||
24 | typedef struct FMOD_STUDIO_BANK FMOD_STUDIO_BANK; | ||
25 | typedef struct FMOD_STUDIO_COMMANDREPLAY FMOD_STUDIO_COMMANDREPLAY; | ||
26 | |||
27 | /* | ||
28 | FMOD Studio constants | ||
29 | */ | ||
30 | #define FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT 32 | ||
31 | |||
32 | typedef unsigned int FMOD_STUDIO_INITFLAGS; | ||
33 | #define FMOD_STUDIO_INIT_NORMAL 0x00000000 | ||
34 | #define FMOD_STUDIO_INIT_LIVEUPDATE 0x00000001 | ||
35 | #define FMOD_STUDIO_INIT_ALLOW_MISSING_PLUGINS 0x00000002 | ||
36 | #define FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE 0x00000004 | ||
37 | #define FMOD_STUDIO_INIT_DEFERRED_CALLBACKS 0x00000008 | ||
38 | #define FMOD_STUDIO_INIT_LOAD_FROM_UPDATE 0x00000010 | ||
39 | #define FMOD_STUDIO_INIT_MEMORY_TRACKING 0x00000020 | ||
40 | |||
41 | typedef unsigned int FMOD_STUDIO_PARAMETER_FLAGS; | ||
42 | #define FMOD_STUDIO_PARAMETER_READONLY 0x00000001 | ||
43 | #define FMOD_STUDIO_PARAMETER_AUTOMATIC 0x00000002 | ||
44 | #define FMOD_STUDIO_PARAMETER_GLOBAL 0x00000004 | ||
45 | #define FMOD_STUDIO_PARAMETER_DISCRETE 0x00000008 | ||
46 | #define FMOD_STUDIO_PARAMETER_LABELED 0x00000010 | ||
47 | |||
48 | typedef unsigned int FMOD_STUDIO_SYSTEM_CALLBACK_TYPE; | ||
49 | #define FMOD_STUDIO_SYSTEM_CALLBACK_PREUPDATE 0x00000001 | ||
50 | #define FMOD_STUDIO_SYSTEM_CALLBACK_POSTUPDATE 0x00000002 | ||
51 | #define FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD 0x00000004 | ||
52 | #define FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED 0x00000008 | ||
53 | #define FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED 0x00000010 | ||
54 | #define FMOD_STUDIO_SYSTEM_CALLBACK_ALL 0xFFFFFFFF | ||
55 | |||
56 | typedef unsigned int FMOD_STUDIO_EVENT_CALLBACK_TYPE; | ||
57 | #define FMOD_STUDIO_EVENT_CALLBACK_CREATED 0x00000001 | ||
58 | #define FMOD_STUDIO_EVENT_CALLBACK_DESTROYED 0x00000002 | ||
59 | #define FMOD_STUDIO_EVENT_CALLBACK_STARTING 0x00000004 | ||
60 | #define FMOD_STUDIO_EVENT_CALLBACK_STARTED 0x00000008 | ||
61 | #define FMOD_STUDIO_EVENT_CALLBACK_RESTARTED 0x00000010 | ||
62 | #define FMOD_STUDIO_EVENT_CALLBACK_STOPPED 0x00000020 | ||
63 | #define FMOD_STUDIO_EVENT_CALLBACK_START_FAILED 0x00000040 | ||
64 | #define FMOD_STUDIO_EVENT_CALLBACK_CREATE_PROGRAMMER_SOUND 0x00000080 | ||
65 | #define FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND 0x00000100 | ||
66 | #define FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_CREATED 0x00000200 | ||
67 | #define FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_DESTROYED 0x00000400 | ||
68 | #define FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER 0x00000800 | ||
69 | #define FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT 0x00001000 | ||
70 | #define FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED 0x00002000 | ||
71 | #define FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED 0x00004000 | ||
72 | #define FMOD_STUDIO_EVENT_CALLBACK_REAL_TO_VIRTUAL 0x00008000 | ||
73 | #define FMOD_STUDIO_EVENT_CALLBACK_VIRTUAL_TO_REAL 0x00010000 | ||
74 | #define FMOD_STUDIO_EVENT_CALLBACK_START_EVENT_COMMAND 0x00020000 | ||
75 | #define FMOD_STUDIO_EVENT_CALLBACK_NESTED_TIMELINE_BEAT 0x00040000 | ||
76 | #define FMOD_STUDIO_EVENT_CALLBACK_ALL 0xFFFFFFFF | ||
77 | |||
78 | typedef unsigned int FMOD_STUDIO_LOAD_BANK_FLAGS; | ||
79 | #define FMOD_STUDIO_LOAD_BANK_NORMAL 0x00000000 | ||
80 | #define FMOD_STUDIO_LOAD_BANK_NONBLOCKING 0x00000001 | ||
81 | #define FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES 0x00000002 | ||
82 | #define FMOD_STUDIO_LOAD_BANK_UNENCRYPTED 0x00000004 | ||
83 | |||
84 | typedef unsigned int FMOD_STUDIO_COMMANDCAPTURE_FLAGS; | ||
85 | #define FMOD_STUDIO_COMMANDCAPTURE_NORMAL 0x00000000 | ||
86 | #define FMOD_STUDIO_COMMANDCAPTURE_FILEFLUSH 0x00000001 | ||
87 | #define FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE 0x00000002 | ||
88 | |||
89 | typedef unsigned int FMOD_STUDIO_COMMANDREPLAY_FLAGS; | ||
90 | #define FMOD_STUDIO_COMMANDREPLAY_NORMAL 0x00000000 | ||
91 | #define FMOD_STUDIO_COMMANDREPLAY_SKIP_CLEANUP 0x00000001 | ||
92 | #define FMOD_STUDIO_COMMANDREPLAY_FAST_FORWARD 0x00000002 | ||
93 | #define FMOD_STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD 0x00000004 | ||
94 | |||
95 | typedef enum FMOD_STUDIO_LOADING_STATE | ||
96 | { | ||
97 | FMOD_STUDIO_LOADING_STATE_UNLOADING, | ||
98 | FMOD_STUDIO_LOADING_STATE_UNLOADED, | ||
99 | FMOD_STUDIO_LOADING_STATE_LOADING, | ||
100 | FMOD_STUDIO_LOADING_STATE_LOADED, | ||
101 | FMOD_STUDIO_LOADING_STATE_ERROR, | ||
102 | |||
103 | FMOD_STUDIO_LOADING_STATE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ | ||
104 | } FMOD_STUDIO_LOADING_STATE; | ||
105 | |||
106 | typedef enum FMOD_STUDIO_LOAD_MEMORY_MODE | ||
107 | { | ||
108 | FMOD_STUDIO_LOAD_MEMORY, | ||
109 | FMOD_STUDIO_LOAD_MEMORY_POINT, | ||
110 | |||
111 | FMOD_STUDIO_LOAD_MEMORY_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ | ||
112 | } FMOD_STUDIO_LOAD_MEMORY_MODE; | ||
113 | |||
114 | typedef enum FMOD_STUDIO_PARAMETER_TYPE | ||
115 | { | ||
116 | FMOD_STUDIO_PARAMETER_GAME_CONTROLLED, | ||
117 | FMOD_STUDIO_PARAMETER_AUTOMATIC_DISTANCE, | ||
118 | FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_CONE_ANGLE, | ||
119 | FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_ORIENTATION, | ||
120 | FMOD_STUDIO_PARAMETER_AUTOMATIC_DIRECTION, | ||
121 | FMOD_STUDIO_PARAMETER_AUTOMATIC_ELEVATION, | ||
122 | FMOD_STUDIO_PARAMETER_AUTOMATIC_LISTENER_ORIENTATION, | ||
123 | FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED, | ||
124 | FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED_ABSOLUTE, | ||
125 | FMOD_STUDIO_PARAMETER_AUTOMATIC_DISTANCE_NORMALIZED, | ||
126 | |||
127 | FMOD_STUDIO_PARAMETER_MAX, | ||
128 | FMOD_STUDIO_PARAMETER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ | ||
129 | } FMOD_STUDIO_PARAMETER_TYPE; | ||
130 | |||
131 | typedef enum FMOD_STUDIO_USER_PROPERTY_TYPE | ||
132 | { | ||
133 | FMOD_STUDIO_USER_PROPERTY_TYPE_INTEGER, | ||
134 | FMOD_STUDIO_USER_PROPERTY_TYPE_BOOLEAN, | ||
135 | FMOD_STUDIO_USER_PROPERTY_TYPE_FLOAT, | ||
136 | FMOD_STUDIO_USER_PROPERTY_TYPE_STRING, | ||
137 | |||
138 | FMOD_STUDIO_USER_PROPERTY_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ | ||
139 | } FMOD_STUDIO_USER_PROPERTY_TYPE; | ||
140 | |||
141 | typedef enum FMOD_STUDIO_EVENT_PROPERTY | ||
142 | { | ||
143 | FMOD_STUDIO_EVENT_PROPERTY_CHANNELPRIORITY, | ||
144 | FMOD_STUDIO_EVENT_PROPERTY_SCHEDULE_DELAY, | ||
145 | FMOD_STUDIO_EVENT_PROPERTY_SCHEDULE_LOOKAHEAD, | ||
146 | FMOD_STUDIO_EVENT_PROPERTY_MINIMUM_DISTANCE, | ||
147 | FMOD_STUDIO_EVENT_PROPERTY_MAXIMUM_DISTANCE, | ||
148 | FMOD_STUDIO_EVENT_PROPERTY_COOLDOWN, | ||
149 | FMOD_STUDIO_EVENT_PROPERTY_MAX, | ||
150 | |||
151 | FMOD_STUDIO_EVENT_PROPERTY_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ | ||
152 | } FMOD_STUDIO_EVENT_PROPERTY; | ||
153 | |||
154 | typedef enum FMOD_STUDIO_PLAYBACK_STATE | ||
155 | { | ||
156 | FMOD_STUDIO_PLAYBACK_PLAYING, | ||
157 | FMOD_STUDIO_PLAYBACK_SUSTAINING, | ||
158 | FMOD_STUDIO_PLAYBACK_STOPPED, | ||
159 | FMOD_STUDIO_PLAYBACK_STARTING, | ||
160 | FMOD_STUDIO_PLAYBACK_STOPPING, | ||
161 | |||
162 | FMOD_STUDIO_PLAYBACK_FORCEINT = 65536 | ||
163 | } FMOD_STUDIO_PLAYBACK_STATE; | ||
164 | |||
165 | typedef enum FMOD_STUDIO_STOP_MODE | ||
166 | { | ||
167 | FMOD_STUDIO_STOP_ALLOWFADEOUT, | ||
168 | FMOD_STUDIO_STOP_IMMEDIATE, | ||
169 | |||
170 | FMOD_STUDIO_STOP_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ | ||
171 | } FMOD_STUDIO_STOP_MODE; | ||
172 | |||
173 | typedef enum FMOD_STUDIO_INSTANCETYPE | ||
174 | { | ||
175 | FMOD_STUDIO_INSTANCETYPE_NONE, | ||
176 | FMOD_STUDIO_INSTANCETYPE_SYSTEM, | ||
177 | FMOD_STUDIO_INSTANCETYPE_EVENTDESCRIPTION, | ||
178 | FMOD_STUDIO_INSTANCETYPE_EVENTINSTANCE, | ||
179 | FMOD_STUDIO_INSTANCETYPE_PARAMETERINSTANCE, | ||
180 | FMOD_STUDIO_INSTANCETYPE_BUS, | ||
181 | FMOD_STUDIO_INSTANCETYPE_VCA, | ||
182 | FMOD_STUDIO_INSTANCETYPE_BANK, | ||
183 | FMOD_STUDIO_INSTANCETYPE_COMMANDREPLAY, | ||
184 | |||
185 | FMOD_STUDIO_INSTANCETYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ | ||
186 | } FMOD_STUDIO_INSTANCETYPE; | ||
187 | |||
188 | /* | ||
189 | FMOD Studio structures | ||
190 | */ | ||
191 | typedef struct FMOD_STUDIO_BANK_INFO | ||
192 | { | ||
193 | int size; | ||
194 | void *userdata; | ||
195 | int userdatalength; | ||
196 | FMOD_FILE_OPEN_CALLBACK opencallback; | ||
197 | FMOD_FILE_CLOSE_CALLBACK closecallback; | ||
198 | FMOD_FILE_READ_CALLBACK readcallback; | ||
199 | FMOD_FILE_SEEK_CALLBACK seekcallback; | ||
200 | } FMOD_STUDIO_BANK_INFO; | ||
201 | |||
202 | typedef struct FMOD_STUDIO_PARAMETER_ID | ||
203 | { | ||
204 | unsigned int data1; | ||
205 | unsigned int data2; | ||
206 | } FMOD_STUDIO_PARAMETER_ID; | ||
207 | |||
208 | typedef struct FMOD_STUDIO_PARAMETER_DESCRIPTION | ||
209 | { | ||
210 | const char *name; | ||
211 | FMOD_STUDIO_PARAMETER_ID id; | ||
212 | float minimum; | ||
213 | float maximum; | ||
214 | float defaultvalue; | ||
215 | FMOD_STUDIO_PARAMETER_TYPE type; | ||
216 | FMOD_STUDIO_PARAMETER_FLAGS flags; | ||
217 | FMOD_GUID guid; | ||
218 | } FMOD_STUDIO_PARAMETER_DESCRIPTION; | ||
219 | |||
220 | typedef struct FMOD_STUDIO_USER_PROPERTY | ||
221 | { | ||
222 | const char *name; | ||
223 | FMOD_STUDIO_USER_PROPERTY_TYPE type; | ||
224 | |||
225 | union | ||
226 | { | ||
227 | int intvalue; | ||
228 | FMOD_BOOL boolvalue; | ||
229 | float floatvalue; | ||
230 | const char *stringvalue; | ||
231 | }; | ||
232 | } FMOD_STUDIO_USER_PROPERTY; | ||
233 | |||
234 | typedef struct FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES | ||
235 | { | ||
236 | const char *name; | ||
237 | FMOD_SOUND *sound; | ||
238 | int subsoundIndex; | ||
239 | } FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES; | ||
240 | |||
241 | typedef struct FMOD_STUDIO_PLUGIN_INSTANCE_PROPERTIES | ||
242 | { | ||
243 | const char *name; | ||
244 | FMOD_DSP *dsp; | ||
245 | } FMOD_STUDIO_PLUGIN_INSTANCE_PROPERTIES; | ||
246 | |||
247 | typedef struct FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES | ||
248 | { | ||
249 | const char *name; | ||
250 | int position; | ||
251 | } FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES; | ||
252 | |||
253 | typedef struct FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES | ||
254 | { | ||
255 | int bar; | ||
256 | int beat; | ||
257 | int position; | ||
258 | float tempo; | ||
259 | int timesignatureupper; | ||
260 | int timesignaturelower; | ||
261 | } FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES; | ||
262 | |||
263 | typedef struct FMOD_STUDIO_TIMELINE_NESTED_BEAT_PROPERTIES | ||
264 | { | ||
265 | FMOD_GUID eventid; | ||
266 | FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES properties; | ||
267 | } FMOD_STUDIO_TIMELINE_NESTED_BEAT_PROPERTIES; | ||
268 | |||
269 | typedef struct FMOD_STUDIO_ADVANCEDSETTINGS | ||
270 | { | ||
271 | int cbsize; | ||
272 | unsigned int commandqueuesize; | ||
273 | unsigned int handleinitialsize; | ||
274 | int studioupdateperiod; | ||
275 | int idlesampledatapoolsize; | ||
276 | unsigned int streamingscheduledelay; | ||
277 | const char* encryptionkey; | ||
278 | } FMOD_STUDIO_ADVANCEDSETTINGS; | ||
279 | |||
280 | typedef struct FMOD_STUDIO_CPU_USAGE | ||
281 | { | ||
282 | float update; | ||
283 | } FMOD_STUDIO_CPU_USAGE; | ||
284 | |||
285 | typedef struct FMOD_STUDIO_BUFFER_INFO | ||
286 | { | ||
287 | int currentusage; | ||
288 | int peakusage; | ||
289 | int capacity; | ||
290 | int stallcount; | ||
291 | float stalltime; | ||
292 | } FMOD_STUDIO_BUFFER_INFO; | ||
293 | |||
294 | typedef struct FMOD_STUDIO_BUFFER_USAGE | ||
295 | { | ||
296 | FMOD_STUDIO_BUFFER_INFO studiocommandqueue; | ||
297 | FMOD_STUDIO_BUFFER_INFO studiohandle; | ||
298 | } FMOD_STUDIO_BUFFER_USAGE; | ||
299 | |||
300 | typedef struct FMOD_STUDIO_SOUND_INFO | ||
301 | { | ||
302 | const char *name_or_data; | ||
303 | FMOD_MODE mode; | ||
304 | FMOD_CREATESOUNDEXINFO exinfo; | ||
305 | int subsoundindex; | ||
306 | } FMOD_STUDIO_SOUND_INFO; | ||
307 | |||
308 | typedef struct FMOD_STUDIO_COMMAND_INFO | ||
309 | { | ||
310 | const char *commandname; | ||
311 | int parentcommandindex; | ||
312 | int framenumber; | ||
313 | float frametime; | ||
314 | FMOD_STUDIO_INSTANCETYPE instancetype; | ||
315 | FMOD_STUDIO_INSTANCETYPE outputtype; | ||
316 | unsigned int instancehandle; | ||
317 | unsigned int outputhandle; | ||
318 | } FMOD_STUDIO_COMMAND_INFO; | ||
319 | |||
320 | typedef struct FMOD_STUDIO_MEMORY_USAGE | ||
321 | { | ||
322 | int exclusive; | ||
323 | int inclusive; | ||
324 | int sampledata; | ||
325 | } FMOD_STUDIO_MEMORY_USAGE; | ||
326 | |||
327 | /* | ||
328 | FMOD Studio callbacks. | ||
329 | */ | ||
330 | typedef FMOD_RESULT (F_CALLBACK *FMOD_STUDIO_SYSTEM_CALLBACK) (FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_SYSTEM_CALLBACK_TYPE type, void *commanddata, void *userdata); | ||
331 | typedef FMOD_RESULT (F_CALLBACK *FMOD_STUDIO_EVENT_CALLBACK) (FMOD_STUDIO_EVENT_CALLBACK_TYPE type, FMOD_STUDIO_EVENTINSTANCE *event, void *parameters); | ||
332 | typedef FMOD_RESULT (F_CALLBACK *FMOD_STUDIO_COMMANDREPLAY_FRAME_CALLBACK) (FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, float currenttime, void *userdata); | ||
333 | typedef FMOD_RESULT (F_CALLBACK *FMOD_STUDIO_COMMANDREPLAY_LOAD_BANK_CALLBACK) (FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, const FMOD_GUID *bankguid, const char *bankfilename, FMOD_STUDIO_LOAD_BANK_FLAGS flags, FMOD_STUDIO_BANK **bank, void *userdata); | ||
334 | typedef FMOD_RESULT (F_CALLBACK *FMOD_STUDIO_COMMANDREPLAY_CREATE_INSTANCE_CALLBACK) (FMOD_STUDIO_COMMANDREPLAY *replay, int commandindex, FMOD_STUDIO_EVENTDESCRIPTION *eventdescription, FMOD_STUDIO_EVENTINSTANCE **instance, void *userdata); | ||
335 | |||
336 | #endif // FMOD_STUDIO_COMMON_H | ||