Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.

Commit 2bd3be5

Browse files
committed
Updated FMOD to newest version
1 parent 04d32fb commit 2bd3be5

File tree

9 files changed

+113
-8
lines changed

9 files changed

+113
-8
lines changed

external/include/fmod/fmod.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ FMOD_RESULT F_API FMOD_Memory_GetStats (int *currentalloced, int *ma
2727
FMOD_RESULT F_API FMOD_Debug_Initialize (FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode, FMOD_DEBUG_CALLBACK callback, const char *filename);
2828
FMOD_RESULT F_API FMOD_File_SetDiskBusy (int busy);
2929
FMOD_RESULT F_API FMOD_File_GetDiskBusy (int *busy);
30+
FMOD_RESULT F_API FMOD_Thread_SetAttributes (FMOD_THREAD_TYPE type, FMOD_THREAD_AFFINITY affinity, FMOD_THREAD_PRIORITY priority, FMOD_THREAD_STACK_SIZE stacksize);
3031

3132
/*
3233
FMOD System factory functions. Use this to create an FMOD System Instance. below you will see FMOD_System_Init/Close to get started.
@@ -101,6 +102,7 @@ FMOD_RESULT F_API FMOD_System_GetVersion (FMOD_SYSTEM *system, un
101102
FMOD_RESULT F_API FMOD_System_GetOutputHandle (FMOD_SYSTEM *system, void **handle);
102103
FMOD_RESULT F_API FMOD_System_GetChannelsPlaying (FMOD_SYSTEM *system, int *channels, int *realchannels);
103104
FMOD_RESULT F_API FMOD_System_GetCPUUsage (FMOD_SYSTEM *system, float *dsp, float *stream, float *geometry, float *update, float *total);
105+
FMOD_RESULT F_API FMOD_System_GetCPUUsageEx (FMOD_SYSTEM *system, float *convolutionThread1, float *convolutionThread2);
104106
FMOD_RESULT F_API FMOD_System_GetFileUsage (FMOD_SYSTEM *system, long long *sampleBytesRead, long long *streamBytesRead, long long *otherBytesRead);
105107

106108
/* Sound/DSP/Channel/FX creation and retrieval. */
@@ -114,6 +116,7 @@ FMOD_RESULT F_API FMOD_System_CreateReverb3D (FMOD_SYSTEM *system, FM
114116
FMOD_RESULT F_API FMOD_System_PlaySound (FMOD_SYSTEM *system, FMOD_SOUND *sound, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel);
115117
FMOD_RESULT F_API FMOD_System_PlayDSP (FMOD_SYSTEM *system, FMOD_DSP *dsp, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel);
116118
FMOD_RESULT F_API FMOD_System_GetChannel (FMOD_SYSTEM *system, int channelid, FMOD_CHANNEL **channel);
119+
FMOD_RESULT F_API FMOD_System_GetDSPInfoByType (FMOD_SYSTEM *system, FMOD_DSP_TYPE type, const FMOD_DSP_DESCRIPTION **description);
117120
FMOD_RESULT F_API FMOD_System_GetMasterChannelGroup (FMOD_SYSTEM *system, FMOD_CHANNELGROUP **channelgroup);
118121
FMOD_RESULT F_API FMOD_System_GetMasterSoundGroup (FMOD_SYSTEM *system, FMOD_SOUNDGROUP **soundgroup);
119122

external/include/fmod/fmod.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ namespace FMOD
3838
inline FMOD_RESULT Debug_Initialize (FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode = FMOD_DEBUG_MODE_TTY, FMOD_DEBUG_CALLBACK callback = 0, const char *filename = 0) { return FMOD_Debug_Initialize(flags, mode, callback, filename); }
3939
inline FMOD_RESULT File_SetDiskBusy (int busy) { return FMOD_File_SetDiskBusy(busy); }
4040
inline FMOD_RESULT File_GetDiskBusy (int *busy) { return FMOD_File_GetDiskBusy(busy); }
41+
inline FMOD_RESULT Thread_SetAttributes (FMOD_THREAD_TYPE type, FMOD_THREAD_AFFINITY affinity = FMOD_THREAD_AFFINITY_GROUP_DEFAULT, FMOD_THREAD_PRIORITY priority = FMOD_THREAD_PRIORITY_DEFAULT, FMOD_THREAD_STACK_SIZE stacksize = FMOD_THREAD_STACK_SIZE_DEFAULT) { return FMOD_Thread_SetAttributes(type, affinity, priority, stacksize); }
4142

4243
/*
4344
FMOD System factory functions.
@@ -123,6 +124,7 @@ namespace FMOD
123124
FMOD_RESULT F_API getOutputHandle (void **handle);
124125
FMOD_RESULT F_API getChannelsPlaying (int *channels, int *realchannels = 0);
125126
FMOD_RESULT F_API getCPUUsage (float *dsp, float *stream, float *geometry, float *update, float *total);
127+
FMOD_RESULT F_API getCPUUsageEx (float *convolutionThread1, float *convolutionThread2);
126128
FMOD_RESULT F_API getFileUsage (long long *sampleBytesRead, long long *streamBytesRead, long long *otherBytesRead);
127129

128130
// Sound/DSP/Channel/FX creation and retrieval.
@@ -137,6 +139,7 @@ namespace FMOD
137139
FMOD_RESULT F_API playSound (Sound *sound, ChannelGroup *channelgroup, bool paused, Channel **channel);
138140
FMOD_RESULT F_API playDSP (DSP *dsp, ChannelGroup *channelgroup, bool paused, Channel **channel);
139141
FMOD_RESULT F_API getChannel (int channelid, Channel **channel);
142+
FMOD_RESULT F_API getDSPInfoByType (FMOD_DSP_TYPE type, const FMOD_DSP_DESCRIPTION **description);
140143
FMOD_RESULT F_API getMasterChannelGroup (ChannelGroup **channelgroup);
141144
FMOD_RESULT F_API getMasterSoundGroup (SoundGroup **soundgroup);
142145

external/include/fmod/fmod_common.h

Lines changed: 105 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ typedef unsigned long long FMOD_PORT_INDEX;
5858
/*
5959
FMOD constants
6060
*/
61-
#define FMOD_VERSION 0x00020008 /* 0xaaaabbcc -> aaaa = product version, bb = major version, cc = minor version.*/
61+
#define FMOD_VERSION 0x00020105 /* 0xaaaabbcc -> aaaa = product version, bb = major version, cc = minor version.*/
6262

6363
typedef unsigned int FMOD_DEBUG_FLAGS;
6464
#define FMOD_DEBUG_LEVEL_NONE 0x00000000
@@ -169,7 +169,6 @@ typedef unsigned int FMOD_CHANNELMASK;
169169
#define FMOD_CHANNELMASK_BACK_LEFT 0x00000040
170170
#define FMOD_CHANNELMASK_BACK_RIGHT 0x00000080
171171
#define FMOD_CHANNELMASK_BACK_CENTER 0x00000100
172-
173172
#define FMOD_CHANNELMASK_MONO (FMOD_CHANNELMASK_FRONT_LEFT)
174173
#define FMOD_CHANNELMASK_STEREO (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT)
175174
#define FMOD_CHANNELMASK_LRC (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER)
@@ -180,6 +179,89 @@ typedef unsigned int FMOD_CHANNELMASK;
180179
#define FMOD_CHANNELMASK_7POINT0 (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT)
181180
#define FMOD_CHANNELMASK_7POINT1 (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_LOW_FREQUENCY | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT)
182181

182+
typedef int FMOD_THREAD_PRIORITY;
183+
/* Platform specific priority range */
184+
#define FMOD_THREAD_PRIORITY_PLATFORM_MIN (-32 * 1024)
185+
#define FMOD_THREAD_PRIORITY_PLATFORM_MAX ( 32 * 1024)
186+
/* Platform agnostic priorities, maps internally to platform specific value */
187+
#define FMOD_THREAD_PRIORITY_DEFAULT (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 1)
188+
#define FMOD_THREAD_PRIORITY_LOW (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 2)
189+
#define FMOD_THREAD_PRIORITY_MEDIUM (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 3)
190+
#define FMOD_THREAD_PRIORITY_HIGH (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 4)
191+
#define FMOD_THREAD_PRIORITY_VERY_HIGH (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 5)
192+
#define FMOD_THREAD_PRIORITY_EXTREME (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 6)
193+
#define FMOD_THREAD_PRIORITY_CRITICAL (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 7)
194+
/* Thread defaults */
195+
#define FMOD_THREAD_PRIORITY_MIXER FMOD_THREAD_PRIORITY_EXTREME
196+
#define FMOD_THREAD_PRIORITY_FEEDER FMOD_THREAD_PRIORITY_CRITICAL
197+
#define FMOD_THREAD_PRIORITY_STREAM FMOD_THREAD_PRIORITY_VERY_HIGH
198+
#define FMOD_THREAD_PRIORITY_FILE FMOD_THREAD_PRIORITY_HIGH
199+
#define FMOD_THREAD_PRIORITY_NONBLOCKING FMOD_THREAD_PRIORITY_HIGH
200+
#define FMOD_THREAD_PRIORITY_RECORD FMOD_THREAD_PRIORITY_HIGH
201+
#define FMOD_THREAD_PRIORITY_GEOMETRY FMOD_THREAD_PRIORITY_LOW
202+
#define FMOD_THREAD_PRIORITY_PROFILER FMOD_THREAD_PRIORITY_MEDIUM
203+
#define FMOD_THREAD_PRIORITY_STUDIO_UPDATE FMOD_THREAD_PRIORITY_MEDIUM
204+
#define FMOD_THREAD_PRIORITY_STUDIO_LOAD_BANK FMOD_THREAD_PRIORITY_MEDIUM
205+
#define FMOD_THREAD_PRIORITY_STUDIO_LOAD_SAMPLE FMOD_THREAD_PRIORITY_MEDIUM
206+
#define FMOD_THREAD_PRIORITY_CONVOLUTION1 FMOD_THREAD_PRIORITY_VERY_HIGH
207+
#define FMOD_THREAD_PRIORITY_CONVOLUTION2 FMOD_THREAD_PRIORITY_VERY_HIGH
208+
209+
typedef unsigned int FMOD_THREAD_STACK_SIZE;
210+
#define FMOD_THREAD_STACK_SIZE_DEFAULT 0
211+
#define FMOD_THREAD_STACK_SIZE_MIXER (80 * 1024)
212+
#define FMOD_THREAD_STACK_SIZE_FEEDER (16 * 1024)
213+
#define FMOD_THREAD_STACK_SIZE_STREAM (96 * 1024)
214+
#define FMOD_THREAD_STACK_SIZE_FILE (48 * 1024)
215+
#define FMOD_THREAD_STACK_SIZE_NONBLOCKING (112 * 1024)
216+
#define FMOD_THREAD_STACK_SIZE_RECORD (16 * 1024)
217+
#define FMOD_THREAD_STACK_SIZE_GEOMETRY (48 * 1024)
218+
#define FMOD_THREAD_STACK_SIZE_PROFILER (128 * 1024)
219+
#define FMOD_THREAD_STACK_SIZE_STUDIO_UPDATE (96 * 1024)
220+
#define FMOD_THREAD_STACK_SIZE_STUDIO_LOAD_BANK (96 * 1024)
221+
#define FMOD_THREAD_STACK_SIZE_STUDIO_LOAD_SAMPLE (96 * 1024)
222+
#define FMOD_THREAD_STACK_SIZE_CONVOLUTION1 (16 * 1024)
223+
#define FMOD_THREAD_STACK_SIZE_CONVOLUTION2 (16 * 1024)
224+
225+
typedef unsigned long long FMOD_THREAD_AFFINITY;
226+
/* Platform agnostic thread groupings */
227+
#define FMOD_THREAD_AFFINITY_GROUP_DEFAULT 0x8000000000000000
228+
#define FMOD_THREAD_AFFINITY_GROUP_A 0x8000000000000001
229+
#define FMOD_THREAD_AFFINITY_GROUP_B 0x8000000000000002
230+
#define FMOD_THREAD_AFFINITY_GROUP_C 0x8000000000000003
231+
/* Thread defaults */
232+
#define FMOD_THREAD_AFFINITY_MIXER FMOD_THREAD_AFFINITY_GROUP_A
233+
#define FMOD_THREAD_AFFINITY_FEEDER FMOD_THREAD_AFFINITY_GROUP_C
234+
#define FMOD_THREAD_AFFINITY_STREAM FMOD_THREAD_AFFINITY_GROUP_C
235+
#define FMOD_THREAD_AFFINITY_FILE FMOD_THREAD_AFFINITY_GROUP_C
236+
#define FMOD_THREAD_AFFINITY_NONBLOCKING FMOD_THREAD_AFFINITY_GROUP_C
237+
#define FMOD_THREAD_AFFINITY_RECORD FMOD_THREAD_AFFINITY_GROUP_C
238+
#define FMOD_THREAD_AFFINITY_GEOMETRY FMOD_THREAD_AFFINITY_GROUP_C
239+
#define FMOD_THREAD_AFFINITY_PROFILER FMOD_THREAD_AFFINITY_GROUP_C
240+
#define FMOD_THREAD_AFFINITY_STUDIO_UPDATE FMOD_THREAD_AFFINITY_GROUP_B
241+
#define FMOD_THREAD_AFFINITY_STUDIO_LOAD_BANK FMOD_THREAD_AFFINITY_GROUP_C
242+
#define FMOD_THREAD_AFFINITY_STUDIO_LOAD_SAMPLE FMOD_THREAD_AFFINITY_GROUP_C
243+
#define FMOD_THREAD_AFFINITY_CONVOLUTION1 FMOD_THREAD_AFFINITY_GROUP_C
244+
#define FMOD_THREAD_AFFINITY_CONVOLUTION2 FMOD_THREAD_AFFINITY_GROUP_C
245+
246+
/* Core mask, valid up to 1 << 62 */
247+
#define FMOD_THREAD_AFFINITY_CORE_ALL 0
248+
#define FMOD_THREAD_AFFINITY_CORE_0 (1 << 0)
249+
#define FMOD_THREAD_AFFINITY_CORE_1 (1 << 1)
250+
#define FMOD_THREAD_AFFINITY_CORE_2 (1 << 2)
251+
#define FMOD_THREAD_AFFINITY_CORE_3 (1 << 3)
252+
#define FMOD_THREAD_AFFINITY_CORE_4 (1 << 4)
253+
#define FMOD_THREAD_AFFINITY_CORE_5 (1 << 5)
254+
#define FMOD_THREAD_AFFINITY_CORE_6 (1 << 6)
255+
#define FMOD_THREAD_AFFINITY_CORE_7 (1 << 7)
256+
#define FMOD_THREAD_AFFINITY_CORE_8 (1 << 8)
257+
#define FMOD_THREAD_AFFINITY_CORE_9 (1 << 9)
258+
#define FMOD_THREAD_AFFINITY_CORE_10 (1 << 10)
259+
#define FMOD_THREAD_AFFINITY_CORE_11 (1 << 11)
260+
#define FMOD_THREAD_AFFINITY_CORE_12 (1 << 12)
261+
#define FMOD_THREAD_AFFINITY_CORE_13 (1 << 13)
262+
#define FMOD_THREAD_AFFINITY_CORE_14 (1 << 14)
263+
#define FMOD_THREAD_AFFINITY_CORE_15 (1 << 15)
264+
183265
/* Preset for FMOD_REVERB_PROPERTIES */
184266
#define FMOD_PRESET_OFF { 1000, 7, 11, 5000, 100, 100, 100, 250, 0, 20, 96, -80.0f }
185267
#define FMOD_PRESET_GENERIC { 1500, 7, 11, 5000, 83, 100, 100, 250, 0, 14500, 96, -8.0f }
@@ -212,6 +294,26 @@ typedef unsigned int FMOD_CHANNELMASK;
212294
#define FMOD_REVERB_MAXINSTANCES 4
213295
#define FMOD_PORT_INDEX_NONE 0xFFFFFFFFFFFFFFFF
214296

297+
typedef enum FMOD_THREAD_TYPE
298+
{
299+
FMOD_THREAD_TYPE_MIXER,
300+
FMOD_THREAD_TYPE_FEEDER,
301+
FMOD_THREAD_TYPE_STREAM,
302+
FMOD_THREAD_TYPE_FILE,
303+
FMOD_THREAD_TYPE_NONBLOCKING,
304+
FMOD_THREAD_TYPE_RECORD,
305+
FMOD_THREAD_TYPE_GEOMETRY,
306+
FMOD_THREAD_TYPE_PROFILER,
307+
FMOD_THREAD_TYPE_STUDIO_UPDATE,
308+
FMOD_THREAD_TYPE_STUDIO_LOAD_BANK,
309+
FMOD_THREAD_TYPE_STUDIO_LOAD_SAMPLE,
310+
FMOD_THREAD_TYPE_CONVOLUTION1,
311+
FMOD_THREAD_TYPE_CONVOLUTION2,
312+
313+
FMOD_THREAD_TYPE_MAX,
314+
FMOD_THREAD_TYPE_FORCEINT = 65536
315+
} FMOD_THREAD_TYPE;
316+
215317
typedef enum FMOD_RESULT
216318
{
217319
FMOD_OK,
@@ -659,12 +761,9 @@ typedef struct FMOD_ADVANCEDSETTINGS
659761
float distanceFilterCenterFreq;
660762
int reverb3Dinstance;
661763
int DSPBufferPoolSize;
662-
unsigned int stackSizeStream;
663-
unsigned int stackSizeNonBlocking;
664-
unsigned int stackSizeMixer;
665764
FMOD_DSP_RESAMPLER resamplerMethod;
666-
unsigned int commandQueueSize;
667765
unsigned int randomSeed;
766+
int maxConvolutionThreads;
668767
} FMOD_ADVANCEDSETTINGS;
669768

670769
typedef struct FMOD_TAG

external/include/fmod/fmod_output.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ typedef struct FMOD_OUTPUT_DESCRIPTION
6767
unsigned int apiversion;
6868
const char *name;
6969
unsigned int version;
70-
FMOD_OUTPUT_METHOD polling; /* This will become "method" on the next major version */
70+
FMOD_OUTPUT_METHOD method;
7171
FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK getnumdrivers;
7272
FMOD_OUTPUT_GETDRIVERINFO_CALLBACK getdriverinfo;
7373
FMOD_OUTPUT_INIT_CALLBACK init;

external/lib/fmod.dll

48 KB
Binary file not shown.
-1.5 MB
Binary file not shown.
1.59 MB
Binary file not shown.

external/lib/linux/x86_64/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ext_libs = [files('libfmod.so.11')]
1+
ext_libs = [files('libfmod.so.12')]

external/lib/win/fmod_vc.lib

852 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)