diff --git a/engine/FMOD/inc/fmod.cs b/engine/FMOD/inc/fmod.cs index c2de18a..4ac3197 100644 --- a/engine/FMOD/inc/fmod.cs +++ b/engine/FMOD/inc/fmod.cs @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - C# wrapper. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* For more detail visit: */ /* https://fmod.com/resources/documentation-api?version=2.0&page=core-api.html */ @@ -19,7 +19,7 @@ namespace FMOD */ public partial class VERSION { - public const int number = 0x00020203; + public const int number = 0x00020206; #if !UNITY_2019_4_OR_NEWER public const string dll = "fmod"; #endif @@ -192,6 +192,7 @@ namespace FMOD NNAUDIO, WINSONIC, AAUDIO, + AUDIOWORKLET, MAX, } @@ -650,20 +651,20 @@ namespace FMOD public int numsubsounds; public IntPtr inclusionlist; public int inclusionlistnum; - public SOUND_PCMREAD_CALLBACK pcmreadcallback; - public SOUND_PCMSETPOS_CALLBACK pcmsetposcallback; - public SOUND_NONBLOCK_CALLBACK nonblockcallback; + public IntPtr pcmreadcallback_internal; + public IntPtr pcmsetposcallback_internal; + public IntPtr nonblockcallback_internal; public IntPtr dlsname; public IntPtr encryptionkey; public int maxpolyphony; public IntPtr userdata; public SOUND_TYPE suggestedsoundtype; - public FILE_OPEN_CALLBACK fileuseropen; - public FILE_CLOSE_CALLBACK fileuserclose; - public FILE_READ_CALLBACK fileuserread; - public FILE_SEEK_CALLBACK fileuserseek; - public FILE_ASYNCREAD_CALLBACK fileuserasyncread; - public FILE_ASYNCCANCEL_CALLBACK fileuserasynccancel; + public IntPtr fileuseropen_internal; + public IntPtr fileuserclose_internal; + public IntPtr fileuserread_internal; + public IntPtr fileuserseek_internal; + public IntPtr fileuserasyncread_internal; + public IntPtr fileuserasynccancel_internal; public IntPtr fileuserdata; public int filebuffersize; public CHANNELORDER channelorder; @@ -675,6 +676,53 @@ namespace FMOD public uint minmidigranularity; public int nonblockthreadid; public IntPtr fsbguid; + + public SOUND_PCMREAD_CALLBACK pcmreadcallback + { + set { pcmreadcallback_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return pcmreadcallback_internal == IntPtr.Zero ? null : (SOUND_PCMREAD_CALLBACK)Marshal.GetDelegateForFunctionPointer(pcmreadcallback_internal, typeof(SOUND_PCMREAD_CALLBACK)); } + } + public SOUND_PCMSETPOS_CALLBACK pcmsetposcallback + { + set { pcmsetposcallback_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return pcmsetposcallback_internal == IntPtr.Zero ? null : (SOUND_PCMSETPOS_CALLBACK)Marshal.GetDelegateForFunctionPointer(pcmsetposcallback_internal, typeof(SOUND_PCMSETPOS_CALLBACK)); } + } + public SOUND_NONBLOCK_CALLBACK nonblockcallback + { + set { nonblockcallback_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return nonblockcallback_internal == IntPtr.Zero ? null : (SOUND_NONBLOCK_CALLBACK)Marshal.GetDelegateForFunctionPointer(nonblockcallback_internal, typeof(SOUND_NONBLOCK_CALLBACK)); } + } + public FILE_OPEN_CALLBACK fileuseropen + { + set { fileuseropen_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return fileuseropen_internal == IntPtr.Zero ? null : (FILE_OPEN_CALLBACK)Marshal.GetDelegateForFunctionPointer(fileuseropen_internal, typeof(FILE_OPEN_CALLBACK)); } + } + public FILE_CLOSE_CALLBACK fileuserclose + { + set { fileuserclose_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return fileuserclose_internal == IntPtr.Zero ? null : (FILE_CLOSE_CALLBACK)Marshal.GetDelegateForFunctionPointer(fileuserclose_internal, typeof(FILE_CLOSE_CALLBACK)); } + } + public FILE_READ_CALLBACK fileuserread + { + set { fileuserread_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return fileuserread_internal == IntPtr.Zero ? null : (FILE_READ_CALLBACK)Marshal.GetDelegateForFunctionPointer(fileuserread_internal, typeof(FILE_READ_CALLBACK)); } + } + public FILE_SEEK_CALLBACK fileuserseek + { + set { fileuserseek_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return fileuserseek_internal == IntPtr.Zero ? null : (FILE_SEEK_CALLBACK)Marshal.GetDelegateForFunctionPointer(fileuserseek_internal, typeof(FILE_SEEK_CALLBACK)); } + } + public FILE_ASYNCREAD_CALLBACK fileuserasyncread + { + set { fileuserasyncread_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return fileuserasyncread_internal == IntPtr.Zero ? null : (FILE_ASYNCREAD_CALLBACK)Marshal.GetDelegateForFunctionPointer(fileuserasyncread_internal, typeof(FILE_ASYNCREAD_CALLBACK)); } + } + public FILE_ASYNCCANCEL_CALLBACK fileuserasynccancel + { + set { fileuserasynccancel_internal = (value == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(value)); } + get { return fileuserasynccancel_internal == IntPtr.Zero ? null : (FILE_ASYNCCANCEL_CALLBACK)Marshal.GetDelegateForFunctionPointer(fileuserasynccancel_internal, typeof(FILE_ASYNCCANCEL_CALLBACK)); } + } + } #pragma warning disable 414 @@ -718,7 +766,6 @@ namespace FMOD public class PRESET { - /* Instance Env Diffus Room RoomHF RmLF DecTm DecHF DecLF Refl RefDel Revb RevDel ModTm ModDp HFRef LFRef Diffus Densty FLAGS */ public static REVERB_PROPERTIES OFF() { return new REVERB_PROPERTIES( 1000, 7, 11, 5000, 100, 100, 100, 250, 0, 20, 96, -80.0f );} public static REVERB_PROPERTIES GENERIC() { return new REVERB_PROPERTIES( 1500, 7, 11, 5000, 83, 100, 100, 250, 0, 14500, 96, -8.0f );} public static REVERB_PROPERTIES PADDEDCELL() { return new REVERB_PROPERTIES( 170, 1, 2, 5000, 10, 100, 100, 250, 0, 160, 84, -7.8f );} @@ -1126,24 +1173,10 @@ namespace FMOD { return FMOD5_System_GetDSPInfoByPlugin(this.handle, handle, out description); } - /* - public RESULT registerCodec (ref CODEC_DESCRIPTION description, out uint handle, uint priority) - public RESULT registerCodec (ref CODEC_DESCRIPTION description, out uint handle, uint priority = 0) - public RESULT registerCodec(ref CODEC_DESCRIPTION description, out uint handle, uint priority) - { - return FMOD5_System_RegisterCodec(this.handle, ref description, out handle, priority); - } - */ public RESULT registerDSP(ref DSP_DESCRIPTION description, out uint handle) { return FMOD5_System_RegisterDSP(this.handle, ref description, out handle); } - /* - public RESULT registerOutput(ref OUTPUT_DESCRIPTION description, out uint handle) - { - return FMOD5_System_RegisterOutput(this.handle, ref description, out handle); - } - */ // Init/Close. public RESULT init(int maxchannels, INITFLAGS flags, IntPtr extradriverdata) @@ -1536,12 +1569,8 @@ namespace FMOD private static extern RESULT FMOD5_System_CreateDSPByPlugin (IntPtr system, uint handle, out IntPtr dsp); [DllImport(VERSION.dll)] private static extern RESULT FMOD5_System_GetDSPInfoByPlugin (IntPtr system, uint handle, out IntPtr description); - //[DllImport(VERSION.dll)] - //private static extern RESULT FMOD5_System_RegisterCodec (IntPtr system, out CODEC_DESCRIPTION description, out uint handle, uint priority); [DllImport(VERSION.dll)] private static extern RESULT FMOD5_System_RegisterDSP (IntPtr system, ref DSP_DESCRIPTION description, out uint handle); - //[DllImport(VERSION.dll)] - //private static extern RESULT FMOD5_System_RegisterOutput (IntPtr system, ref OUTPUT_DESCRIPTION description, out uint handle); [DllImport(VERSION.dll)] private static extern RESULT FMOD5_System_Init (IntPtr system, int maxchannels, INITFLAGS flags, IntPtr extradriverdata); [DllImport(VERSION.dll)] diff --git a/engine/FMOD/inc/fmod.h b/engine/FMOD/inc/fmod.h index 0c73298..1c7d8ff 100644 --- a/engine/FMOD/inc/fmod.h +++ b/engine/FMOD/inc/fmod.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - C header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* Use this header in conjunction with fmod_common.h (which contains all the constants / */ /* callbacks) to develop using the C interface */ diff --git a/engine/FMOD/inc/fmod.hpp b/engine/FMOD/inc/fmod.hpp index 243b270..7e83d85 100644 --- a/engine/FMOD/inc/fmod.hpp +++ b/engine/FMOD/inc/fmod.hpp @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - C++ header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* Use this header in conjunction with fmod_common.h (which contains all the constants / */ /* callbacks) to develop using the C++ language. */ diff --git a/engine/FMOD/inc/fmod_codec.h b/engine/FMOD/inc/fmod_codec.h index 668d9cf..325fdb2 100644 --- a/engine/FMOD/inc/fmod_codec.h +++ b/engine/FMOD/inc/fmod_codec.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - Codec development header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* 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 */ @@ -115,7 +115,7 @@ struct FMOD_CODEC_STATE Codec macros */ #define FMOD_CODEC_METADATA(_state, _tagtype, _name, _data, _datalen, _datatype, _unique) \ - (_state)->functions->metadata(_size, _tagtype, _name, _data, _datalen, _datatype, _unique) + (_state)->functions->metadata(_state, _tagtype, _name, _data, _datalen, _datatype, _unique) #define FMOD_CODEC_ALLOC(_state, _size, _align) \ (_state)->functions->alloc(_size, _align, __FILE__, __LINE__) #define FMOD_CODEC_FREE(_state, _ptr) \ diff --git a/engine/FMOD/inc/fmod_common.h b/engine/FMOD/inc/fmod_common.h index 1d7055c..41c2b71 100644 --- a/engine/FMOD/inc/fmod_common.h +++ b/engine/FMOD/inc/fmod_common.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - Common C/C++ header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* This header is included by fmod.hpp (C++ interface) and fmod.h (C interface) */ /* */ @@ -57,7 +57,7 @@ typedef unsigned long long FMOD_PORT_INDEX; /* FMOD constants */ -#define FMOD_VERSION 0x00020203 /* 0xaaaabbcc -> aaaa = product version, bb = major version, cc = minor version.*/ +#define FMOD_VERSION 0x00020206 /* 0xaaaabbcc -> aaaa = product version, bb = major version, cc = minor version.*/ typedef unsigned int FMOD_DEBUG_FLAGS; #define FMOD_DEBUG_LEVEL_NONE 0x00000000 @@ -434,6 +434,7 @@ typedef enum FMOD_OUTPUTTYPE FMOD_OUTPUTTYPE_NNAUDIO, FMOD_OUTPUTTYPE_WINSONIC, FMOD_OUTPUTTYPE_AAUDIO, + FMOD_OUTPUTTYPE_AUDIOWORKLET, FMOD_OUTPUTTYPE_MAX, FMOD_OUTPUTTYPE_FORCEINT = 65536 diff --git a/engine/FMOD/inc/fmod_dsp.cs b/engine/FMOD/inc/fmod_dsp.cs index 92ad06d..8c84a56 100644 --- a/engine/FMOD/inc/fmod_dsp.cs +++ b/engine/FMOD/inc/fmod_dsp.cs @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - DSP header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* 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 */ diff --git a/engine/FMOD/inc/fmod_dsp.h b/engine/FMOD/inc/fmod_dsp.h index 3e28a40..0185a53 100644 --- a/engine/FMOD/inc/fmod_dsp.h +++ b/engine/FMOD/inc/fmod_dsp.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - DSP header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* 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 */ diff --git a/engine/FMOD/inc/fmod_dsp_effects.h b/engine/FMOD/inc/fmod_dsp_effects.h index e5645cb..e00759d 100644 --- a/engine/FMOD/inc/fmod_dsp_effects.h +++ b/engine/FMOD/inc/fmod_dsp_effects.h @@ -1,6 +1,6 @@ /* ============================================================================================================= */ /* FMOD Core API - Built-in effects header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* In this header you can find parameter structures for FMOD system registered DSP effects */ /* and generators. */ diff --git a/engine/FMOD/inc/fmod_errors.cs b/engine/FMOD/inc/fmod_errors.cs index e7b9cd2..738a347 100644 --- a/engine/FMOD/inc/fmod_errors.cs +++ b/engine/FMOD/inc/fmod_errors.cs @@ -1,6 +1,6 @@ /* ============================================================================================== */ /* FMOD Core / Studio API - Error string header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* Use this header if you want to store or display a string version / english explanation */ /* of the FMOD error codes. */ diff --git a/engine/FMOD/inc/fmod_errors.h b/engine/FMOD/inc/fmod_errors.h index ea17340..ce839a9 100644 --- a/engine/FMOD/inc/fmod_errors.h +++ b/engine/FMOD/inc/fmod_errors.h @@ -1,6 +1,6 @@ /* ============================================================================================== */ /* FMOD Core / Studio API - Error string header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* Use this header if you want to store or display a string version / english explanation */ /* of the FMOD error codes. */ diff --git a/engine/FMOD/inc/fmod_output.h b/engine/FMOD/inc/fmod_output.h index 0d511a0..3a8aec4 100644 --- a/engine/FMOD/inc/fmod_output.h +++ b/engine/FMOD/inc/fmod_output.h @@ -1,6 +1,6 @@ /* ======================================================================================== */ /* FMOD Core API - output development header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2021. */ +/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2022. */ /* */ /* 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 */ @@ -113,7 +113,7 @@ struct FMOD_OUTPUT_OBJECT3DINFO #define FMOD_OUTPUT_FREE(_state, _ptr) \ (_state)->free(_ptr, __FILE__, __LINE__) #define FMOD_OUTPUT_LOG(_state, _level, _location, _format, ...) \ - (_state)->log(_level, __FILE__, __LINE__, _location, _format, __VA_ARGS__) + (_state)->log(_level, __FILE__, __LINE__, _location, _format, ##__VA_ARGS__) #define FMOD_OUTPUT_COPYPORT(_state, _id, _buffer, _length) \ (_state)->copyport(_state, _id, _buffer, _length) #define FMOD_OUTPUT_REQUESTRESET(_state) \ diff --git a/engine/FMOD/lib/x64/fmod.dll b/engine/FMOD/lib/x64/fmod.dll index f9e38be..e1fe7a6 100644 Binary files a/engine/FMOD/lib/x64/fmod.dll and b/engine/FMOD/lib/x64/fmod.dll differ diff --git a/engine/FMOD/lib/x64/fmodL.dll b/engine/FMOD/lib/x64/fmodL.dll index 0394340..5f55a7b 100644 Binary files a/engine/FMOD/lib/x64/fmodL.dll and b/engine/FMOD/lib/x64/fmodL.dll differ diff --git a/engine/FMOD/lib/x64/fmodL_vc.lib b/engine/FMOD/lib/x64/fmodL_vc.lib index db6a830..8236f2f 100644 Binary files a/engine/FMOD/lib/x64/fmodL_vc.lib and b/engine/FMOD/lib/x64/fmodL_vc.lib differ diff --git a/engine/FMOD/lib/x64/fmod_vc.lib b/engine/FMOD/lib/x64/fmod_vc.lib index 7f00702..83f2316 100644 Binary files a/engine/FMOD/lib/x64/fmod_vc.lib and b/engine/FMOD/lib/x64/fmod_vc.lib differ diff --git a/engine/FMOD/lib/x86/fmod.dll b/engine/FMOD/lib/x86/fmod.dll index b30885f..e7af0bf 100644 Binary files a/engine/FMOD/lib/x86/fmod.dll and b/engine/FMOD/lib/x86/fmod.dll differ diff --git a/engine/FMOD/lib/x86/fmodL.dll b/engine/FMOD/lib/x86/fmodL.dll index 7c44416..d8911ee 100644 Binary files a/engine/FMOD/lib/x86/fmodL.dll and b/engine/FMOD/lib/x86/fmodL.dll differ diff --git a/engine/FMOD/lib/x86/fmodL_vc.lib b/engine/FMOD/lib/x86/fmodL_vc.lib index 7bdb9ba..8be8b6b 100644 Binary files a/engine/FMOD/lib/x86/fmodL_vc.lib and b/engine/FMOD/lib/x86/fmodL_vc.lib differ diff --git a/engine/FMOD/lib/x86/fmod_vc.lib b/engine/FMOD/lib/x86/fmod_vc.lib index 93a9915..ad3b755 100644 Binary files a/engine/FMOD/lib/x86/fmod_vc.lib and b/engine/FMOD/lib/x86/fmod_vc.lib differ diff --git a/engine/FMOD/lib/x86/libfmod.a b/engine/FMOD/lib/x86/libfmod.a index a828419..b9d14b3 100644 Binary files a/engine/FMOD/lib/x86/libfmod.a and b/engine/FMOD/lib/x86/libfmod.a differ diff --git a/engine/FMOD/lib/x86/libfmodL.a b/engine/FMOD/lib/x86/libfmodL.a index 8932f4f..6975e34 100644 Binary files a/engine/FMOD/lib/x86/libfmodL.a and b/engine/FMOD/lib/x86/libfmodL.a differ