diff --git a/bridge/fmod_generated_template.c b/bridge/fmod_generated_template.c index c5ab3da..eb623da 100644 --- a/bridge/fmod_generated_template.c +++ b/bridge/fmod_generated_template.c @@ -427,8 +427,13 @@ static int _FMODBridge_func_FMOD_Studio_System_SetListenerAttributes(lua_State * FMOD_STUDIO_SYSTEM* system = FMODBridge_check_ptr_FMOD_STUDIO_SYSTEM(L, 1); int index = FMODBridge_check_int(L, 2); FMOD_3D_ATTRIBUTES* attributes = FMODBridge_check_ptr_FMOD_3D_ATTRIBUTES(L, 3); - ensure(ST, FMOD_Studio_System_SetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, FMOD_3D_ATTRIBUTES*); - errCheck(FMOD_Studio_System_SetListenerAttributes(system, index, attributes)); + FMOD_VECTOR attenuationposition; + int hasAttenuationPosition = !lua_isnoneornil(L, 4); + if (hasAttenuationPosition) { + attenuationposition = FMODBridge_check_FMOD_VECTOR(L, 4); + } + ensure(ST, FMOD_Studio_System_SetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, const FMOD_3D_ATTRIBUTES*, const FMOD_VECTOR*); + errCheck(FMOD_Studio_System_SetListenerAttributes(system, index, attributes, hasAttenuationPosition ? &attenuationposition : NULL)); return 0; } diff --git a/bridge/include/fmod.h b/bridge/include/fmod.h index 2decfb5..ff04091 100644 --- a/bridge/include/fmod.h +++ b/bridge/include/fmod.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - C header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header in conjunction with fmod_common.h (which contains all the constants / */ /* callbacks) to develop using the C interface */ @@ -27,6 +27,7 @@ FMOD_RESULT F_API FMOD_Memory_GetStats (int *currentalloced, int *ma FMOD_RESULT F_API FMOD_Debug_Initialize (FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode, FMOD_DEBUG_CALLBACK callback, const char *filename); FMOD_RESULT F_API FMOD_File_SetDiskBusy (int busy); FMOD_RESULT F_API FMOD_File_GetDiskBusy (int *busy); +FMOD_RESULT F_API FMOD_Thread_SetAttributes (FMOD_THREAD_TYPE type, FMOD_THREAD_AFFINITY affinity, FMOD_THREAD_PRIORITY priority, FMOD_THREAD_STACK_SIZE stacksize); /* FMOD System factory functions. Use this to create an FMOD System Instance. below you will see FMOD_System_Init/Close to get started. diff --git a/bridge/include/fmod.hpp b/bridge/include/fmod.hpp index 6e6a37f..101af61 100644 --- a/bridge/include/fmod.hpp +++ b/bridge/include/fmod.hpp @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - C++ header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header in conjunction with fmod_common.h (which contains all the constants / */ /* callbacks) to develop using the C++ language. */ @@ -38,6 +38,7 @@ namespace FMOD 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); } inline FMOD_RESULT File_SetDiskBusy (int busy) { return FMOD_File_SetDiskBusy(busy); } inline FMOD_RESULT File_GetDiskBusy (int *busy) { return FMOD_File_GetDiskBusy(busy); } + 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); } /* FMOD System factory functions. diff --git a/bridge/include/fmod_codec.h b/bridge/include/fmod_codec.h index cf151cb..59a26f3 100644 --- a/bridge/include/fmod_codec.h +++ b/bridge/include/fmod_codec.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - Codec development header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header if you are wanting to develop your own file format plugin to use with */ /* FMOD's codec system. With this header you can make your own fileformat plugin that FMOD */ diff --git a/bridge/include/fmod_common.h b/bridge/include/fmod_common.h index 8b3fa61..0e67157 100644 --- a/bridge/include/fmod_common.h +++ b/bridge/include/fmod_common.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - Common C/C++ header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* This header is included by fmod.hpp (C++ interface) and fmod.h (C interface) */ /* */ @@ -15,15 +15,13 @@ */ #if defined(_WIN32) || defined(__CYGWIN__) #define F_CALL __stdcall -#elif defined(__ANDROID__) && defined(__arm__) && !defined(__LP64__) && !defined(__clang__) - #define F_CALL __attribute__((pcs("aapcs"))) #else #define F_CALL #endif -#if defined(_WIN32) || defined(__CYGWIN__) || defined(__ORBIS__) +#if defined(_WIN32) || defined(__CYGWIN__) || defined(__ORBIS__) || defined(F_USE_DECLSPEC) #define F_EXPORT __declspec(dllexport) -#elif defined(__APPLE__) || defined(__ANDROID__) || defined(__linux__) +#elif defined(__APPLE__) || defined(__ANDROID__) || defined(__linux__) || defined(F_USE_ATTRIBUTE) #define F_EXPORT __attribute__((visibility("default"))) #else #define F_EXPORT @@ -60,7 +58,7 @@ typedef unsigned long long FMOD_PORT_INDEX; /* FMOD constants */ -#define FMOD_VERSION 0x00020001 /* 0xaaaabbcc -> aaaa = product version, bb = major version, cc = minor version.*/ +#define FMOD_VERSION 0x00020100 /* 0xaaaabbcc -> aaaa = product version, bb = major version, cc = minor version.*/ typedef unsigned int FMOD_DEBUG_FLAGS; #define FMOD_DEBUG_LEVEL_NONE 0x00000000 @@ -98,6 +96,7 @@ typedef unsigned int FMOD_INITFLAGS; #define FMOD_INIT_PREFER_DOLBY_DOWNMIX 0x00080000 #define FMOD_INIT_THREAD_UNSAFE 0x00100000 #define FMOD_INIT_PROFILE_METER_ALL 0x00200000 +#define FMOD_INIT_MEMORY_TRACKING 0x00400000 typedef unsigned int FMOD_DRIVER_STATE; #define FMOD_DRIVER_STATE_CONNECTED 0x00000001 @@ -170,7 +169,6 @@ typedef unsigned int FMOD_CHANNELMASK; #define FMOD_CHANNELMASK_BACK_LEFT 0x00000040 #define FMOD_CHANNELMASK_BACK_RIGHT 0x00000080 #define FMOD_CHANNELMASK_BACK_CENTER 0x00000100 - #define FMOD_CHANNELMASK_MONO (FMOD_CHANNELMASK_FRONT_LEFT) #define FMOD_CHANNELMASK_STEREO (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT) #define FMOD_CHANNELMASK_LRC (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER) @@ -181,6 +179,82 @@ typedef unsigned int FMOD_CHANNELMASK; #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) #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) +typedef int FMOD_THREAD_PRIORITY; +/* Platform specific priority range */ +#define FMOD_THREAD_PRIORITY_PLATFORM_MIN (-32 * 1024) +#define FMOD_THREAD_PRIORITY_PLATFORM_MAX ( 32 * 1024) +/* Platform agnostic priorities, maps internally to platform specific value */ +#define FMOD_THREAD_PRIORITY_DEFAULT (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 1) +#define FMOD_THREAD_PRIORITY_LOW (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 2) +#define FMOD_THREAD_PRIORITY_MEDIUM (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 3) +#define FMOD_THREAD_PRIORITY_HIGH (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 4) +#define FMOD_THREAD_PRIORITY_VERY_HIGH (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 5) +#define FMOD_THREAD_PRIORITY_EXTREME (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 6) +#define FMOD_THREAD_PRIORITY_CRITICAL (FMOD_THREAD_PRIORITY_PLATFORM_MIN - 7) +/* Thread defaults */ +#define FMOD_THREAD_PRIORITY_MIXER FMOD_THREAD_PRIORITY_EXTREME +#define FMOD_THREAD_PRIORITY_FEEDER FMOD_THREAD_PRIORITY_CRITICAL +#define FMOD_THREAD_PRIORITY_STREAM FMOD_THREAD_PRIORITY_VERY_HIGH +#define FMOD_THREAD_PRIORITY_FILE FMOD_THREAD_PRIORITY_HIGH +#define FMOD_THREAD_PRIORITY_NONBLOCKING FMOD_THREAD_PRIORITY_HIGH +#define FMOD_THREAD_PRIORITY_RECORD FMOD_THREAD_PRIORITY_HIGH +#define FMOD_THREAD_PRIORITY_GEOMETRY FMOD_THREAD_PRIORITY_LOW +#define FMOD_THREAD_PRIORITY_PROFILER FMOD_THREAD_PRIORITY_MEDIUM +#define FMOD_THREAD_PRIORITY_STUDIO_UPDATE FMOD_THREAD_PRIORITY_MEDIUM +#define FMOD_THREAD_PRIORITY_STUDIO_LOAD_BANK FMOD_THREAD_PRIORITY_MEDIUM +#define FMOD_THREAD_PRIORITY_STUDIO_LOAD_SAMPLE FMOD_THREAD_PRIORITY_MEDIUM + +typedef unsigned int FMOD_THREAD_STACK_SIZE; +#define FMOD_THREAD_STACK_SIZE_DEFAULT 0 +#define FMOD_THREAD_STACK_SIZE_MIXER (80 * 1024) +#define FMOD_THREAD_STACK_SIZE_FEEDER (16 * 1024) +#define FMOD_THREAD_STACK_SIZE_STREAM (96 * 1024) +#define FMOD_THREAD_STACK_SIZE_FILE (48 * 1024) +#define FMOD_THREAD_STACK_SIZE_NONBLOCKING (112 * 1024) +#define FMOD_THREAD_STACK_SIZE_RECORD (16 * 1024) +#define FMOD_THREAD_STACK_SIZE_GEOMETRY (48 * 1024) +#define FMOD_THREAD_STACK_SIZE_PROFILER (128 * 1024) +#define FMOD_THREAD_STACK_SIZE_STUDIO_UPDATE (96 * 1024) +#define FMOD_THREAD_STACK_SIZE_STUDIO_LOAD_BANK (96 * 1024) +#define FMOD_THREAD_STACK_SIZE_STUDIO_LOAD_SAMPLE (96 * 1024) + +typedef unsigned long long FMOD_THREAD_AFFINITY; +/* Platform agnostic thread groupings */ +#define FMOD_THREAD_AFFINITY_GROUP_DEFAULT 0x8000000000000000 +#define FMOD_THREAD_AFFINITY_GROUP_A 0x8000000000000001 +#define FMOD_THREAD_AFFINITY_GROUP_B 0x8000000000000002 +#define FMOD_THREAD_AFFINITY_GROUP_C 0x8000000000000003 +/* Thread defaults */ +#define FMOD_THREAD_AFFINITY_MIXER FMOD_THREAD_AFFINITY_GROUP_A +#define FMOD_THREAD_AFFINITY_FEEDER FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_STREAM FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_FILE FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_NONBLOCKING FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_RECORD FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_GEOMETRY FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_PROFILER FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_STUDIO_UPDATE FMOD_THREAD_AFFINITY_GROUP_B +#define FMOD_THREAD_AFFINITY_STUDIO_LOAD_BANK FMOD_THREAD_AFFINITY_GROUP_C +#define FMOD_THREAD_AFFINITY_STUDIO_LOAD_SAMPLE FMOD_THREAD_AFFINITY_GROUP_C +/* Core mask, valid up to 1 << 62 */ +#define FMOD_THREAD_AFFINITY_CORE_ALL 0 +#define FMOD_THREAD_AFFINITY_CORE_0 (1 << 0) +#define FMOD_THREAD_AFFINITY_CORE_1 (1 << 1) +#define FMOD_THREAD_AFFINITY_CORE_2 (1 << 2) +#define FMOD_THREAD_AFFINITY_CORE_3 (1 << 3) +#define FMOD_THREAD_AFFINITY_CORE_4 (1 << 4) +#define FMOD_THREAD_AFFINITY_CORE_5 (1 << 5) +#define FMOD_THREAD_AFFINITY_CORE_6 (1 << 6) +#define FMOD_THREAD_AFFINITY_CORE_7 (1 << 7) +#define FMOD_THREAD_AFFINITY_CORE_8 (1 << 8) +#define FMOD_THREAD_AFFINITY_CORE_9 (1 << 9) +#define FMOD_THREAD_AFFINITY_CORE_10 (1 << 10) +#define FMOD_THREAD_AFFINITY_CORE_11 (1 << 11) +#define FMOD_THREAD_AFFINITY_CORE_12 (1 << 12) +#define FMOD_THREAD_AFFINITY_CORE_13 (1 << 13) +#define FMOD_THREAD_AFFINITY_CORE_14 (1 << 14) +#define FMOD_THREAD_AFFINITY_CORE_15 (1 << 15) + /* Preset for FMOD_REVERB_PROPERTIES */ #define FMOD_PRESET_OFF { 1000, 7, 11, 5000, 100, 100, 100, 250, 0, 20, 96, -80.0f } #define FMOD_PRESET_GENERIC { 1500, 7, 11, 5000, 83, 100, 100, 250, 0, 14500, 96, -8.0f } @@ -213,6 +287,24 @@ typedef unsigned int FMOD_CHANNELMASK; #define FMOD_REVERB_MAXINSTANCES 4 #define FMOD_PORT_INDEX_NONE 0xFFFFFFFFFFFFFFFF +typedef enum FMOD_THREAD_TYPE +{ + FMOD_THREAD_TYPE_MIXER, + FMOD_THREAD_TYPE_FEEDER, + FMOD_THREAD_TYPE_STREAM, + FMOD_THREAD_TYPE_FILE, + FMOD_THREAD_TYPE_NONBLOCKING, + FMOD_THREAD_TYPE_RECORD, + FMOD_THREAD_TYPE_GEOMETRY, + FMOD_THREAD_TYPE_PROFILER, + FMOD_THREAD_TYPE_STUDIO_UPDATE, + FMOD_THREAD_TYPE_STUDIO_LOAD_BANK, + FMOD_THREAD_TYPE_STUDIO_LOAD_SAMPLE, + + FMOD_THREAD_TYPE_MAX, + FMOD_THREAD_TYPE_FORCEINT = 65536 +} FMOD_THREAD_TYPE; + typedef enum FMOD_RESULT { FMOD_OK, @@ -330,6 +422,7 @@ typedef enum FMOD_OUTPUTTYPE FMOD_OUTPUTTYPE_WEBAUDIO, FMOD_OUTPUTTYPE_NNAUDIO, FMOD_OUTPUTTYPE_WINSONIC, + FMOD_OUTPUTTYPE_AAUDIO, FMOD_OUTPUTTYPE_MAX, FMOD_OUTPUTTYPE_FORCEINT = 65536 @@ -362,7 +455,8 @@ typedef enum FMOD_SPEAKERMODE typedef enum FMOD_SPEAKER { - FMOD_SPEAKER_FRONT_LEFT, + FMOD_SPEAKER_NONE = -1, + FMOD_SPEAKER_FRONT_LEFT = 0, FMOD_SPEAKER_FRONT_RIGHT, FMOD_SPEAKER_FRONT_CENTER, FMOD_SPEAKER_LOW_FREQUENCY, @@ -428,6 +522,7 @@ typedef enum FMOD_SOUND_TYPE FMOD_SOUND_TYPE_MEDIA_FOUNDATION, FMOD_SOUND_TYPE_MEDIACODEC, FMOD_SOUND_TYPE_FADPCM, + FMOD_SOUND_TYPE_OPUS, FMOD_SOUND_TYPE_MAX, FMOD_SOUND_TYPE_FORCEINT = 65536 @@ -657,11 +752,7 @@ typedef struct FMOD_ADVANCEDSETTINGS float distanceFilterCenterFreq; int reverb3Dinstance; int DSPBufferPoolSize; - unsigned int stackSizeStream; - unsigned int stackSizeNonBlocking; - unsigned int stackSizeMixer; FMOD_DSP_RESAMPLER resamplerMethod; - unsigned int commandQueueSize; unsigned int randomSeed; } FMOD_ADVANCEDSETTINGS; diff --git a/bridge/include/fmod_dsp.h b/bridge/include/fmod_dsp.h index 8964591..549e5b9 100644 --- a/bridge/include/fmod_dsp.h +++ b/bridge/include/fmod_dsp.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - DSP header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header if you are wanting to develop your own DSP plugin to use with FMODs */ /* dsp system. With this header you can make your own DSP plugin that FMOD can */ @@ -115,20 +115,20 @@ typedef FMOD_RESULT (F_CALL *FMOD_DSP_PAN_GETROLLOFFGAIN_FUNC) (FMOD_ /* DSP Structures */ -typedef struct FMOD_DSP_BUFFER_ARRAY +struct FMOD_DSP_BUFFER_ARRAY { int numbuffers; int *buffernumchannels; FMOD_CHANNELMASK *bufferchannelmask; float **buffers; FMOD_SPEAKERMODE speakermode; -} FMOD_DSP_BUFFER_ARRAY; +}; -typedef struct FMOD_COMPLEX +struct FMOD_COMPLEX { float real; float imag; -} FMOD_COMPLEX; +}; typedef struct FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR { diff --git a/bridge/include/fmod_dsp_effects.h b/bridge/include/fmod_dsp_effects.h index 616c358..af1a0d6 100644 --- a/bridge/include/fmod_dsp_effects.h +++ b/bridge/include/fmod_dsp_effects.h @@ -1,6 +1,6 @@ /* ============================================================================================================= */ /* FMOD Core API - Built-in effects header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* In this header you can find parameter structures for FMOD system registered DSP effects */ /* and generators. */ diff --git a/bridge/include/fmod_errors.h b/bridge/include/fmod_errors.h index 44d0296..2acd594 100644 --- a/bridge/include/fmod_errors.h +++ b/bridge/include/fmod_errors.h @@ -1,6 +1,6 @@ /* ============================================================================================== */ /* FMOD Core / Studio API - Error string header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header if you want to store or display a string version / english explanation */ /* of the FMOD error codes. */ diff --git a/bridge/include/fmod_output.h b/bridge/include/fmod_output.h index cda8555..e87e2d5 100644 --- a/bridge/include/fmod_output.h +++ b/bridge/include/fmod_output.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - output development header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header if you are wanting to develop your own output plugin to use with */ /* FMOD's output system. With this header you can make your own output plugin that FMOD */ @@ -21,6 +21,11 @@ typedef struct FMOD_OUTPUT_OBJECT3DINFO FMOD_OUTPUT_OBJECT3DINFO; */ #define FMOD_OUTPUT_PLUGIN_VERSION 4 +typedef unsigned int FMOD_OUTPUT_METHOD; +#define FMOD_OUTPUT_METHOD_MIX_DIRECT 0 +#define FMOD_OUTPUT_METHOD_POLLING 1 +#define FMOD_OUTPUT_METHOD_MIX_BUFFERED 2 + /* Output callbacks */ @@ -62,7 +67,7 @@ typedef struct FMOD_OUTPUT_DESCRIPTION unsigned int apiversion; const char *name; unsigned int version; - int polling; + FMOD_OUTPUT_METHOD method; FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK getnumdrivers; FMOD_OUTPUT_GETDRIVERINFO_CALLBACK getdriverinfo; FMOD_OUTPUT_INIT_CALLBACK init; diff --git a/bridge/include/fmod_studio.h b/bridge/include/fmod_studio.h index 3ffa325..2074626 100644 --- a/bridge/include/fmod_studio.h +++ b/bridge/include/fmod_studio.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Studio API - C header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header in conjunction with fmod_studio_common.h (which contains all the */ /* constants / callbacks) to develop using the C language. */ @@ -54,8 +54,8 @@ FMOD_RESULT F_API FMOD_Studio_System_LookupID(FMOD_STUDIO_SYSTEM *system, const FMOD_RESULT F_API FMOD_Studio_System_LookupPath(FMOD_STUDIO_SYSTEM *system, const FMOD_GUID *id, char *path, int size, int *retrieved); FMOD_RESULT F_API FMOD_Studio_System_GetNumListeners(FMOD_STUDIO_SYSTEM *system, int *numlisteners); FMOD_RESULT F_API FMOD_Studio_System_SetNumListeners(FMOD_STUDIO_SYSTEM *system, int numlisteners); -FMOD_RESULT F_API FMOD_Studio_System_GetListenerAttributes(FMOD_STUDIO_SYSTEM *system, int index, FMOD_3D_ATTRIBUTES *attributes); -FMOD_RESULT F_API FMOD_Studio_System_SetListenerAttributes(FMOD_STUDIO_SYSTEM *system, int index, FMOD_3D_ATTRIBUTES *attributes); +FMOD_RESULT F_API FMOD_Studio_System_GetListenerAttributes(FMOD_STUDIO_SYSTEM *system, int index, FMOD_3D_ATTRIBUTES *attributes, FMOD_VECTOR *attenuationposition); +FMOD_RESULT F_API FMOD_Studio_System_SetListenerAttributes(FMOD_STUDIO_SYSTEM *system, int index, const FMOD_3D_ATTRIBUTES *attributes, const FMOD_VECTOR *attenuationposition); FMOD_RESULT F_API FMOD_Studio_System_GetListenerWeight(FMOD_STUDIO_SYSTEM *system, int index, float *weight); FMOD_RESULT F_API FMOD_Studio_System_SetListenerWeight(FMOD_STUDIO_SYSTEM *system, int index, float weight); FMOD_RESULT F_API FMOD_Studio_System_LoadBankFile(FMOD_STUDIO_SYSTEM *system, const char *filename, FMOD_STUDIO_LOAD_BANK_FLAGS flags, FMOD_STUDIO_BANK **bank); @@ -79,6 +79,7 @@ FMOD_RESULT F_API FMOD_Studio_System_ResetBufferUsage(FMOD_STUDIO_SYSTEM *system FMOD_RESULT F_API FMOD_Studio_System_SetCallback(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_SYSTEM_CALLBACK callback, FMOD_STUDIO_SYSTEM_CALLBACK_TYPE callbackmask); FMOD_RESULT F_API FMOD_Studio_System_SetUserData(FMOD_STUDIO_SYSTEM *system, void *userdata); FMOD_RESULT F_API FMOD_Studio_System_GetUserData(FMOD_STUDIO_SYSTEM *system, void **userdata); +FMOD_RESULT F_API FMOD_Studio_System_GetMemoryUsage(FMOD_STUDIO_SYSTEM *system, FMOD_STUDIO_MEMORY_USAGE *memoryusage); /* EventDescription @@ -149,6 +150,8 @@ FMOD_RESULT F_API FMOD_Studio_EventInstance_TriggerCue(FMOD_STUDIO_EVENTINSTANCE FMOD_RESULT F_API FMOD_Studio_EventInstance_SetCallback(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_EVENT_CALLBACK callback, FMOD_STUDIO_EVENT_CALLBACK_TYPE callbackmask); FMOD_RESULT F_API FMOD_Studio_EventInstance_GetUserData(FMOD_STUDIO_EVENTINSTANCE *eventinstance, void **userdata); FMOD_RESULT F_API FMOD_Studio_EventInstance_SetUserData(FMOD_STUDIO_EVENTINSTANCE *eventinstance, void *userdata); +FMOD_RESULT F_API FMOD_Studio_EventInstance_GetCPUUsage(FMOD_STUDIO_EVENTINSTANCE *eventinstance, unsigned int *exclusive, unsigned int *inclusive); +FMOD_RESULT F_API FMOD_Studio_EventInstance_GetMemoryUsage(FMOD_STUDIO_EVENTINSTANCE *eventinstance, FMOD_STUDIO_MEMORY_USAGE *memoryusage); /* Bus @@ -166,6 +169,8 @@ FMOD_RESULT F_API FMOD_Studio_Bus_StopAllEvents(FMOD_STUDIO_BUS *bus, FMOD_STUDI FMOD_RESULT F_API FMOD_Studio_Bus_LockChannelGroup(FMOD_STUDIO_BUS *bus); FMOD_RESULT F_API FMOD_Studio_Bus_UnlockChannelGroup(FMOD_STUDIO_BUS *bus); FMOD_RESULT F_API FMOD_Studio_Bus_GetChannelGroup(FMOD_STUDIO_BUS *bus, FMOD_CHANNELGROUP **group); +FMOD_RESULT F_API FMOD_Studio_Bus_GetCPUUsage(FMOD_STUDIO_BUS *bus, unsigned int *exclusive, unsigned int *inclusive); +FMOD_RESULT F_API FMOD_Studio_Bus_GetMemoryUsage(FMOD_STUDIO_BUS *bus, FMOD_STUDIO_MEMORY_USAGE *memoryusage); /* VCA diff --git a/bridge/include/fmod_studio.hpp b/bridge/include/fmod_studio.hpp index d14a2d1..0dfed93 100644 --- a/bridge/include/fmod_studio.hpp +++ b/bridge/include/fmod_studio.hpp @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Studio API - C++ header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* Use this header in conjunction with fmod_studio_common.h (which contains all the */ /* constants / callbacks) to develop using the C++ language. */ @@ -85,8 +85,8 @@ namespace Studio // Listener control FMOD_RESULT F_API getNumListeners(int *numlisteners); FMOD_RESULT F_API setNumListeners(int numlisteners); - FMOD_RESULT F_API getListenerAttributes(int listener, FMOD_3D_ATTRIBUTES *attributes) const; - FMOD_RESULT F_API setListenerAttributes(int listener, const FMOD_3D_ATTRIBUTES *attributes); + FMOD_RESULT F_API getListenerAttributes(int listener, FMOD_3D_ATTRIBUTES *attributes, FMOD_VECTOR *attenuationposition = 0) const; + FMOD_RESULT F_API setListenerAttributes(int listener, const FMOD_3D_ATTRIBUTES *attributes, const FMOD_VECTOR *attenuationposition = 0); FMOD_RESULT F_API getListenerWeight(int listener, float *weight); FMOD_RESULT F_API setListenerWeight(int listener, float weight); @@ -97,7 +97,6 @@ namespace Studio FMOD_RESULT F_API unloadAll(); // General functionality - FMOD_RESULT F_API getCPUUsage(FMOD_STUDIO_CPU_USAGE *usage) const; FMOD_RESULT F_API getBufferUsage(FMOD_STUDIO_BUFFER_USAGE *usage) const; FMOD_RESULT F_API resetBufferUsage(); FMOD_RESULT F_API registerPlugin(const FMOD_DSP_DESCRIPTION *description); @@ -119,6 +118,9 @@ namespace Studio FMOD_RESULT F_API getUserData(void **userdata) const; FMOD_RESULT F_API setUserData(void *userdata); + // Monitoring + FMOD_RESULT F_API getCPUUsage(FMOD_STUDIO_CPU_USAGE *usage) const; + FMOD_RESULT F_API getMemoryUsage(FMOD_STUDIO_MEMORY_USAGE *memoryusage) const; }; class EventDescription @@ -231,6 +233,10 @@ namespace Studio FMOD_RESULT F_API triggerCue(); + // Monitoring + FMOD_RESULT F_API getCPUUsage(unsigned int *exclusive, unsigned int *inclusive) const; + FMOD_RESULT F_API getMemoryUsage(FMOD_STUDIO_MEMORY_USAGE *memoryusage) const; + // Callbacks FMOD_RESULT F_API setCallback(FMOD_STUDIO_EVENT_CALLBACK callback, FMOD_STUDIO_EVENT_CALLBACK_TYPE callbackmask = FMOD_STUDIO_EVENT_CALLBACK_ALL); FMOD_RESULT F_API getUserData(void **userdata) const; @@ -268,6 +274,10 @@ namespace Studio FMOD_RESULT F_API lockChannelGroup(); FMOD_RESULT F_API unlockChannelGroup(); FMOD_RESULT F_API getChannelGroup(FMOD::ChannelGroup **group) const; + + // Monitoring + FMOD_RESULT F_API getCPUUsage(unsigned int *exclusive, unsigned int *inclusive) const; + FMOD_RESULT F_API getMemoryUsage(FMOD_STUDIO_MEMORY_USAGE *memoryusage) const; }; class VCA diff --git a/bridge/include/fmod_studio_common.h b/bridge/include/fmod_studio_common.h index 1928d71..0d94902 100644 --- a/bridge/include/fmod_studio_common.h +++ b/bridge/include/fmod_studio_common.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Studio API - Common C/C++ header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2019. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2020. */ /* */ /* This header defines common enumerations, structs and callbacks that are shared between */ /* the C and C++ interfaces. */ @@ -36,6 +36,7 @@ typedef unsigned int FMOD_STUDIO_INITFLAGS; #define FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE 0x00000004 #define FMOD_STUDIO_INIT_DEFERRED_CALLBACKS 0x00000008 #define FMOD_STUDIO_INIT_LOAD_FROM_UPDATE 0x00000010 +#define FMOD_STUDIO_INIT_MEMORY_TRACKING 0x00000020 typedef unsigned int FMOD_STUDIO_PARAMETER_FLAGS; #define FMOD_STUDIO_PARAMETER_READONLY 0x00000001 @@ -66,6 +67,7 @@ typedef unsigned int FMOD_STUDIO_EVENT_CALLBACK_TYPE; #define FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED 0x00004000 #define FMOD_STUDIO_EVENT_CALLBACK_REAL_TO_VIRTUAL 0x00008000 #define FMOD_STUDIO_EVENT_CALLBACK_VIRTUAL_TO_REAL 0x00010000 +#define FMOD_STUDIO_EVENT_CALLBACK_START_EVENT_COMMAND 0x00020000 #define FMOD_STUDIO_EVENT_CALLBACK_ALL 0xFFFFFFFF typedef unsigned int FMOD_STUDIO_LOAD_BANK_FLAGS; @@ -114,6 +116,7 @@ typedef enum FMOD_STUDIO_PARAMETER_TYPE FMOD_STUDIO_PARAMETER_AUTOMATIC_ELEVATION, FMOD_STUDIO_PARAMETER_AUTOMATIC_LISTENER_ORIENTATION, FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED, + FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED_ABSOLUTE, FMOD_STUDIO_PARAMETER_MAX, FMOD_STUDIO_PARAMETER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ @@ -136,6 +139,7 @@ typedef enum FMOD_STUDIO_EVENT_PROPERTY FMOD_STUDIO_EVENT_PROPERTY_SCHEDULE_LOOKAHEAD, FMOD_STUDIO_EVENT_PROPERTY_MINIMUM_DISTANCE, FMOD_STUDIO_EVENT_PROPERTY_MAXIMUM_DISTANCE, + FMOD_STUDIO_EVENT_PROPERTY_COOLDOWN, FMOD_STUDIO_EVENT_PROPERTY_MAX, FMOD_STUDIO_EVENT_PROPERTY_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ @@ -304,6 +308,13 @@ typedef struct FMOD_STUDIO_COMMAND_INFO unsigned int outputhandle; } FMOD_STUDIO_COMMAND_INFO; +typedef struct FMOD_STUDIO_MEMORY_USAGE +{ + int exclusive; + int inclusive; + int sampledata; +} FMOD_STUDIO_MEMORY_USAGE; + /* FMOD Studio callbacks. */ diff --git a/bridge/src/fmod_generated.c b/bridge/src/fmod_generated.c index 3614c4f..4875542 100644 --- a/bridge/src/fmod_generated.c +++ b/bridge/src/fmod_generated.c @@ -62,6 +62,9 @@ inline static void _FMODBridge_push_ptr_FMOD_VECTOR(lua_State *L, const FMOD_VEC } +#define FMODBridge_push_FMOD_THREAD_TYPE(L, x) lua_pushnumber(L, (lua_Number)(x)) +#define FMODBridge_check_FMOD_THREAD_TYPE(L, index) ((FMOD_THREAD_TYPE)luaL_checknumber(L, index)) + #define FMODBridge_push_FMOD_RESULT(L, x) lua_pushnumber(L, (lua_Number)(x)) #define FMODBridge_check_FMOD_RESULT(L, index) ((FMOD_RESULT)luaL_checknumber(L, index)) @@ -433,6 +436,7 @@ static int FMODBridge_registry_FMOD_STUDIO_BUFFER_INFO = LUA_REFNIL; static int FMODBridge_registry_FMOD_STUDIO_BUFFER_USAGE = LUA_REFNIL; static int FMODBridge_registry_FMOD_STUDIO_SOUND_INFO = LUA_REFNIL; static int FMODBridge_registry_FMOD_STUDIO_COMMAND_INFO = LUA_REFNIL; +static int FMODBridge_registry_FMOD_STUDIO_MEMORY_USAGE = LUA_REFNIL; /* 64-bit values */ @@ -587,6 +591,9 @@ declarePropertyGetterPtr(FMOD_VECTOR, FMOD_VECTOR); declarePropertySetter(FMOD_VECTOR, FMOD_VECTOR); +#define FMODBridge_propertyGet_FMOD_THREAD_TYPE FMODBridge_propertyGet_int +#define FMODBridge_propertySet_FMOD_THREAD_TYPE FMODBridge_propertySet_int + #define FMODBridge_propertyGet_FMOD_RESULT FMODBridge_propertyGet_int #define FMODBridge_propertySet_FMOD_RESULT FMODBridge_propertySet_int @@ -1722,6 +1729,20 @@ declarePropertyGetterPtr(FMOD_STUDIO_COMMAND_INFO, FMOD_STUDIO_COMMAND_INFO); declarePropertySetterPtr(FMOD_STUDIO_COMMAND_INFO, FMOD_STUDIO_COMMAND_INFO); #endif +#ifndef FMODBridge_push_ptr_FMOD_STUDIO_MEMORY_USAGE +#define FMODBridge_push_ptr_FMOD_STUDIO_MEMORY_USAGE(L, structData) ((FMOD_STUDIO_MEMORY_USAGE*)pushStruct(L, structData, sizeof(FMOD_STUDIO_MEMORY_USAGE), FMODBridge_registry_FMOD_STUDIO_MEMORY_USAGE)) +#endif +#ifndef FMODBridge_check_ptr_FMOD_STUDIO_MEMORY_USAGE +#define FMODBridge_check_ptr_FMOD_STUDIO_MEMORY_USAGE(L, index) ((FMOD_STUDIO_MEMORY_USAGE*)checkStruct(L, index, FMODBridge_registry_FMOD_STUDIO_MEMORY_USAGE, "FMOD_STUDIO_MEMORY_USAGE")) +#endif +#ifdef FMODBridge_propertyOverride_FMOD_STUDIO_MEMORY_USAGE +FMODBridge_propertyOverride_FMOD_STUDIO_MEMORY_USAGE +#else +declarePropertyGetter(ptr_FMOD_STUDIO_MEMORY_USAGE, FMOD_STUDIO_MEMORY_USAGE*); +declarePropertyGetterPtr(FMOD_STUDIO_MEMORY_USAGE, FMOD_STUDIO_MEMORY_USAGE); +declarePropertySetterPtr(FMOD_STUDIO_MEMORY_USAGE, FMOD_STUDIO_MEMORY_USAGE); +#endif + static int structConstructor(lua_State *L) { int registryIndex = (int)lua_tonumber(L, lua_upvalueindex(1)); @@ -1822,8 +1843,13 @@ static int _FMODBridge_func_FMOD_Studio_System_SetListenerAttributes(lua_State * FMOD_STUDIO_SYSTEM* system = FMODBridge_check_ptr_FMOD_STUDIO_SYSTEM(L, 1); int index = FMODBridge_check_int(L, 2); FMOD_3D_ATTRIBUTES* attributes = FMODBridge_check_ptr_FMOD_3D_ATTRIBUTES(L, 3); - ensure(ST, FMOD_Studio_System_SetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, FMOD_3D_ATTRIBUTES*); - errCheck(FMOD_Studio_System_SetListenerAttributes(system, index, attributes)); + FMOD_VECTOR attenuationposition; + int hasAttenuationPosition = !lua_isnoneornil(L, 4); + if (hasAttenuationPosition) { + attenuationposition = FMODBridge_check_FMOD_VECTOR(L, 4); + } + ensure(ST, FMOD_Studio_System_SetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, const FMOD_3D_ATTRIBUTES*, const FMOD_VECTOR*); + errCheck(FMOD_Studio_System_SetListenerAttributes(system, index, attributes, hasAttenuationPosition ? &attenuationposition : NULL)); return 0; } @@ -2126,6 +2152,21 @@ static int _FMODBridge_func_FMOD_File_GetDiskBusy(lua_State *L) { #endif +/* FMOD_Thread_SetAttributes(input FMOD_THREAD_TYPE type, input FMOD_THREAD_AFFINITY affinity, input FMOD_THREAD_PRIORITY priority, input FMOD_THREAD_STACK_SIZE stacksize, ) */ +#ifndef FMODBridge_func_FMOD_Thread_SetAttributes +#define FMODBridge_func_FMOD_Thread_SetAttributes _FMODBridge_func_FMOD_Thread_SetAttributes +static int _FMODBridge_func_FMOD_Thread_SetAttributes(lua_State *L) { + FMOD_THREAD_TYPE type = FMODBridge_check_FMOD_THREAD_TYPE(L, 1); + FMOD_THREAD_AFFINITY affinity = FMODBridge_check_unsigned_long_long(L, 2); + FMOD_THREAD_PRIORITY priority = FMODBridge_check_int(L, 3); + FMOD_THREAD_STACK_SIZE stacksize = FMODBridge_check_unsigned_int(L, 4); + ensure(LL, FMOD_Thread_SetAttributes, FMOD_RESULT, FMOD_THREAD_TYPE, FMOD_THREAD_AFFINITY, FMOD_THREAD_PRIORITY, FMOD_THREAD_STACK_SIZE); + errCheck(FMOD_Thread_SetAttributes(type, affinity, priority, stacksize)); + return 0; +} +#endif + + /* FMOD_System_Create(output FMOD_SYSTEM** system, ) */ #ifndef FMODBridge_func_FMOD_System_Create #define FMODBridge_func_FMOD_System_Create _FMODBridge_func_FMOD_System_Create @@ -7450,32 +7491,34 @@ static int _FMODBridge_func_FMOD_Studio_System_SetNumListeners(lua_State *L) { #endif -/* FMOD_Studio_System_GetListenerAttributes(input FMOD_STUDIO_SYSTEM* system, input int index, output_ptr FMOD_3D_ATTRIBUTES* attributes, ) */ +/* FMOD_Studio_System_GetListenerAttributes(input FMOD_STUDIO_SYSTEM* system, input int index, output_ptr FMOD_3D_ATTRIBUTES* attributes, output FMOD_VECTOR* attenuationposition, ) */ #ifndef FMODBridge_func_FMOD_Studio_System_GetListenerAttributes #define FMODBridge_func_FMOD_Studio_System_GetListenerAttributes _FMODBridge_func_FMOD_Studio_System_GetListenerAttributes static int _FMODBridge_func_FMOD_Studio_System_GetListenerAttributes(lua_State *L) { FMOD_STUDIO_SYSTEM* system = FMODBridge_check_ptr_FMOD_STUDIO_SYSTEM(L, 1); int index = FMODBridge_check_int(L, 2); FMOD_3D_ATTRIBUTES* attributes = FMODBridge_push_ptr_FMOD_3D_ATTRIBUTES(L, NULL); - ensure(ST, FMOD_Studio_System_GetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, FMOD_3D_ATTRIBUTES*); - errCheck(FMOD_Studio_System_GetListenerAttributes(system, index, attributes)); + FMOD_VECTOR attenuationposition; + ensure(ST, FMOD_Studio_System_GetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, FMOD_3D_ATTRIBUTES*, FMOD_VECTOR*); + errCheck(FMOD_Studio_System_GetListenerAttributes(system, index, attributes, &attenuationposition)); lua_pushvalue(L, -1); - return 1; + FMODBridge_push_FMOD_VECTOR(L, attenuationposition); + return 2; } #endif -/* FMOD_Studio_System_SetListenerAttributes(input FMOD_STUDIO_SYSTEM* system, input int index, output_ptr FMOD_3D_ATTRIBUTES* attributes, ) */ +/* FMOD_Studio_System_SetListenerAttributes(input FMOD_STUDIO_SYSTEM* system, input int index, input const FMOD_3D_ATTRIBUTES* attributes, input_ptr const FMOD_VECTOR* attenuationposition, ) */ #ifndef FMODBridge_func_FMOD_Studio_System_SetListenerAttributes #define FMODBridge_func_FMOD_Studio_System_SetListenerAttributes _FMODBridge_func_FMOD_Studio_System_SetListenerAttributes static int _FMODBridge_func_FMOD_Studio_System_SetListenerAttributes(lua_State *L) { FMOD_STUDIO_SYSTEM* system = FMODBridge_check_ptr_FMOD_STUDIO_SYSTEM(L, 1); int index = FMODBridge_check_int(L, 2); - FMOD_3D_ATTRIBUTES* attributes = FMODBridge_push_ptr_FMOD_3D_ATTRIBUTES(L, NULL); - ensure(ST, FMOD_Studio_System_SetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, FMOD_3D_ATTRIBUTES*); - errCheck(FMOD_Studio_System_SetListenerAttributes(system, index, attributes)); - lua_pushvalue(L, -1); - return 1; + const FMOD_3D_ATTRIBUTES* attributes = FMODBridge_check_ptr_FMOD_3D_ATTRIBUTES(L, 3); + const FMOD_VECTOR attenuationposition = FMODBridge_check_FMOD_VECTOR(L, 4); + ensure(ST, FMOD_Studio_System_SetListenerAttributes, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, int, const FMOD_3D_ATTRIBUTES*, const FMOD_VECTOR*); + errCheck(FMOD_Studio_System_SetListenerAttributes(system, index, attributes, &attenuationposition)); + return 0; } #endif @@ -7774,6 +7817,20 @@ static int _FMODBridge_func_FMOD_Studio_System_ResetBufferUsage(lua_State *L) { /* FMOD_Studio_System_GetUserData(input FMOD_STUDIO_SYSTEM* system, unknown void** userdata, ) */ +/* FMOD_Studio_System_GetMemoryUsage(input FMOD_STUDIO_SYSTEM* system, output_ptr FMOD_STUDIO_MEMORY_USAGE* memoryusage, ) */ +#ifndef FMODBridge_func_FMOD_Studio_System_GetMemoryUsage +#define FMODBridge_func_FMOD_Studio_System_GetMemoryUsage _FMODBridge_func_FMOD_Studio_System_GetMemoryUsage +static int _FMODBridge_func_FMOD_Studio_System_GetMemoryUsage(lua_State *L) { + FMOD_STUDIO_SYSTEM* system = FMODBridge_check_ptr_FMOD_STUDIO_SYSTEM(L, 1); + FMOD_STUDIO_MEMORY_USAGE* memoryusage = FMODBridge_push_ptr_FMOD_STUDIO_MEMORY_USAGE(L, NULL); + ensure(ST, FMOD_Studio_System_GetMemoryUsage, FMOD_RESULT, FMOD_STUDIO_SYSTEM*, FMOD_STUDIO_MEMORY_USAGE*); + errCheck(FMOD_Studio_System_GetMemoryUsage(system, memoryusage)); + lua_pushvalue(L, -1); + return 1; +} +#endif + + /* FMOD_Studio_EventDescription_IsValid(input FMOD_STUDIO_EVENTDESCRIPTION* eventdescription, ) */ #ifndef FMODBridge_func_FMOD_Studio_EventDescription_IsValid #define FMODBridge_func_FMOD_Studio_EventDescription_IsValid _FMODBridge_func_FMOD_Studio_EventDescription_IsValid @@ -8574,6 +8631,36 @@ static int _FMODBridge_func_FMOD_Studio_EventInstance_TriggerCue(lua_State *L) { /* FMOD_Studio_EventInstance_SetUserData(input FMOD_STUDIO_EVENTINSTANCE* eventinstance, unknown void* userdata, ) */ +/* FMOD_Studio_EventInstance_GetCPUUsage(input FMOD_STUDIO_EVENTINSTANCE* eventinstance, output unsigned int* exclusive, output unsigned int* inclusive, ) */ +#ifndef FMODBridge_func_FMOD_Studio_EventInstance_GetCPUUsage +#define FMODBridge_func_FMOD_Studio_EventInstance_GetCPUUsage _FMODBridge_func_FMOD_Studio_EventInstance_GetCPUUsage +static int _FMODBridge_func_FMOD_Studio_EventInstance_GetCPUUsage(lua_State *L) { + FMOD_STUDIO_EVENTINSTANCE* eventinstance = FMODBridge_check_ptr_FMOD_STUDIO_EVENTINSTANCE(L, 1); + unsigned int exclusive; + unsigned int inclusive; + ensure(ST, FMOD_Studio_EventInstance_GetCPUUsage, FMOD_RESULT, FMOD_STUDIO_EVENTINSTANCE*, unsigned int*, unsigned int*); + errCheck(FMOD_Studio_EventInstance_GetCPUUsage(eventinstance, &exclusive, &inclusive)); + FMODBridge_push_unsigned_int(L, exclusive); + FMODBridge_push_unsigned_int(L, inclusive); + return 2; +} +#endif + + +/* FMOD_Studio_EventInstance_GetMemoryUsage(input FMOD_STUDIO_EVENTINSTANCE* eventinstance, output_ptr FMOD_STUDIO_MEMORY_USAGE* memoryusage, ) */ +#ifndef FMODBridge_func_FMOD_Studio_EventInstance_GetMemoryUsage +#define FMODBridge_func_FMOD_Studio_EventInstance_GetMemoryUsage _FMODBridge_func_FMOD_Studio_EventInstance_GetMemoryUsage +static int _FMODBridge_func_FMOD_Studio_EventInstance_GetMemoryUsage(lua_State *L) { + FMOD_STUDIO_EVENTINSTANCE* eventinstance = FMODBridge_check_ptr_FMOD_STUDIO_EVENTINSTANCE(L, 1); + FMOD_STUDIO_MEMORY_USAGE* memoryusage = FMODBridge_push_ptr_FMOD_STUDIO_MEMORY_USAGE(L, NULL); + ensure(ST, FMOD_Studio_EventInstance_GetMemoryUsage, FMOD_RESULT, FMOD_STUDIO_EVENTINSTANCE*, FMOD_STUDIO_MEMORY_USAGE*); + errCheck(FMOD_Studio_EventInstance_GetMemoryUsage(eventinstance, memoryusage)); + lua_pushvalue(L, -1); + return 1; +} +#endif + + /* FMOD_Studio_Bus_IsValid(input FMOD_STUDIO_BUS* bus, ) */ #ifndef FMODBridge_func_FMOD_Studio_Bus_IsValid #define FMODBridge_func_FMOD_Studio_Bus_IsValid _FMODBridge_func_FMOD_Studio_Bus_IsValid @@ -8737,6 +8824,36 @@ static int _FMODBridge_func_FMOD_Studio_Bus_GetChannelGroup(lua_State *L) { #endif +/* FMOD_Studio_Bus_GetCPUUsage(input FMOD_STUDIO_BUS* bus, output unsigned int* exclusive, output unsigned int* inclusive, ) */ +#ifndef FMODBridge_func_FMOD_Studio_Bus_GetCPUUsage +#define FMODBridge_func_FMOD_Studio_Bus_GetCPUUsage _FMODBridge_func_FMOD_Studio_Bus_GetCPUUsage +static int _FMODBridge_func_FMOD_Studio_Bus_GetCPUUsage(lua_State *L) { + FMOD_STUDIO_BUS* bus = FMODBridge_check_ptr_FMOD_STUDIO_BUS(L, 1); + unsigned int exclusive; + unsigned int inclusive; + ensure(ST, FMOD_Studio_Bus_GetCPUUsage, FMOD_RESULT, FMOD_STUDIO_BUS*, unsigned int*, unsigned int*); + errCheck(FMOD_Studio_Bus_GetCPUUsage(bus, &exclusive, &inclusive)); + FMODBridge_push_unsigned_int(L, exclusive); + FMODBridge_push_unsigned_int(L, inclusive); + return 2; +} +#endif + + +/* FMOD_Studio_Bus_GetMemoryUsage(input FMOD_STUDIO_BUS* bus, output_ptr FMOD_STUDIO_MEMORY_USAGE* memoryusage, ) */ +#ifndef FMODBridge_func_FMOD_Studio_Bus_GetMemoryUsage +#define FMODBridge_func_FMOD_Studio_Bus_GetMemoryUsage _FMODBridge_func_FMOD_Studio_Bus_GetMemoryUsage +static int _FMODBridge_func_FMOD_Studio_Bus_GetMemoryUsage(lua_State *L) { + FMOD_STUDIO_BUS* bus = FMODBridge_check_ptr_FMOD_STUDIO_BUS(L, 1); + FMOD_STUDIO_MEMORY_USAGE* memoryusage = FMODBridge_push_ptr_FMOD_STUDIO_MEMORY_USAGE(L, NULL); + ensure(ST, FMOD_Studio_Bus_GetMemoryUsage, FMOD_RESULT, FMOD_STUDIO_BUS*, FMOD_STUDIO_MEMORY_USAGE*); + errCheck(FMOD_Studio_Bus_GetMemoryUsage(bus, memoryusage)); + lua_pushvalue(L, -1); + return 1; +} +#endif + + /* FMOD_Studio_VCA_IsValid(input FMOD_STUDIO_VCA* vca, ) */ #ifndef FMODBridge_func_FMOD_Studio_VCA_IsValid #define FMODBridge_func_FMOD_Studio_VCA_IsValid _FMODBridge_func_FMOD_Studio_VCA_IsValid @@ -9280,6 +9397,18 @@ void FMODBridge_register(lua_State *L) { lua_pushnumber(L, (lua_Number)CONCAT(FMOD_, x)); \ lua_rawset(L, -4) + addEnum(THREAD_TYPE_MIXER); + addEnum(THREAD_TYPE_FEEDER); + addEnum(THREAD_TYPE_STREAM); + addEnum(THREAD_TYPE_FILE); + addEnum(THREAD_TYPE_NONBLOCKING); + addEnum(THREAD_TYPE_RECORD); + addEnum(THREAD_TYPE_GEOMETRY); + addEnum(THREAD_TYPE_PROFILER); + addEnum(THREAD_TYPE_STUDIO_UPDATE); + addEnum(THREAD_TYPE_STUDIO_LOAD_BANK); + addEnum(THREAD_TYPE_STUDIO_LOAD_SAMPLE); + addEnum(THREAD_TYPE_MAX); addEnum(OK); addEnum(ERR_BADCOMMAND); addEnum(ERR_CHANNEL_ALLOC); @@ -9383,6 +9512,7 @@ void FMODBridge_register(lua_State *L) { addEnum(OUTPUTTYPE_WEBAUDIO); addEnum(OUTPUTTYPE_NNAUDIO); addEnum(OUTPUTTYPE_WINSONIC); + addEnum(OUTPUTTYPE_AAUDIO); addEnum(OUTPUTTYPE_MAX); addEnum(DEBUG_MODE_TTY); addEnum(DEBUG_MODE_FILE); @@ -9397,6 +9527,7 @@ void FMODBridge_register(lua_State *L) { addEnum(SPEAKERMODE_7POINT1); addEnum(SPEAKERMODE_7POINT1POINT4); addEnum(SPEAKERMODE_MAX); + addEnum(SPEAKER_NONE); addEnum(SPEAKER_FRONT_LEFT); addEnum(SPEAKER_FRONT_RIGHT); addEnum(SPEAKER_FRONT_CENTER); @@ -9445,6 +9576,7 @@ void FMODBridge_register(lua_State *L) { addEnum(SOUND_TYPE_MEDIA_FOUNDATION); addEnum(SOUND_TYPE_MEDIACODEC); addEnum(SOUND_TYPE_FADPCM); + addEnum(SOUND_TYPE_OPUS); addEnum(SOUND_TYPE_MAX); addEnum(SOUND_FORMAT_NONE); addEnum(SOUND_FORMAT_PCM8); @@ -9872,6 +10004,7 @@ void FMODBridge_register(lua_State *L) { addEnum(STUDIO_PARAMETER_AUTOMATIC_ELEVATION); addEnum(STUDIO_PARAMETER_AUTOMATIC_LISTENER_ORIENTATION); addEnum(STUDIO_PARAMETER_AUTOMATIC_SPEED); + addEnum(STUDIO_PARAMETER_AUTOMATIC_SPEED_ABSOLUTE); addEnum(STUDIO_PARAMETER_MAX); addEnum(STUDIO_USER_PROPERTY_TYPE_INTEGER); addEnum(STUDIO_USER_PROPERTY_TYPE_BOOLEAN); @@ -9882,6 +10015,7 @@ void FMODBridge_register(lua_State *L) { addEnum(STUDIO_EVENT_PROPERTY_SCHEDULE_LOOKAHEAD); addEnum(STUDIO_EVENT_PROPERTY_MINIMUM_DISTANCE); addEnum(STUDIO_EVENT_PROPERTY_MAXIMUM_DISTANCE); + addEnum(STUDIO_EVENT_PROPERTY_COOLDOWN); addEnum(STUDIO_EVENT_PROPERTY_MAX); addEnum(STUDIO_PLAYBACK_PLAYING); addEnum(STUDIO_PLAYBACK_SUSTAINING); @@ -9931,6 +10065,7 @@ void FMODBridge_register(lua_State *L) { addEnum(INIT_PREFER_DOLBY_DOWNMIX); addEnum(INIT_THREAD_UNSAFE); addEnum(INIT_PROFILE_METER_ALL); + addEnum(INIT_MEMORY_TRACKING); addEnum(DRIVER_STATE_CONNECTED); addEnum(DRIVER_STATE_DEFAULT); addEnum(TIMEUNIT_MS); @@ -10002,6 +10137,70 @@ void FMODBridge_register(lua_State *L) { addEnum(CHANNELMASK_5POINT1_REARS); addEnum(CHANNELMASK_7POINT0); addEnum(CHANNELMASK_7POINT1); + addEnum(THREAD_PRIORITY_PLATFORM_MIN); + addEnum(THREAD_PRIORITY_PLATFORM_MAX); + addEnum(THREAD_PRIORITY_DEFAULT); + addEnum(THREAD_PRIORITY_LOW); + addEnum(THREAD_PRIORITY_MEDIUM); + addEnum(THREAD_PRIORITY_HIGH); + addEnum(THREAD_PRIORITY_VERY_HIGH); + addEnum(THREAD_PRIORITY_EXTREME); + addEnum(THREAD_PRIORITY_CRITICAL); + addEnum(THREAD_PRIORITY_MIXER); + addEnum(THREAD_PRIORITY_FEEDER); + addEnum(THREAD_PRIORITY_STREAM); + addEnum(THREAD_PRIORITY_FILE); + addEnum(THREAD_PRIORITY_NONBLOCKING); + addEnum(THREAD_PRIORITY_RECORD); + addEnum(THREAD_PRIORITY_GEOMETRY); + addEnum(THREAD_PRIORITY_PROFILER); + addEnum(THREAD_PRIORITY_STUDIO_UPDATE); + addEnum(THREAD_PRIORITY_STUDIO_LOAD_BANK); + addEnum(THREAD_PRIORITY_STUDIO_LOAD_SAMPLE); + addEnum(THREAD_STACK_SIZE_DEFAULT); + addEnum(THREAD_STACK_SIZE_MIXER); + addEnum(THREAD_STACK_SIZE_FEEDER); + addEnum(THREAD_STACK_SIZE_STREAM); + addEnum(THREAD_STACK_SIZE_FILE); + addEnum(THREAD_STACK_SIZE_NONBLOCKING); + addEnum(THREAD_STACK_SIZE_RECORD); + addEnum(THREAD_STACK_SIZE_GEOMETRY); + addEnum(THREAD_STACK_SIZE_PROFILER); + addEnum(THREAD_STACK_SIZE_STUDIO_UPDATE); + addEnum(THREAD_STACK_SIZE_STUDIO_LOAD_BANK); + addEnum(THREAD_STACK_SIZE_STUDIO_LOAD_SAMPLE); + addEnum(THREAD_AFFINITY_GROUP_DEFAULT); + addEnum(THREAD_AFFINITY_GROUP_A); + addEnum(THREAD_AFFINITY_GROUP_B); + addEnum(THREAD_AFFINITY_GROUP_C); + addEnum(THREAD_AFFINITY_MIXER); + addEnum(THREAD_AFFINITY_FEEDER); + addEnum(THREAD_AFFINITY_STREAM); + addEnum(THREAD_AFFINITY_FILE); + addEnum(THREAD_AFFINITY_NONBLOCKING); + addEnum(THREAD_AFFINITY_RECORD); + addEnum(THREAD_AFFINITY_GEOMETRY); + addEnum(THREAD_AFFINITY_PROFILER); + addEnum(THREAD_AFFINITY_STUDIO_UPDATE); + addEnum(THREAD_AFFINITY_STUDIO_LOAD_BANK); + addEnum(THREAD_AFFINITY_STUDIO_LOAD_SAMPLE); + addEnum(THREAD_AFFINITY_CORE_ALL); + addEnum(THREAD_AFFINITY_CORE_0); + addEnum(THREAD_AFFINITY_CORE_1); + addEnum(THREAD_AFFINITY_CORE_2); + addEnum(THREAD_AFFINITY_CORE_3); + addEnum(THREAD_AFFINITY_CORE_4); + addEnum(THREAD_AFFINITY_CORE_5); + addEnum(THREAD_AFFINITY_CORE_6); + addEnum(THREAD_AFFINITY_CORE_7); + addEnum(THREAD_AFFINITY_CORE_8); + addEnum(THREAD_AFFINITY_CORE_9); + addEnum(THREAD_AFFINITY_CORE_10); + addEnum(THREAD_AFFINITY_CORE_11); + addEnum(THREAD_AFFINITY_CORE_12); + addEnum(THREAD_AFFINITY_CORE_13); + addEnum(THREAD_AFFINITY_CORE_14); + addEnum(THREAD_AFFINITY_CORE_15); addEnum(MAX_CHANNEL_WIDTH); addEnum(MAX_SYSTEMS); addEnum(MAX_LISTENERS); @@ -10014,6 +10213,7 @@ void FMODBridge_register(lua_State *L) { addEnum(STUDIO_INIT_SYNCHRONOUS_UPDATE); addEnum(STUDIO_INIT_DEFERRED_CALLBACKS); addEnum(STUDIO_INIT_LOAD_FROM_UPDATE); + addEnum(STUDIO_INIT_MEMORY_TRACKING); addEnum(STUDIO_PARAMETER_READONLY); addEnum(STUDIO_PARAMETER_AUTOMATIC); addEnum(STUDIO_PARAMETER_GLOBAL); @@ -10038,6 +10238,7 @@ void FMODBridge_register(lua_State *L) { addEnum(STUDIO_EVENT_CALLBACK_SOUND_STOPPED); addEnum(STUDIO_EVENT_CALLBACK_REAL_TO_VIRTUAL); addEnum(STUDIO_EVENT_CALLBACK_VIRTUAL_TO_REAL); + addEnum(STUDIO_EVENT_CALLBACK_START_EVENT_COMMAND); addEnum(STUDIO_EVENT_CALLBACK_ALL); addEnum(STUDIO_LOAD_BANK_NORMAL); addEnum(STUDIO_LOAD_BANK_NONBLOCKING); @@ -11831,21 +12032,9 @@ void FMODBridge_register(lua_State *L) { /* int DSPBufferPoolSize */ addPropertyGetter(FMOD_ADVANCEDSETTINGS, DSPBufferPoolSize, int); addPropertySetter(FMOD_ADVANCEDSETTINGS, DSPBufferPoolSize, int); - /* unsigned int stackSizeStream */ - addPropertyGetter(FMOD_ADVANCEDSETTINGS, stackSizeStream, unsigned_int); - addPropertySetter(FMOD_ADVANCEDSETTINGS, stackSizeStream, unsigned_int); - /* unsigned int stackSizeNonBlocking */ - addPropertyGetter(FMOD_ADVANCEDSETTINGS, stackSizeNonBlocking, unsigned_int); - addPropertySetter(FMOD_ADVANCEDSETTINGS, stackSizeNonBlocking, unsigned_int); - /* unsigned int stackSizeMixer */ - addPropertyGetter(FMOD_ADVANCEDSETTINGS, stackSizeMixer, unsigned_int); - addPropertySetter(FMOD_ADVANCEDSETTINGS, stackSizeMixer, unsigned_int); /* FMOD_DSP_RESAMPLER resamplerMethod */ addPropertyGetter(FMOD_ADVANCEDSETTINGS, resamplerMethod, FMOD_DSP_RESAMPLER); addPropertySetter(FMOD_ADVANCEDSETTINGS, resamplerMethod, FMOD_DSP_RESAMPLER); - /* unsigned int commandQueueSize */ - addPropertyGetter(FMOD_ADVANCEDSETTINGS, commandQueueSize, unsigned_int); - addPropertySetter(FMOD_ADVANCEDSETTINGS, commandQueueSize, unsigned_int); /* unsigned int randomSeed */ addPropertyGetter(FMOD_ADVANCEDSETTINGS, randomSeed, unsigned_int); addPropertySetter(FMOD_ADVANCEDSETTINGS, randomSeed, unsigned_int); @@ -12475,9 +12664,9 @@ void FMODBridge_register(lua_State *L) { /* unsigned int version */ addPropertyGetter(FMOD_OUTPUT_DESCRIPTION, version, unsigned_int); addPropertySetter(FMOD_OUTPUT_DESCRIPTION, version, unsigned_int); - /* int polling */ - addPropertyGetter(FMOD_OUTPUT_DESCRIPTION, polling, int); - addPropertySetter(FMOD_OUTPUT_DESCRIPTION, polling, int); + /* FMOD_OUTPUT_METHOD method */ + addPropertyGetter(FMOD_OUTPUT_DESCRIPTION, method, unsigned_int); + addPropertySetter(FMOD_OUTPUT_DESCRIPTION, method, unsigned_int); /* FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK getnumdrivers */ /* FMOD_OUTPUT_GETDRIVERINFO_CALLBACK getdriverinfo */ /* FMOD_OUTPUT_INIT_CALLBACK init */ @@ -12711,6 +12900,10 @@ void FMODBridge_register(lua_State *L) { lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_System_GetUserData); lua_setfield(L, -4, "get_user_data"); #endif + #ifdef FMODBridge_func_FMOD_Studio_System_GetMemoryUsage + lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_System_GetMemoryUsage); + lua_setfield(L, -4, "get_memory_usage"); + #endif #ifdef FMODBridge_extras_FMOD_STUDIO_SYSTEM FMODBridge_extras_FMOD_STUDIO_SYSTEM #endif @@ -12972,6 +13165,14 @@ void FMODBridge_register(lua_State *L) { lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_EventInstance_SetUserData); lua_setfield(L, -4, "set_user_data"); #endif + #ifdef FMODBridge_func_FMOD_Studio_EventInstance_GetCPUUsage + lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_EventInstance_GetCPUUsage); + lua_setfield(L, -4, "get_cpu_usage"); + #endif + #ifdef FMODBridge_func_FMOD_Studio_EventInstance_GetMemoryUsage + lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_EventInstance_GetMemoryUsage); + lua_setfield(L, -4, "get_memory_usage"); + #endif #ifdef FMODBridge_extras_FMOD_STUDIO_EVENTINSTANCE FMODBridge_extras_FMOD_STUDIO_EVENTINSTANCE #endif @@ -13030,6 +13231,14 @@ void FMODBridge_register(lua_State *L) { lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_Bus_GetChannelGroup); lua_setfield(L, -4, "get_channel_group"); #endif + #ifdef FMODBridge_func_FMOD_Studio_Bus_GetCPUUsage + lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_Bus_GetCPUUsage); + lua_setfield(L, -4, "get_cpu_usage"); + #endif + #ifdef FMODBridge_func_FMOD_Studio_Bus_GetMemoryUsage + lua_pushcfunction(L, &FMODBridge_func_FMOD_Studio_Bus_GetMemoryUsage); + lua_setfield(L, -4, "get_memory_usage"); + #endif #ifdef FMODBridge_extras_FMOD_STUDIO_BUS FMODBridge_extras_FMOD_STUDIO_BUS #endif @@ -13488,6 +13697,22 @@ void FMODBridge_register(lua_State *L) { FMODBridge_extras_FMOD_STUDIO_COMMAND_INFO #endif endStruct(); + beginStruct(FMOD_STUDIO_MEMORY_USAGE); + addStructEquality(FMOD_STUDIO_MEMORY_USAGE); + addStructConstructor(FMOD_STUDIO_MEMORY_USAGE, "MEMORY_USAGE", -1); + /* int exclusive */ + addPropertyGetter(FMOD_STUDIO_MEMORY_USAGE, exclusive, int); + addPropertySetter(FMOD_STUDIO_MEMORY_USAGE, exclusive, int); + /* int inclusive */ + addPropertyGetter(FMOD_STUDIO_MEMORY_USAGE, inclusive, int); + addPropertySetter(FMOD_STUDIO_MEMORY_USAGE, inclusive, int); + /* int sampledata */ + addPropertyGetter(FMOD_STUDIO_MEMORY_USAGE, sampledata, int); + addPropertySetter(FMOD_STUDIO_MEMORY_USAGE, sampledata, int); + #ifdef FMODBridge_extras_FMOD_STUDIO_MEMORY_USAGE + FMODBridge_extras_FMOD_STUDIO_MEMORY_USAGE + #endif + endStruct(); @@ -13516,6 +13741,11 @@ void FMODBridge_register(lua_State *L) { lua_setfield(L, -2 - 1, "file_get_disk_busy"); #endif + #ifdef FMODBridge_func_FMOD_Thread_SetAttributes + lua_pushcfunction(L, &FMODBridge_func_FMOD_Thread_SetAttributes); + lua_setfield(L, -2 - 1, "thread_set_attributes"); + #endif + #ifdef FMODBridge_func_FMOD_System_Create lua_pushcfunction(L, &FMODBridge_func_FMOD_System_Create); lua_setfield(L, -2 - 1, "system_create"); diff --git a/fmod/lib/android/fmod.jar b/fmod/lib/android/fmod.jar index 0c344e4..0c10b60 100644 Binary files a/fmod/lib/android/fmod.jar and b/fmod/lib/android/fmod.jar differ diff --git a/fmod/lib/android/fmodbridge.jar b/fmod/lib/android/fmodbridge.jar index fdcc3b4..0c7cfe4 100644 Binary files a/fmod/lib/android/fmodbridge.jar and b/fmod/lib/android/fmodbridge.jar differ diff --git a/fmod/lib/arm64-android/libfmodbridge.a b/fmod/lib/arm64-android/libfmodbridge.a index a6d3b8c..b536b2b 100644 Binary files a/fmod/lib/arm64-android/libfmodbridge.a and b/fmod/lib/arm64-android/libfmodbridge.a differ diff --git a/fmod/lib/armv7-android/libfmodbridge.a b/fmod/lib/armv7-android/libfmodbridge.a index 5aaca37..227070c 100644 Binary files a/fmod/lib/armv7-android/libfmodbridge.a and b/fmod/lib/armv7-android/libfmodbridge.a differ diff --git a/fmod/lib/ios/libfmod_iphoneos.a b/fmod/lib/ios/libfmod_iphoneos.a index ef08b16..5a3d0ae 100644 Binary files a/fmod/lib/ios/libfmod_iphoneos.a and b/fmod/lib/ios/libfmod_iphoneos.a differ diff --git a/fmod/lib/ios/libfmodbridge.a b/fmod/lib/ios/libfmodbridge.a index 433584a..1637ae7 100644 Binary files a/fmod/lib/ios/libfmodbridge.a and b/fmod/lib/ios/libfmodbridge.a differ diff --git a/fmod/lib/ios/libfmodstudio_iphoneos.a b/fmod/lib/ios/libfmodstudio_iphoneos.a index 9595504..ae63285 100644 Binary files a/fmod/lib/ios/libfmodstudio_iphoneos.a and b/fmod/lib/ios/libfmodstudio_iphoneos.a differ diff --git a/fmod/lib/web/libfmodbridge.a b/fmod/lib/web/libfmodbridge.a index 0b98009..91661a2 100644 Binary files a/fmod/lib/web/libfmodbridge.a and b/fmod/lib/web/libfmodbridge.a differ diff --git a/fmod/lib/web/libfmodstudio.a b/fmod/lib/web/libfmodstudio.a index 1260e47..7563593 100644 Binary files a/fmod/lib/web/libfmodstudio.a and b/fmod/lib/web/libfmodstudio.a differ diff --git a/fmod/lib/x86-win32/fmodbridge.lib b/fmod/lib/x86-win32/fmodbridge.lib index 3fc30d2..f475477 100644 Binary files a/fmod/lib/x86-win32/fmodbridge.lib and b/fmod/lib/x86-win32/fmodbridge.lib differ diff --git a/fmod/lib/x86_64-ios/libfmod_iphonesimulator.a b/fmod/lib/x86_64-ios/libfmod_iphonesimulator.a index c07ecb7..7585e78 100644 Binary files a/fmod/lib/x86_64-ios/libfmod_iphonesimulator.a and b/fmod/lib/x86_64-ios/libfmod_iphonesimulator.a differ diff --git a/fmod/lib/x86_64-ios/libfmodbridge_simulator.a b/fmod/lib/x86_64-ios/libfmodbridge_simulator.a index 922c2ad..cc76c65 100644 Binary files a/fmod/lib/x86_64-ios/libfmodbridge_simulator.a and b/fmod/lib/x86_64-ios/libfmodbridge_simulator.a differ diff --git a/fmod/lib/x86_64-ios/libfmodstudio_iphonesimulator.a b/fmod/lib/x86_64-ios/libfmodstudio_iphonesimulator.a index 71fde4d..c6117ac 100644 Binary files a/fmod/lib/x86_64-ios/libfmodstudio_iphonesimulator.a and b/fmod/lib/x86_64-ios/libfmodstudio_iphonesimulator.a differ diff --git a/fmod/lib/x86_64-linux/libfmodbridge.a b/fmod/lib/x86_64-linux/libfmodbridge.a index 3050d84..8574fd1 100755 Binary files a/fmod/lib/x86_64-linux/libfmodbridge.a and b/fmod/lib/x86_64-linux/libfmodbridge.a differ diff --git a/fmod/lib/x86_64-osx/libfmodbridge.a b/fmod/lib/x86_64-osx/libfmodbridge.a index 6bd9319..b10c05b 100644 Binary files a/fmod/lib/x86_64-osx/libfmodbridge.a and b/fmod/lib/x86_64-osx/libfmodbridge.a differ diff --git a/fmod/lib/x86_64-win32/fmodbridge.lib b/fmod/lib/x86_64-win32/fmodbridge.lib index 7995921..8d3408c 100644 Binary files a/fmod/lib/x86_64-win32/fmodbridge.lib and b/fmod/lib/x86_64-win32/fmodbridge.lib differ diff --git a/fmod/res/armv7-android/lib/arm64-v8a/libfmod.so b/fmod/res/armv7-android/lib/arm64-v8a/libfmod.so index ed99bb5..b79a61a 100644 Binary files a/fmod/res/armv7-android/lib/arm64-v8a/libfmod.so and b/fmod/res/armv7-android/lib/arm64-v8a/libfmod.so differ diff --git a/fmod/res/armv7-android/lib/arm64-v8a/libfmodstudio.so b/fmod/res/armv7-android/lib/arm64-v8a/libfmodstudio.so index a296178..9c6c63c 100644 Binary files a/fmod/res/armv7-android/lib/arm64-v8a/libfmodstudio.so and b/fmod/res/armv7-android/lib/arm64-v8a/libfmodstudio.so differ diff --git a/fmod/res/armv7-android/lib/armeabi-v7a/libfmod.so b/fmod/res/armv7-android/lib/armeabi-v7a/libfmod.so index 98ca525..ecbf3cc 100644 Binary files a/fmod/res/armv7-android/lib/armeabi-v7a/libfmod.so and b/fmod/res/armv7-android/lib/armeabi-v7a/libfmod.so differ diff --git a/fmod/res/armv7-android/lib/armeabi-v7a/libfmodstudio.so b/fmod/res/armv7-android/lib/armeabi-v7a/libfmodstudio.so index 32941bf..5634134 100644 Binary files a/fmod/res/armv7-android/lib/armeabi-v7a/libfmodstudio.so and b/fmod/res/armv7-android/lib/armeabi-v7a/libfmodstudio.so differ diff --git a/fmod/res/x86-win32/fmod.dll b/fmod/res/x86-win32/fmod.dll index 8882986..130aa09 100644 Binary files a/fmod/res/x86-win32/fmod.dll and b/fmod/res/x86-win32/fmod.dll differ diff --git a/fmod/res/x86-win32/fmodstudio.dll b/fmod/res/x86-win32/fmodstudio.dll index 757bea4..bee3d01 100644 Binary files a/fmod/res/x86-win32/fmodstudio.dll and b/fmod/res/x86-win32/fmodstudio.dll differ diff --git a/fmod/res/x86_64-linux/libfmod.so b/fmod/res/x86_64-linux/libfmod.so index ea807fc..1484842 100755 Binary files a/fmod/res/x86_64-linux/libfmod.so and b/fmod/res/x86_64-linux/libfmod.so differ diff --git a/fmod/res/x86_64-linux/libfmodstudio.so b/fmod/res/x86_64-linux/libfmodstudio.so index ec1ca42..c23d6d0 100755 Binary files a/fmod/res/x86_64-linux/libfmodstudio.so and b/fmod/res/x86_64-linux/libfmodstudio.so differ diff --git a/fmod/res/x86_64-osx/Contents/MacOS/libfmod.dylib b/fmod/res/x86_64-osx/Contents/MacOS/libfmod.dylib index e8e4016..003f69c 100644 Binary files a/fmod/res/x86_64-osx/Contents/MacOS/libfmod.dylib and b/fmod/res/x86_64-osx/Contents/MacOS/libfmod.dylib differ diff --git a/fmod/res/x86_64-osx/Contents/MacOS/libfmodstudio.dylib b/fmod/res/x86_64-osx/Contents/MacOS/libfmodstudio.dylib index a6dd96a..de9a44a 100644 Binary files a/fmod/res/x86_64-osx/Contents/MacOS/libfmodstudio.dylib and b/fmod/res/x86_64-osx/Contents/MacOS/libfmodstudio.dylib differ diff --git a/fmod/res/x86_64-win32/fmod.dll b/fmod/res/x86_64-win32/fmod.dll index 06de994..27ac12b 100644 Binary files a/fmod/res/x86_64-win32/fmod.dll and b/fmod/res/x86_64-win32/fmod.dll differ diff --git a/fmod/res/x86_64-win32/fmodstudio.dll b/fmod/res/x86_64-win32/fmodstudio.dll index 92d337c..e89e8a2 100644 Binary files a/fmod/res/x86_64-win32/fmodstudio.dll and b/fmod/res/x86_64-win32/fmodstudio.dll differ