Files
coven/modules/fmod/module.jai

3554 lines
172 KiB
Plaintext

//
// This file was auto-generated using the following command:
//
// jai first.jai
//
FMOD_VERSION :: 0x00020212;
FMOD_DEBUG_LEVEL_NONE :: 0x00000000;
FMOD_DEBUG_LEVEL_ERROR :: 0x00000001;
FMOD_DEBUG_LEVEL_WARNING :: 0x00000002;
FMOD_DEBUG_LEVEL_LOG :: 0x00000004;
FMOD_DEBUG_TYPE_MEMORY :: 0x00000100;
FMOD_DEBUG_TYPE_FILE :: 0x00000200;
FMOD_DEBUG_TYPE_CODEC :: 0x00000400;
FMOD_DEBUG_TYPE_TRACE :: 0x00000800;
FMOD_DEBUG_DISPLAY_TIMESTAMPS :: 0x00010000;
FMOD_DEBUG_DISPLAY_LINENUMBERS :: 0x00020000;
FMOD_DEBUG_DISPLAY_THREAD :: 0x00040000;
FMOD_MEMORY_NORMAL :: 0x00000000;
FMOD_MEMORY_STREAM_FILE :: 0x00000001;
FMOD_MEMORY_STREAM_DECODE :: 0x00000002;
FMOD_MEMORY_SAMPLEDATA :: 0x00000004;
FMOD_MEMORY_DSP_BUFFER :: 0x00000008;
FMOD_MEMORY_PLUGIN :: 0x00000010;
FMOD_MEMORY_PERSISTENT :: 0x00200000;
FMOD_MEMORY_ALL :: 0xFFFFFFFF;
FMOD_INIT_NORMAL :: 0x00000000;
FMOD_INIT_STREAM_FROM_UPDATE :: 0x00000001;
FMOD_INIT_MIX_FROM_UPDATE :: 0x00000002;
FMOD_INIT_3D_RIGHTHANDED :: 0x00000004;
FMOD_INIT_CLIP_OUTPUT :: 0x00000008;
FMOD_INIT_CHANNEL_LOWPASS :: 0x00000100;
FMOD_INIT_CHANNEL_DISTANCEFILTER :: 0x00000200;
FMOD_INIT_PROFILE_ENABLE :: 0x00010000;
FMOD_INIT_VOL0_BECOMES_VIRTUAL :: 0x00020000;
FMOD_INIT_GEOMETRY_USECLOSEST :: 0x00040000;
FMOD_INIT_PREFER_DOLBY_DOWNMIX :: 0x00080000;
FMOD_INIT_THREAD_UNSAFE :: 0x00100000;
FMOD_INIT_PROFILE_METER_ALL :: 0x00200000;
FMOD_INIT_MEMORY_TRACKING :: 0x00400000;
FMOD_DRIVER_STATE_CONNECTED :: 0x00000001;
FMOD_DRIVER_STATE_DEFAULT :: 0x00000002;
FMOD_TIMEUNIT_MS :: 0x00000001;
FMOD_TIMEUNIT_PCM :: 0x00000002;
FMOD_TIMEUNIT_PCMBYTES :: 0x00000004;
FMOD_TIMEUNIT_RAWBYTES :: 0x00000008;
FMOD_TIMEUNIT_PCMFRACTION :: 0x00000010;
FMOD_TIMEUNIT_MODORDER :: 0x00000100;
FMOD_TIMEUNIT_MODROW :: 0x00000200;
FMOD_TIMEUNIT_MODPATTERN :: 0x00000400;
FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED :: 0x00000001;
FMOD_SYSTEM_CALLBACK_DEVICELOST :: 0x00000002;
FMOD_SYSTEM_CALLBACK_MEMORYALLOCATIONFAILED :: 0x00000004;
FMOD_SYSTEM_CALLBACK_THREADCREATED :: 0x00000008;
FMOD_SYSTEM_CALLBACK_BADDSPCONNECTION :: 0x00000010;
FMOD_SYSTEM_CALLBACK_PREMIX :: 0x00000020;
FMOD_SYSTEM_CALLBACK_POSTMIX :: 0x00000040;
FMOD_SYSTEM_CALLBACK_ERROR :: 0x00000080;
FMOD_SYSTEM_CALLBACK_MIDMIX :: 0x00000100;
FMOD_SYSTEM_CALLBACK_THREADDESTROYED :: 0x00000200;
FMOD_SYSTEM_CALLBACK_PREUPDATE :: 0x00000400;
FMOD_SYSTEM_CALLBACK_POSTUPDATE :: 0x00000800;
FMOD_SYSTEM_CALLBACK_RECORDLISTCHANGED :: 0x00001000;
FMOD_SYSTEM_CALLBACK_BUFFEREDNOMIX :: 0x00002000;
FMOD_SYSTEM_CALLBACK_DEVICEREINITIALIZE :: 0x00004000;
FMOD_SYSTEM_CALLBACK_OUTPUTUNDERRUN :: 0x00008000;
FMOD_SYSTEM_CALLBACK_RECORDPOSITIONCHANGED :: 0x00010000;
FMOD_SYSTEM_CALLBACK_ALL :: 0xFFFFFFFF;
FMOD_DEFAULT :: 0x00000000;
FMOD_LOOP_OFF :: 0x00000001;
FMOD_LOOP_NORMAL :: 0x00000002;
FMOD_LOOP_BIDI :: 0x00000004;
FMOD_2D :: 0x00000008;
FMOD_3D :: 0x00000010;
FMOD_CREATESTREAM :: 0x00000080;
FMOD_CREATESAMPLE :: 0x00000100;
FMOD_CREATECOMPRESSEDSAMPLE :: 0x00000200;
FMOD_OPENUSER :: 0x00000400;
FMOD_OPENMEMORY :: 0x00000800;
FMOD_OPENMEMORY_POINT :: 0x10000000;
FMOD_OPENRAW :: 0x00001000;
FMOD_OPENONLY :: 0x00002000;
FMOD_ACCURATETIME :: 0x00004000;
FMOD_MPEGSEARCH :: 0x00008000;
FMOD_NONBLOCKING :: 0x00010000;
FMOD_UNIQUE :: 0x00020000;
FMOD_3D_HEADRELATIVE :: 0x00040000;
FMOD_3D_WORLDRELATIVE :: 0x00080000;
FMOD_3D_INVERSEROLLOFF :: 0x00100000;
FMOD_3D_LINEARROLLOFF :: 0x00200000;
FMOD_3D_LINEARSQUAREROLLOFF :: 0x00400000;
FMOD_3D_INVERSETAPEREDROLLOFF :: 0x00800000;
FMOD_3D_CUSTOMROLLOFF :: 0x04000000;
FMOD_3D_IGNOREGEOMETRY :: 0x40000000;
FMOD_IGNORETAGS :: 0x02000000;
FMOD_LOWMEM :: 0x08000000;
FMOD_VIRTUAL_PLAYFROMSTART :: 0x80000000;
FMOD_CHANNELMASK_FRONT_LEFT :: 0x00000001;
FMOD_CHANNELMASK_FRONT_RIGHT :: 0x00000002;
FMOD_CHANNELMASK_FRONT_CENTER :: 0x00000004;
FMOD_CHANNELMASK_LOW_FREQUENCY :: 0x00000008;
FMOD_CHANNELMASK_SURROUND_LEFT :: 0x00000010;
FMOD_CHANNELMASK_SURROUND_RIGHT :: 0x00000020;
FMOD_CHANNELMASK_BACK_LEFT :: 0x00000040;
FMOD_CHANNELMASK_BACK_RIGHT :: 0x00000080;
FMOD_CHANNELMASK_BACK_CENTER :: 0x00000100;
FMOD_CHANNELMASK_MONO :: FMOD_CHANNELMASK_FRONT_LEFT;
FMOD_CHANNELMASK_STEREO :: FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT;
FMOD_CHANNELMASK_LRC :: FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER;
FMOD_CHANNELMASK_QUAD :: FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT;
FMOD_CHANNELMASK_SURROUND :: FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT;
FMOD_CHANNELMASK_5POINT1 :: 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_5POINT1_REARS :: FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_LOW_FREQUENCY | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT;
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;
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;
FMOD_PORT_INDEX_NONE :: 0xFFFFFFFFFFFFFFFF;
FMOD_PORT_INDEX_FLAG_VR_CONTROLLER :: 0x1000000000000000;
FMOD_THREAD_PRIORITY_PLATFORM_MIN :: -32 * 1024;
FMOD_THREAD_PRIORITY_PLATFORM_MAX :: 32 * 1024;
FMOD_THREAD_PRIORITY_DEFAULT :: FMOD_THREAD_PRIORITY_PLATFORM_MIN - 1;
FMOD_THREAD_PRIORITY_LOW :: FMOD_THREAD_PRIORITY_PLATFORM_MIN - 2;
FMOD_THREAD_PRIORITY_MEDIUM :: FMOD_THREAD_PRIORITY_PLATFORM_MIN - 3;
FMOD_THREAD_PRIORITY_HIGH :: FMOD_THREAD_PRIORITY_PLATFORM_MIN - 4;
FMOD_THREAD_PRIORITY_VERY_HIGH :: FMOD_THREAD_PRIORITY_PLATFORM_MIN - 5;
FMOD_THREAD_PRIORITY_EXTREME :: FMOD_THREAD_PRIORITY_PLATFORM_MIN - 6;
FMOD_THREAD_PRIORITY_CRITICAL :: FMOD_THREAD_PRIORITY_PLATFORM_MIN - 7;
FMOD_THREAD_PRIORITY_MIXER :: FMOD_THREAD_PRIORITY_EXTREME;
FMOD_THREAD_PRIORITY_FEEDER :: FMOD_THREAD_PRIORITY_CRITICAL;
FMOD_THREAD_PRIORITY_STREAM :: FMOD_THREAD_PRIORITY_VERY_HIGH;
FMOD_THREAD_PRIORITY_FILE :: FMOD_THREAD_PRIORITY_HIGH;
FMOD_THREAD_PRIORITY_NONBLOCKING :: FMOD_THREAD_PRIORITY_HIGH;
FMOD_THREAD_PRIORITY_RECORD :: FMOD_THREAD_PRIORITY_HIGH;
FMOD_THREAD_PRIORITY_GEOMETRY :: FMOD_THREAD_PRIORITY_LOW;
FMOD_THREAD_PRIORITY_PROFILER :: FMOD_THREAD_PRIORITY_MEDIUM;
FMOD_THREAD_PRIORITY_STUDIO_UPDATE :: FMOD_THREAD_PRIORITY_MEDIUM;
FMOD_THREAD_PRIORITY_STUDIO_LOAD_BANK :: FMOD_THREAD_PRIORITY_MEDIUM;
FMOD_THREAD_PRIORITY_STUDIO_LOAD_SAMPLE :: FMOD_THREAD_PRIORITY_MEDIUM;
FMOD_THREAD_PRIORITY_CONVOLUTION1 :: FMOD_THREAD_PRIORITY_VERY_HIGH;
FMOD_THREAD_PRIORITY_CONVOLUTION2 :: FMOD_THREAD_PRIORITY_VERY_HIGH;
FMOD_THREAD_STACK_SIZE_DEFAULT :: 0;
FMOD_THREAD_STACK_SIZE_MIXER :: 80 * 1024;
FMOD_THREAD_STACK_SIZE_FEEDER :: 16 * 1024;
FMOD_THREAD_STACK_SIZE_STREAM :: 96 * 1024;
FMOD_THREAD_STACK_SIZE_FILE :: 64 * 1024;
FMOD_THREAD_STACK_SIZE_NONBLOCKING :: 112 * 1024;
FMOD_THREAD_STACK_SIZE_RECORD :: 16 * 1024;
FMOD_THREAD_STACK_SIZE_GEOMETRY :: 48 * 1024;
FMOD_THREAD_STACK_SIZE_PROFILER :: 128 * 1024;
FMOD_THREAD_STACK_SIZE_STUDIO_UPDATE :: 96 * 1024;
FMOD_THREAD_STACK_SIZE_STUDIO_LOAD_BANK :: 96 * 1024;
FMOD_THREAD_STACK_SIZE_STUDIO_LOAD_SAMPLE :: 96 * 1024;
FMOD_THREAD_STACK_SIZE_CONVOLUTION1 :: 16 * 1024;
FMOD_THREAD_STACK_SIZE_CONVOLUTION2 :: 16 * 1024;
FMOD_THREAD_AFFINITY_GROUP_DEFAULT :: 0x4000000000000000;
FMOD_THREAD_AFFINITY_GROUP_A :: 0x4000000000000001;
FMOD_THREAD_AFFINITY_GROUP_B :: 0x4000000000000002;
FMOD_THREAD_AFFINITY_GROUP_C :: 0x4000000000000003;
FMOD_THREAD_AFFINITY_MIXER :: FMOD_THREAD_AFFINITY_GROUP_A;
FMOD_THREAD_AFFINITY_FEEDER :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_STREAM :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_FILE :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_NONBLOCKING :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_RECORD :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_GEOMETRY :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_PROFILER :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_STUDIO_UPDATE :: FMOD_THREAD_AFFINITY_GROUP_B;
FMOD_THREAD_AFFINITY_STUDIO_LOAD_BANK :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_STUDIO_LOAD_SAMPLE :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_CONVOLUTION1 :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_CONVOLUTION2 :: FMOD_THREAD_AFFINITY_GROUP_C;
FMOD_THREAD_AFFINITY_CORE_ALL :: 0;
FMOD_THREAD_AFFINITY_CORE_0 :: 1 << 0;
FMOD_THREAD_AFFINITY_CORE_1 :: 1 << 1;
FMOD_THREAD_AFFINITY_CORE_2 :: 1 << 2;
FMOD_THREAD_AFFINITY_CORE_3 :: 1 << 3;
FMOD_THREAD_AFFINITY_CORE_4 :: 1 << 4;
FMOD_THREAD_AFFINITY_CORE_5 :: 1 << 5;
FMOD_THREAD_AFFINITY_CORE_6 :: 1 << 6;
FMOD_THREAD_AFFINITY_CORE_7 :: 1 << 7;
FMOD_THREAD_AFFINITY_CORE_8 :: 1 << 8;
FMOD_THREAD_AFFINITY_CORE_9 :: 1 << 9;
FMOD_THREAD_AFFINITY_CORE_10 :: 1 << 10;
FMOD_THREAD_AFFINITY_CORE_11 :: 1 << 11;
FMOD_THREAD_AFFINITY_CORE_12 :: 1 << 12;
FMOD_THREAD_AFFINITY_CORE_13 :: 1 << 13;
FMOD_THREAD_AFFINITY_CORE_14 :: 1 << 14;
FMOD_THREAD_AFFINITY_CORE_15 :: 1 << 15;
FMOD_MAX_CHANNEL_WIDTH :: 32;
FMOD_MAX_SYSTEMS :: 8;
FMOD_MAX_LISTENERS :: 8;
FMOD_REVERB_MAXINSTANCES :: 4;
FMOD_CODEC_PLUGIN_VERSION :: 1;
FMOD_CODEC_SEEK_METHOD_SET :: 0;
FMOD_CODEC_SEEK_METHOD_CURRENT :: 1;
FMOD_CODEC_SEEK_METHOD_END :: 2;
FMOD_DSP_LOUDNESS_METER_HISTOGRAM_SAMPLES :: 66;
FMOD_PLUGIN_SDK_VERSION :: 110;
FMOD_DSP_GETPARAM_VALUESTR_LENGTH :: 32;
FMOD_OUTPUT_PLUGIN_VERSION :: 5;
FMOD_OUTPUT_METHOD_MIX_DIRECT :: 0;
FMOD_OUTPUT_METHOD_MIX_BUFFERED :: 1;
FMOD_STUDIO_LOAD_MEMORY_ALIGNMENT :: 32;
FMOD_STUDIO_INIT_NORMAL :: 0x00000000;
FMOD_STUDIO_INIT_LIVEUPDATE :: 0x00000001;
FMOD_STUDIO_INIT_ALLOW_MISSING_PLUGINS :: 0x00000002;
FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE :: 0x00000004;
FMOD_STUDIO_INIT_DEFERRED_CALLBACKS :: 0x00000008;
FMOD_STUDIO_INIT_LOAD_FROM_UPDATE :: 0x00000010;
FMOD_STUDIO_INIT_MEMORY_TRACKING :: 0x00000020;
FMOD_STUDIO_PARAMETER_READONLY :: 0x00000001;
FMOD_STUDIO_PARAMETER_AUTOMATIC :: 0x00000002;
FMOD_STUDIO_PARAMETER_GLOBAL :: 0x00000004;
FMOD_STUDIO_PARAMETER_DISCRETE :: 0x00000008;
FMOD_STUDIO_PARAMETER_LABELED :: 0x00000010;
FMOD_STUDIO_SYSTEM_CALLBACK_PREUPDATE :: 0x00000001;
FMOD_STUDIO_SYSTEM_CALLBACK_POSTUPDATE :: 0x00000002;
FMOD_STUDIO_SYSTEM_CALLBACK_BANK_UNLOAD :: 0x00000004;
FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_CONNECTED :: 0x00000008;
FMOD_STUDIO_SYSTEM_CALLBACK_LIVEUPDATE_DISCONNECTED :: 0x00000010;
FMOD_STUDIO_SYSTEM_CALLBACK_ALL :: 0xFFFFFFFF;
FMOD_STUDIO_EVENT_CALLBACK_CREATED :: 0x00000001;
FMOD_STUDIO_EVENT_CALLBACK_DESTROYED :: 0x00000002;
FMOD_STUDIO_EVENT_CALLBACK_STARTING :: 0x00000004;
FMOD_STUDIO_EVENT_CALLBACK_STARTED :: 0x00000008;
FMOD_STUDIO_EVENT_CALLBACK_RESTARTED :: 0x00000010;
FMOD_STUDIO_EVENT_CALLBACK_STOPPED :: 0x00000020;
FMOD_STUDIO_EVENT_CALLBACK_START_FAILED :: 0x00000040;
FMOD_STUDIO_EVENT_CALLBACK_CREATE_PROGRAMMER_SOUND :: 0x00000080;
FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND :: 0x00000100;
FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_CREATED :: 0x00000200;
FMOD_STUDIO_EVENT_CALLBACK_PLUGIN_DESTROYED :: 0x00000400;
FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_MARKER :: 0x00000800;
FMOD_STUDIO_EVENT_CALLBACK_TIMELINE_BEAT :: 0x00001000;
FMOD_STUDIO_EVENT_CALLBACK_SOUND_PLAYED :: 0x00002000;
FMOD_STUDIO_EVENT_CALLBACK_SOUND_STOPPED :: 0x00004000;
FMOD_STUDIO_EVENT_CALLBACK_REAL_TO_VIRTUAL :: 0x00008000;
FMOD_STUDIO_EVENT_CALLBACK_VIRTUAL_TO_REAL :: 0x00010000;
FMOD_STUDIO_EVENT_CALLBACK_START_EVENT_COMMAND :: 0x00020000;
FMOD_STUDIO_EVENT_CALLBACK_NESTED_TIMELINE_BEAT :: 0x00040000;
FMOD_STUDIO_EVENT_CALLBACK_ALL :: 0xFFFFFFFF;
FMOD_STUDIO_LOAD_BANK_NORMAL :: 0x00000000;
FMOD_STUDIO_LOAD_BANK_NONBLOCKING :: 0x00000001;
FMOD_STUDIO_LOAD_BANK_DECOMPRESS_SAMPLES :: 0x00000002;
FMOD_STUDIO_LOAD_BANK_UNENCRYPTED :: 0x00000004;
FMOD_STUDIO_COMMANDCAPTURE_NORMAL :: 0x00000000;
FMOD_STUDIO_COMMANDCAPTURE_FILEFLUSH :: 0x00000001;
FMOD_STUDIO_COMMANDCAPTURE_SKIP_INITIAL_STATE :: 0x00000002;
FMOD_STUDIO_COMMANDREPLAY_NORMAL :: 0x00000000;
FMOD_STUDIO_COMMANDREPLAY_SKIP_CLEANUP :: 0x00000001;
FMOD_STUDIO_COMMANDREPLAY_FAST_FORWARD :: 0x00000002;
FMOD_STUDIO_COMMANDREPLAY_SKIP_BANK_LOAD :: 0x00000004;
/*
FMOD core types
*/
FMOD_BOOL :: s32;
FMOD_SYSTEM :: struct {}
FMOD_SOUND :: struct {}
FMOD_CHANNELCONTROL :: struct {}
FMOD_CHANNEL :: struct {}
FMOD_CHANNELGROUP :: struct {}
FMOD_SOUNDGROUP :: struct {}
FMOD_REVERB3D :: struct {}
FMOD_DSP :: struct {}
FMOD_DSPCONNECTION :: struct {}
FMOD_POLYGON :: struct {}
FMOD_GEOMETRY :: struct {}
FMOD_SYNCPOINT :: struct {}
FMOD_DEBUG_FLAGS :: u32;
FMOD_MEMORY_TYPE :: u32;
FMOD_INITFLAGS :: u32;
FMOD_DRIVER_STATE :: u32;
FMOD_TIMEUNIT :: u32;
FMOD_SYSTEM_CALLBACK_TYPE :: u32;
FMOD_MODE :: u32;
FMOD_CHANNELMASK :: u32;
FMOD_PORT_INDEX :: u64;
FMOD_THREAD_PRIORITY :: s32;
FMOD_THREAD_STACK_SIZE :: u32;
FMOD_THREAD_AFFINITY :: s64;
FMOD_THREAD_TYPE :: enum s32 {
MIXER :: 0;
FEEDER :: 1;
STREAM :: 2;
FILE :: 3;
NONBLOCKING :: 4;
RECORD :: 5;
GEOMETRY :: 6;
PROFILER :: 7;
STUDIO_UPDATE :: 8;
STUDIO_LOAD_BANK :: 9;
STUDIO_LOAD_SAMPLE :: 10;
CONVOLUTION1 :: 11;
CONVOLUTION2 :: 12;
MAX :: 13;
FORCEINT :: 65536;
FMOD_THREAD_TYPE_MIXER :: MIXER;
FMOD_THREAD_TYPE_FEEDER :: FEEDER;
FMOD_THREAD_TYPE_STREAM :: STREAM;
FMOD_THREAD_TYPE_FILE :: FILE;
FMOD_THREAD_TYPE_NONBLOCKING :: NONBLOCKING;
FMOD_THREAD_TYPE_RECORD :: RECORD;
FMOD_THREAD_TYPE_GEOMETRY :: GEOMETRY;
FMOD_THREAD_TYPE_PROFILER :: PROFILER;
FMOD_THREAD_TYPE_STUDIO_UPDATE :: STUDIO_UPDATE;
FMOD_THREAD_TYPE_STUDIO_LOAD_BANK :: STUDIO_LOAD_BANK;
FMOD_THREAD_TYPE_STUDIO_LOAD_SAMPLE :: STUDIO_LOAD_SAMPLE;
FMOD_THREAD_TYPE_CONVOLUTION1 :: CONVOLUTION1;
FMOD_THREAD_TYPE_CONVOLUTION2 :: CONVOLUTION2;
FMOD_THREAD_TYPE_MAX :: MAX;
FMOD_THREAD_TYPE_FORCEINT :: FORCEINT;
}
FMOD_RESULT :: enum s32 {
FMOD_OK :: 0;
FMOD_ERR_BADCOMMAND :: 1;
FMOD_ERR_CHANNEL_ALLOC :: 2;
FMOD_ERR_CHANNEL_STOLEN :: 3;
FMOD_ERR_DMA :: 4;
FMOD_ERR_DSP_CONNECTION :: 5;
FMOD_ERR_DSP_DONTPROCESS :: 6;
FMOD_ERR_DSP_FORMAT :: 7;
FMOD_ERR_DSP_INUSE :: 8;
FMOD_ERR_DSP_NOTFOUND :: 9;
FMOD_ERR_DSP_RESERVED :: 10;
FMOD_ERR_DSP_SILENCE :: 11;
FMOD_ERR_DSP_TYPE :: 12;
FMOD_ERR_FILE_BAD :: 13;
FMOD_ERR_FILE_COULDNOTSEEK :: 14;
FMOD_ERR_FILE_DISKEJECTED :: 15;
FMOD_ERR_FILE_EOF :: 16;
FMOD_ERR_FILE_ENDOFDATA :: 17;
FMOD_ERR_FILE_NOTFOUND :: 18;
FMOD_ERR_FORMAT :: 19;
FMOD_ERR_HEADER_MISMATCH :: 20;
FMOD_ERR_HTTP :: 21;
FMOD_ERR_HTTP_ACCESS :: 22;
FMOD_ERR_HTTP_PROXY_AUTH :: 23;
FMOD_ERR_HTTP_SERVER_ERROR :: 24;
FMOD_ERR_HTTP_TIMEOUT :: 25;
FMOD_ERR_INITIALIZATION :: 26;
FMOD_ERR_INITIALIZED :: 27;
FMOD_ERR_INTERNAL :: 28;
FMOD_ERR_INVALID_FLOAT :: 29;
FMOD_ERR_INVALID_HANDLE :: 30;
FMOD_ERR_INVALID_PARAM :: 31;
FMOD_ERR_INVALID_POSITION :: 32;
FMOD_ERR_INVALID_SPEAKER :: 33;
FMOD_ERR_INVALID_SYNCPOINT :: 34;
FMOD_ERR_INVALID_THREAD :: 35;
FMOD_ERR_INVALID_VECTOR :: 36;
FMOD_ERR_MAXAUDIBLE :: 37;
FMOD_ERR_MEMORY :: 38;
FMOD_ERR_MEMORY_CANTPOINT :: 39;
FMOD_ERR_NEEDS3D :: 40;
FMOD_ERR_NEEDSHARDWARE :: 41;
FMOD_ERR_NET_CONNECT :: 42;
FMOD_ERR_NET_SOCKET_ERROR :: 43;
FMOD_ERR_NET_URL :: 44;
FMOD_ERR_NET_WOULD_BLOCK :: 45;
FMOD_ERR_NOTREADY :: 46;
FMOD_ERR_OUTPUT_ALLOCATED :: 47;
FMOD_ERR_OUTPUT_CREATEBUFFER :: 48;
FMOD_ERR_OUTPUT_DRIVERCALL :: 49;
FMOD_ERR_OUTPUT_FORMAT :: 50;
FMOD_ERR_OUTPUT_INIT :: 51;
FMOD_ERR_OUTPUT_NODRIVERS :: 52;
FMOD_ERR_PLUGIN :: 53;
FMOD_ERR_PLUGIN_MISSING :: 54;
FMOD_ERR_PLUGIN_RESOURCE :: 55;
FMOD_ERR_PLUGIN_VERSION :: 56;
FMOD_ERR_RECORD :: 57;
FMOD_ERR_REVERB_CHANNELGROUP :: 58;
FMOD_ERR_REVERB_INSTANCE :: 59;
FMOD_ERR_SUBSOUNDS :: 60;
FMOD_ERR_SUBSOUND_ALLOCATED :: 61;
FMOD_ERR_SUBSOUND_CANTMOVE :: 62;
FMOD_ERR_TAGNOTFOUND :: 63;
FMOD_ERR_TOOMANYCHANNELS :: 64;
FMOD_ERR_TRUNCATED :: 65;
FMOD_ERR_UNIMPLEMENTED :: 66;
FMOD_ERR_UNINITIALIZED :: 67;
FMOD_ERR_UNSUPPORTED :: 68;
FMOD_ERR_VERSION :: 69;
FMOD_ERR_EVENT_ALREADY_LOADED :: 70;
FMOD_ERR_EVENT_LIVEUPDATE_BUSY :: 71;
FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH :: 72;
FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT :: 73;
FMOD_ERR_EVENT_NOTFOUND :: 74;
FMOD_ERR_STUDIO_UNINITIALIZED :: 75;
FMOD_ERR_STUDIO_NOT_LOADED :: 76;
FMOD_ERR_INVALID_STRING :: 77;
FMOD_ERR_ALREADY_LOCKED :: 78;
FMOD_ERR_NOT_LOCKED :: 79;
FMOD_ERR_RECORD_DISCONNECTED :: 80;
FMOD_ERR_TOOMANYSAMPLES :: 81;
FORCEINT :: 65536;
FMOD_RESULT_FORCEINT :: FORCEINT;
}
FMOD_CHANNELCONTROL_TYPE :: enum s32 {
CHANNEL :: 0;
CHANNELGROUP :: 1;
MAX :: 2;
FORCEINT :: 65536;
FMOD_CHANNELCONTROL_CHANNEL :: CHANNEL;
FMOD_CHANNELCONTROL_CHANNELGROUP :: CHANNELGROUP;
FMOD_CHANNELCONTROL_MAX :: MAX;
FMOD_CHANNELCONTROL_FORCEINT :: FORCEINT;
}
FMOD_OUTPUTTYPE :: enum s32 {
AUTODETECT :: 0;
UNKNOWN :: 1;
NOSOUND :: 2;
WAVWRITER :: 3;
NOSOUND_NRT :: 4;
WAVWRITER_NRT :: 5;
WASAPI :: 6;
ASIO :: 7;
PULSEAUDIO :: 8;
ALSA :: 9;
COREAUDIO :: 10;
AUDIOTRACK :: 11;
OPENSL :: 12;
AUDIOOUT :: 13;
AUDIO3D :: 14;
WEBAUDIO :: 15;
NNAUDIO :: 16;
WINSONIC :: 17;
AAUDIO :: 18;
AUDIOWORKLET :: 19;
PHASE :: 20;
MAX :: 21;
FORCEINT :: 65536;
FMOD_OUTPUTTYPE_AUTODETECT :: AUTODETECT;
FMOD_OUTPUTTYPE_UNKNOWN :: UNKNOWN;
FMOD_OUTPUTTYPE_NOSOUND :: NOSOUND;
FMOD_OUTPUTTYPE_WAVWRITER :: WAVWRITER;
FMOD_OUTPUTTYPE_NOSOUND_NRT :: NOSOUND_NRT;
FMOD_OUTPUTTYPE_WAVWRITER_NRT :: WAVWRITER_NRT;
FMOD_OUTPUTTYPE_WASAPI :: WASAPI;
FMOD_OUTPUTTYPE_ASIO :: ASIO;
FMOD_OUTPUTTYPE_PULSEAUDIO :: PULSEAUDIO;
FMOD_OUTPUTTYPE_ALSA :: ALSA;
FMOD_OUTPUTTYPE_COREAUDIO :: COREAUDIO;
FMOD_OUTPUTTYPE_AUDIOTRACK :: AUDIOTRACK;
FMOD_OUTPUTTYPE_OPENSL :: OPENSL;
FMOD_OUTPUTTYPE_AUDIOOUT :: AUDIOOUT;
FMOD_OUTPUTTYPE_AUDIO3D :: AUDIO3D;
FMOD_OUTPUTTYPE_WEBAUDIO :: WEBAUDIO;
FMOD_OUTPUTTYPE_NNAUDIO :: NNAUDIO;
FMOD_OUTPUTTYPE_WINSONIC :: WINSONIC;
FMOD_OUTPUTTYPE_AAUDIO :: AAUDIO;
FMOD_OUTPUTTYPE_AUDIOWORKLET :: AUDIOWORKLET;
FMOD_OUTPUTTYPE_PHASE :: PHASE;
FMOD_OUTPUTTYPE_MAX :: MAX;
FMOD_OUTPUTTYPE_FORCEINT :: FORCEINT;
}
FMOD_DEBUG_MODE :: enum s32 {
TTY :: 0;
FILE :: 1;
CALLBACK :: 2;
FORCEINT :: 65536;
FMOD_DEBUG_MODE_TTY :: TTY;
FMOD_DEBUG_MODE_FILE :: FILE;
FMOD_DEBUG_MODE_CALLBACK :: CALLBACK;
FMOD_DEBUG_MODE_FORCEINT :: FORCEINT;
}
FMOD_SPEAKERMODE :: enum s32 {
DEFAULT :: 0;
RAW :: 1;
MONO :: 2;
STEREO :: 3;
QUAD :: 4;
SURROUND :: 5;
_5POINT1 :: 6;
_7POINT1 :: 7;
_7POINT1POINT4 :: 8;
MAX :: 9;
FORCEINT :: 65536;
FMOD_SPEAKERMODE_DEFAULT :: DEFAULT;
FMOD_SPEAKERMODE_RAW :: RAW;
FMOD_SPEAKERMODE_MONO :: MONO;
FMOD_SPEAKERMODE_STEREO :: STEREO;
FMOD_SPEAKERMODE_QUAD :: QUAD;
FMOD_SPEAKERMODE_SURROUND :: SURROUND;
FMOD_SPEAKERMODE_5POINT1 :: _5POINT1;
FMOD_SPEAKERMODE_7POINT1 :: _7POINT1;
FMOD_SPEAKERMODE_7POINT1POINT4 :: _7POINT1POINT4;
FMOD_SPEAKERMODE_MAX :: MAX;
FMOD_SPEAKERMODE_FORCEINT :: FORCEINT;
}
FMOD_SPEAKER :: enum s32 {
NONE :: -1;
FRONT_LEFT :: 0;
FRONT_RIGHT :: 1;
FRONT_CENTER :: 2;
LOW_FREQUENCY :: 3;
SURROUND_LEFT :: 4;
SURROUND_RIGHT :: 5;
BACK_LEFT :: 6;
BACK_RIGHT :: 7;
TOP_FRONT_LEFT :: 8;
TOP_FRONT_RIGHT :: 9;
TOP_BACK_LEFT :: 10;
TOP_BACK_RIGHT :: 11;
MAX :: 12;
FORCEINT :: 65536;
FMOD_SPEAKER_NONE :: NONE;
FMOD_SPEAKER_FRONT_LEFT :: FRONT_LEFT;
FMOD_SPEAKER_FRONT_RIGHT :: FRONT_RIGHT;
FMOD_SPEAKER_FRONT_CENTER :: FRONT_CENTER;
FMOD_SPEAKER_LOW_FREQUENCY :: LOW_FREQUENCY;
FMOD_SPEAKER_SURROUND_LEFT :: SURROUND_LEFT;
FMOD_SPEAKER_SURROUND_RIGHT :: SURROUND_RIGHT;
FMOD_SPEAKER_BACK_LEFT :: BACK_LEFT;
FMOD_SPEAKER_BACK_RIGHT :: BACK_RIGHT;
FMOD_SPEAKER_TOP_FRONT_LEFT :: TOP_FRONT_LEFT;
FMOD_SPEAKER_TOP_FRONT_RIGHT :: TOP_FRONT_RIGHT;
FMOD_SPEAKER_TOP_BACK_LEFT :: TOP_BACK_LEFT;
FMOD_SPEAKER_TOP_BACK_RIGHT :: TOP_BACK_RIGHT;
FMOD_SPEAKER_MAX :: MAX;
FMOD_SPEAKER_FORCEINT :: FORCEINT;
}
FMOD_CHANNELORDER :: enum s32 {
DEFAULT :: 0;
WAVEFORMAT :: 1;
PROTOOLS :: 2;
ALLMONO :: 3;
ALLSTEREO :: 4;
ALSA :: 5;
MAX :: 6;
FORCEINT :: 65536;
FMOD_CHANNELORDER_DEFAULT :: DEFAULT;
FMOD_CHANNELORDER_WAVEFORMAT :: WAVEFORMAT;
FMOD_CHANNELORDER_PROTOOLS :: PROTOOLS;
FMOD_CHANNELORDER_ALLMONO :: ALLMONO;
FMOD_CHANNELORDER_ALLSTEREO :: ALLSTEREO;
FMOD_CHANNELORDER_ALSA :: ALSA;
FMOD_CHANNELORDER_MAX :: MAX;
FMOD_CHANNELORDER_FORCEINT :: FORCEINT;
}
FMOD_PLUGINTYPE :: enum s32 {
OUTPUT :: 0;
CODEC :: 1;
DSP :: 2;
MAX :: 3;
FORCEINT :: 65536;
FMOD_PLUGINTYPE_OUTPUT :: OUTPUT;
FMOD_PLUGINTYPE_CODEC :: CODEC;
FMOD_PLUGINTYPE_DSP :: DSP;
FMOD_PLUGINTYPE_MAX :: MAX;
FMOD_PLUGINTYPE_FORCEINT :: FORCEINT;
}
FMOD_SOUND_TYPE :: enum s32 {
UNKNOWN :: 0;
AIFF :: 1;
ASF :: 2;
DLS :: 3;
FLAC :: 4;
FSB :: 5;
IT :: 6;
MIDI :: 7;
MOD :: 8;
MPEG :: 9;
OGGVORBIS :: 10;
PLAYLIST :: 11;
RAW :: 12;
S3M :: 13;
USER :: 14;
WAV :: 15;
XM :: 16;
XMA :: 17;
AUDIOQUEUE :: 18;
AT9 :: 19;
VORBIS :: 20;
MEDIA_FOUNDATION :: 21;
MEDIACODEC :: 22;
FADPCM :: 23;
OPUS :: 24;
MAX :: 25;
FORCEINT :: 65536;
FMOD_SOUND_TYPE_UNKNOWN :: UNKNOWN;
FMOD_SOUND_TYPE_AIFF :: AIFF;
FMOD_SOUND_TYPE_ASF :: ASF;
FMOD_SOUND_TYPE_DLS :: DLS;
FMOD_SOUND_TYPE_FLAC :: FLAC;
FMOD_SOUND_TYPE_FSB :: FSB;
FMOD_SOUND_TYPE_IT :: IT;
FMOD_SOUND_TYPE_MIDI :: MIDI;
FMOD_SOUND_TYPE_MOD :: MOD;
FMOD_SOUND_TYPE_MPEG :: MPEG;
FMOD_SOUND_TYPE_OGGVORBIS :: OGGVORBIS;
FMOD_SOUND_TYPE_PLAYLIST :: PLAYLIST;
FMOD_SOUND_TYPE_RAW :: RAW;
FMOD_SOUND_TYPE_S3M :: S3M;
FMOD_SOUND_TYPE_USER :: USER;
FMOD_SOUND_TYPE_WAV :: WAV;
FMOD_SOUND_TYPE_XM :: XM;
FMOD_SOUND_TYPE_XMA :: XMA;
FMOD_SOUND_TYPE_AUDIOQUEUE :: AUDIOQUEUE;
FMOD_SOUND_TYPE_AT9 :: AT9;
FMOD_SOUND_TYPE_VORBIS :: VORBIS;
FMOD_SOUND_TYPE_MEDIA_FOUNDATION :: MEDIA_FOUNDATION;
FMOD_SOUND_TYPE_MEDIACODEC :: MEDIACODEC;
FMOD_SOUND_TYPE_FADPCM :: FADPCM;
FMOD_SOUND_TYPE_OPUS :: OPUS;
FMOD_SOUND_TYPE_MAX :: MAX;
FMOD_SOUND_TYPE_FORCEINT :: FORCEINT;
}
FMOD_SOUND_FORMAT :: enum s32 {
NONE :: 0;
PCM8 :: 1;
PCM16 :: 2;
PCM24 :: 3;
PCM32 :: 4;
PCMFLOAT :: 5;
BITSTREAM :: 6;
MAX :: 7;
FORCEINT :: 65536;
FMOD_SOUND_FORMAT_NONE :: NONE;
FMOD_SOUND_FORMAT_PCM8 :: PCM8;
FMOD_SOUND_FORMAT_PCM16 :: PCM16;
FMOD_SOUND_FORMAT_PCM24 :: PCM24;
FMOD_SOUND_FORMAT_PCM32 :: PCM32;
FMOD_SOUND_FORMAT_PCMFLOAT :: PCMFLOAT;
FMOD_SOUND_FORMAT_BITSTREAM :: BITSTREAM;
FMOD_SOUND_FORMAT_MAX :: MAX;
FMOD_SOUND_FORMAT_FORCEINT :: FORCEINT;
}
FMOD_OPENSTATE :: enum s32 {
READY :: 0;
LOADING :: 1;
ERROR :: 2;
CONNECTING :: 3;
BUFFERING :: 4;
SEEKING :: 5;
PLAYING :: 6;
SETPOSITION :: 7;
MAX :: 8;
FORCEINT :: 65536;
FMOD_OPENSTATE_READY :: READY;
FMOD_OPENSTATE_LOADING :: LOADING;
FMOD_OPENSTATE_ERROR :: ERROR;
FMOD_OPENSTATE_CONNECTING :: CONNECTING;
FMOD_OPENSTATE_BUFFERING :: BUFFERING;
FMOD_OPENSTATE_SEEKING :: SEEKING;
FMOD_OPENSTATE_PLAYING :: PLAYING;
FMOD_OPENSTATE_SETPOSITION :: SETPOSITION;
FMOD_OPENSTATE_MAX :: MAX;
FMOD_OPENSTATE_FORCEINT :: FORCEINT;
}
FMOD_SOUNDGROUP_BEHAVIOR :: enum s32 {
FAIL :: 0;
MUTE :: 1;
STEALLOWEST :: 2;
MAX :: 3;
FORCEINT :: 65536;
FMOD_SOUNDGROUP_BEHAVIOR_FAIL :: FAIL;
FMOD_SOUNDGROUP_BEHAVIOR_MUTE :: MUTE;
FMOD_SOUNDGROUP_BEHAVIOR_STEALLOWEST :: STEALLOWEST;
FMOD_SOUNDGROUP_BEHAVIOR_MAX :: MAX;
FMOD_SOUNDGROUP_BEHAVIOR_FORCEINT :: FORCEINT;
}
FMOD_CHANNELCONTROL_CALLBACK_TYPE :: enum s32 {
END :: 0;
VIRTUALVOICE :: 1;
SYNCPOINT :: 2;
OCCLUSION :: 3;
MAX :: 4;
FORCEINT :: 65536;
FMOD_CHANNELCONTROL_CALLBACK_END :: END;
FMOD_CHANNELCONTROL_CALLBACK_VIRTUALVOICE :: VIRTUALVOICE;
FMOD_CHANNELCONTROL_CALLBACK_SYNCPOINT :: SYNCPOINT;
FMOD_CHANNELCONTROL_CALLBACK_OCCLUSION :: OCCLUSION;
FMOD_CHANNELCONTROL_CALLBACK_MAX :: MAX;
FMOD_CHANNELCONTROL_CALLBACK_FORCEINT :: FORCEINT;
}
FMOD_CHANNELCONTROL_DSP_INDEX :: enum s32 {
HEAD :: -1;
FADER :: -2;
TAIL :: -3;
FORCEINT :: 65536;
FMOD_CHANNELCONTROL_DSP_HEAD :: HEAD;
FMOD_CHANNELCONTROL_DSP_FADER :: FADER;
FMOD_CHANNELCONTROL_DSP_TAIL :: TAIL;
FMOD_CHANNELCONTROL_DSP_FORCEINT :: FORCEINT;
}
FMOD_ERRORCALLBACK_INSTANCETYPE :: enum s32 {
NONE :: 0;
SYSTEM :: 1;
CHANNEL :: 2;
CHANNELGROUP :: 3;
CHANNELCONTROL :: 4;
SOUND :: 5;
SOUNDGROUP :: 6;
DSP :: 7;
DSPCONNECTION :: 8;
GEOMETRY :: 9;
REVERB3D :: 10;
STUDIO_SYSTEM :: 11;
STUDIO_EVENTDESCRIPTION :: 12;
STUDIO_EVENTINSTANCE :: 13;
STUDIO_PARAMETERINSTANCE :: 14;
STUDIO_BUS :: 15;
STUDIO_VCA :: 16;
STUDIO_BANK :: 17;
STUDIO_COMMANDREPLAY :: 18;
FORCEINT :: 65536;
FMOD_ERRORCALLBACK_INSTANCETYPE_NONE :: NONE;
FMOD_ERRORCALLBACK_INSTANCETYPE_SYSTEM :: SYSTEM;
FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNEL :: CHANNEL;
FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELGROUP :: CHANNELGROUP;
FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELCONTROL :: CHANNELCONTROL;
FMOD_ERRORCALLBACK_INSTANCETYPE_SOUND :: SOUND;
FMOD_ERRORCALLBACK_INSTANCETYPE_SOUNDGROUP :: SOUNDGROUP;
FMOD_ERRORCALLBACK_INSTANCETYPE_DSP :: DSP;
FMOD_ERRORCALLBACK_INSTANCETYPE_DSPCONNECTION :: DSPCONNECTION;
FMOD_ERRORCALLBACK_INSTANCETYPE_GEOMETRY :: GEOMETRY;
FMOD_ERRORCALLBACK_INSTANCETYPE_REVERB3D :: REVERB3D;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_SYSTEM :: STUDIO_SYSTEM;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_EVENTDESCRIPTION :: STUDIO_EVENTDESCRIPTION;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_EVENTINSTANCE :: STUDIO_EVENTINSTANCE;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_PARAMETERINSTANCE :: STUDIO_PARAMETERINSTANCE;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_BUS :: STUDIO_BUS;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_VCA :: STUDIO_VCA;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_BANK :: STUDIO_BANK;
FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_COMMANDREPLAY :: STUDIO_COMMANDREPLAY;
FMOD_ERRORCALLBACK_INSTANCETYPE_FORCEINT :: FORCEINT;
}
FMOD_DSP_RESAMPLER :: enum s32 {
DEFAULT :: 0;
NOINTERP :: 1;
LINEAR :: 2;
CUBIC :: 3;
SPLINE :: 4;
MAX :: 5;
FORCEINT :: 65536;
FMOD_DSP_RESAMPLER_DEFAULT :: DEFAULT;
FMOD_DSP_RESAMPLER_NOINTERP :: NOINTERP;
FMOD_DSP_RESAMPLER_LINEAR :: LINEAR;
FMOD_DSP_RESAMPLER_CUBIC :: CUBIC;
FMOD_DSP_RESAMPLER_SPLINE :: SPLINE;
FMOD_DSP_RESAMPLER_MAX :: MAX;
FMOD_DSP_RESAMPLER_FORCEINT :: FORCEINT;
}
FMOD_DSP_CALLBACK_TYPE :: enum s32 {
DATAPARAMETERRELEASE :: 0;
MAX :: 1;
FORCEINT :: 65536;
FMOD_DSP_CALLBACK_DATAPARAMETERRELEASE :: DATAPARAMETERRELEASE;
FMOD_DSP_CALLBACK_MAX :: MAX;
FMOD_DSP_CALLBACK_FORCEINT :: FORCEINT;
}
FMOD_DSPCONNECTION_TYPE :: enum s32 {
STANDARD :: 0;
SIDECHAIN :: 1;
SEND :: 2;
SEND_SIDECHAIN :: 3;
MAX :: 4;
FORCEINT :: 65536;
FMOD_DSPCONNECTION_TYPE_STANDARD :: STANDARD;
FMOD_DSPCONNECTION_TYPE_SIDECHAIN :: SIDECHAIN;
FMOD_DSPCONNECTION_TYPE_SEND :: SEND;
FMOD_DSPCONNECTION_TYPE_SEND_SIDECHAIN :: SEND_SIDECHAIN;
FMOD_DSPCONNECTION_TYPE_MAX :: MAX;
FMOD_DSPCONNECTION_TYPE_FORCEINT :: FORCEINT;
}
FMOD_TAGTYPE :: enum s32 {
UNKNOWN :: 0;
ID3V1 :: 1;
ID3V2 :: 2;
VORBISCOMMENT :: 3;
SHOUTCAST :: 4;
ICECAST :: 5;
ASF :: 6;
MIDI :: 7;
PLAYLIST :: 8;
FMOD :: 9;
USER :: 10;
MAX :: 11;
FORCEINT :: 65536;
FMOD_TAGTYPE_UNKNOWN :: UNKNOWN;
FMOD_TAGTYPE_ID3V1 :: ID3V1;
FMOD_TAGTYPE_ID3V2 :: ID3V2;
FMOD_TAGTYPE_VORBISCOMMENT :: VORBISCOMMENT;
FMOD_TAGTYPE_SHOUTCAST :: SHOUTCAST;
FMOD_TAGTYPE_ICECAST :: ICECAST;
FMOD_TAGTYPE_ASF :: ASF;
FMOD_TAGTYPE_MIDI :: MIDI;
FMOD_TAGTYPE_PLAYLIST :: PLAYLIST;
FMOD_TAGTYPE_FMOD :: FMOD;
FMOD_TAGTYPE_USER :: USER;
FMOD_TAGTYPE_MAX :: MAX;
FMOD_TAGTYPE_FORCEINT :: FORCEINT;
}
FMOD_TAGDATATYPE :: enum s32 {
BINARY :: 0;
INT :: 1;
FLOAT :: 2;
STRING :: 3;
STRING_UTF16 :: 4;
STRING_UTF16BE :: 5;
STRING_UTF8 :: 6;
MAX :: 7;
FORCEINT :: 65536;
FMOD_TAGDATATYPE_BINARY :: BINARY;
FMOD_TAGDATATYPE_INT :: INT;
FMOD_TAGDATATYPE_FLOAT :: FLOAT;
FMOD_TAGDATATYPE_STRING :: STRING;
FMOD_TAGDATATYPE_STRING_UTF16 :: STRING_UTF16;
FMOD_TAGDATATYPE_STRING_UTF16BE :: STRING_UTF16BE;
FMOD_TAGDATATYPE_STRING_UTF8 :: STRING_UTF8;
FMOD_TAGDATATYPE_MAX :: MAX;
FMOD_TAGDATATYPE_FORCEINT :: FORCEINT;
}
FMOD_PORT_TYPE :: enum s32 {
MUSIC :: 0;
COPYRIGHT_MUSIC :: 1;
VOICE :: 2;
CONTROLLER :: 3;
PERSONAL :: 4;
VIBRATION :: 5;
AUX :: 6;
MAX :: 7;
FORCEINT :: 65536;
FMOD_PORT_TYPE_MUSIC :: MUSIC;
FMOD_PORT_TYPE_COPYRIGHT_MUSIC :: COPYRIGHT_MUSIC;
FMOD_PORT_TYPE_VOICE :: VOICE;
FMOD_PORT_TYPE_CONTROLLER :: CONTROLLER;
FMOD_PORT_TYPE_PERSONAL :: PERSONAL;
FMOD_PORT_TYPE_VIBRATION :: VIBRATION;
FMOD_PORT_TYPE_AUX :: AUX;
FMOD_PORT_TYPE_MAX :: MAX;
FMOD_PORT_TYPE_FORCEINT :: FORCEINT;
}
/*
FMOD callbacks
*/
FMOD_DEBUG_CALLBACK :: #type (flags: FMOD_DEBUG_FLAGS, file: *u8, line: s32, func: *u8, message: *u8) -> FMOD_RESULT #c_call;
FMOD_SYSTEM_CALLBACK :: #type (system: *FMOD_SYSTEM, type: FMOD_SYSTEM_CALLBACK_TYPE, commanddata1: *void, commanddata2: *void, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_CHANNELCONTROL_CALLBACK :: #type (channelcontrol: *FMOD_CHANNELCONTROL, controltype: FMOD_CHANNELCONTROL_TYPE, callbacktype: FMOD_CHANNELCONTROL_CALLBACK_TYPE, commanddata1: *void, commanddata2: *void) -> FMOD_RESULT #c_call;
FMOD_DSP_CALLBACK :: #type (dsp: *FMOD_DSP, type: FMOD_DSP_CALLBACK_TYPE, data: *void) -> FMOD_RESULT #c_call;
FMOD_SOUND_NONBLOCK_CALLBACK :: #type (sound: *FMOD_SOUND, result: FMOD_RESULT) -> FMOD_RESULT #c_call;
FMOD_SOUND_PCMREAD_CALLBACK :: #type (sound: *FMOD_SOUND, data: *void, datalen: u32) -> FMOD_RESULT #c_call;
FMOD_SOUND_PCMSETPOS_CALLBACK :: #type (sound: *FMOD_SOUND, subsound: s32, position: u32, postype: FMOD_TIMEUNIT) -> FMOD_RESULT #c_call;
FMOD_FILE_OPEN_CALLBACK :: #type (name: *u8, filesize: *u32, handle: **void, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_FILE_CLOSE_CALLBACK :: #type (handle: *void, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_FILE_READ_CALLBACK :: #type (handle: *void, buffer: *void, sizebytes: u32, bytesread: *u32, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_FILE_SEEK_CALLBACK :: #type (handle: *void, pos: u32, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_FILE_ASYNCREAD_CALLBACK :: #type (info: *FMOD_ASYNCREADINFO, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_FILE_ASYNCCANCEL_CALLBACK :: #type (info: *FMOD_ASYNCREADINFO, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_FILE_ASYNCDONE_FUNC :: #type (info: *FMOD_ASYNCREADINFO, result: FMOD_RESULT) -> void #c_call;
FMOD_MEMORY_ALLOC_CALLBACK :: #type (size: u32, type: FMOD_MEMORY_TYPE, sourcestr: *u8) -> *void #c_call;
FMOD_MEMORY_REALLOC_CALLBACK :: #type (ptr: *void, size: u32, type: FMOD_MEMORY_TYPE, sourcestr: *u8) -> *void #c_call;
FMOD_MEMORY_FREE_CALLBACK :: #type (ptr: *void, type: FMOD_MEMORY_TYPE, sourcestr: *u8) -> void #c_call;
FMOD_3D_ROLLOFF_CALLBACK :: #type (channelcontrol: *FMOD_CHANNELCONTROL, distance: float) -> float #c_call;
/*
FMOD structs
*/
FMOD_ASYNCREADINFO :: struct {
handle: *void;
offset: u32;
sizebytes: u32;
priority: s32;
userdata: *void;
buffer: *void;
bytesread: u32;
done: FMOD_FILE_ASYNCDONE_FUNC;
}
FMOD_VECTOR :: struct {
x: float;
y: float;
z: float;
}
FMOD_3D_ATTRIBUTES :: struct {
position: FMOD_VECTOR;
velocity: FMOD_VECTOR;
forward: FMOD_VECTOR;
up: FMOD_VECTOR;
}
FMOD_GUID :: struct {
Data1: u32;
Data2: u16;
Data3: u16;
Data4: [8] u8;
}
FMOD_PLUGINLIST :: struct {
type: FMOD_PLUGINTYPE;
description: *void;
}
FMOD_ADVANCEDSETTINGS :: struct {
cbSize: s32;
maxMPEGCodecs: s32;
maxADPCMCodecs: s32;
maxXMACodecs: s32;
maxVorbisCodecs: s32;
maxAT9Codecs: s32;
maxFADPCMCodecs: s32;
maxPCMCodecs: s32;
ASIONumChannels: s32;
ASIOChannelList: **u8;
ASIOSpeakerList: *FMOD_SPEAKER;
vol0virtualvol: float;
defaultDecodeBufferSize: u32;
profilePort: u16;
geometryMaxFadeTime: u32;
distanceFilterCenterFreq: float;
reverb3Dinstance: s32;
DSPBufferPoolSize: s32;
resamplerMethod: FMOD_DSP_RESAMPLER;
randomSeed: u32;
maxConvolutionThreads: s32;
maxOpusCodecs: s32;
}
FMOD_TAG :: struct {
type: FMOD_TAGTYPE;
datatype: FMOD_TAGDATATYPE;
name: *u8;
data: *void;
datalen: u32;
updated: FMOD_BOOL;
}
FMOD_CREATESOUNDEXINFO :: struct {
cbsize: s32;
length: u32;
fileoffset: u32;
numchannels: s32;
defaultfrequency: s32;
format: FMOD_SOUND_FORMAT;
decodebuffersize: u32;
initialsubsound: s32;
numsubsounds: s32;
inclusionlist: *s32;
inclusionlistnum: s32;
pcmreadcallback: FMOD_SOUND_PCMREAD_CALLBACK;
pcmsetposcallback: FMOD_SOUND_PCMSETPOS_CALLBACK;
nonblockcallback: FMOD_SOUND_NONBLOCK_CALLBACK;
dlsname: *u8;
encryptionkey: *u8;
maxpolyphony: s32;
userdata: *void;
suggestedsoundtype: FMOD_SOUND_TYPE;
fileuseropen: FMOD_FILE_OPEN_CALLBACK;
fileuserclose: FMOD_FILE_CLOSE_CALLBACK;
fileuserread: FMOD_FILE_READ_CALLBACK;
fileuserseek: FMOD_FILE_SEEK_CALLBACK;
fileuserasyncread: FMOD_FILE_ASYNCREAD_CALLBACK;
fileuserasynccancel: FMOD_FILE_ASYNCCANCEL_CALLBACK;
fileuserdata: *void;
filebuffersize: s32;
channelorder: FMOD_CHANNELORDER;
initialsoundgroup: *FMOD_SOUNDGROUP;
initialseekposition: u32;
initialseekpostype: FMOD_TIMEUNIT;
ignoresetfilesystem: s32;
audioqueuepolicy: u32;
minmidigranularity: u32;
nonblockthreadid: s32;
fsbguid: *FMOD_GUID;
}
FMOD_REVERB_PROPERTIES :: struct {
DecayTime: float;
EarlyDelay: float;
LateDelay: float;
HFReference: float;
HFDecayRatio: float;
Diffusion: float;
Density: float;
LowShelfFrequency: float;
LowShelfGain: float;
HighCut: float;
EarlyLateMix: float;
WetLevel: float;
}
FMOD_ERRORCALLBACK_INFO :: struct {
result: FMOD_RESULT;
instancetype: FMOD_ERRORCALLBACK_INSTANCETYPE;
instance: *void;
functionname: *u8;
functionparams: *u8;
}
FMOD_CPU_USAGE :: struct {
dsp: float;
stream: float;
geometry: float;
update: float;
convolution1: float;
convolution2: float;
}
FMOD_DSP_DATA_PARAMETER_INFO :: struct {
data: *void;
length: u32;
index: s32;
}
FMOD_CODEC_SEEK_METHOD :: s32;
/*
Codec callbacks
*/
FMOD_CODEC_OPEN_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE, usermode: FMOD_MODE, userexinfo: *FMOD_CREATESOUNDEXINFO) -> FMOD_RESULT #c_call;
FMOD_CODEC_CLOSE_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE) -> FMOD_RESULT #c_call;
FMOD_CODEC_READ_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE, buffer: *void, samples_in: u32, samples_out: *u32) -> FMOD_RESULT #c_call;
FMOD_CODEC_GETLENGTH_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE, length: *u32, lengthtype: FMOD_TIMEUNIT) -> FMOD_RESULT #c_call;
FMOD_CODEC_SETPOSITION_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE, subsound: s32, position: u32, postype: FMOD_TIMEUNIT) -> FMOD_RESULT #c_call;
FMOD_CODEC_GETPOSITION_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE, position: *u32, postype: FMOD_TIMEUNIT) -> FMOD_RESULT #c_call;
FMOD_CODEC_SOUNDCREATE_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE, subsound: s32, sound: *FMOD_SOUND) -> FMOD_RESULT #c_call;
FMOD_CODEC_GETWAVEFORMAT_CALLBACK :: #type (codec_state: *FMOD_CODEC_STATE, index: s32, waveformat: *FMOD_CODEC_WAVEFORMAT) -> FMOD_RESULT #c_call;
/*
Codec functions
*/
FMOD_CODEC_METADATA_FUNC :: #type (codec_state: *FMOD_CODEC_STATE, tagtype: FMOD_TAGTYPE, name: *u8, data: *void, datalen: u32, datatype: FMOD_TAGDATATYPE, unique: s32) -> FMOD_RESULT #c_call;
FMOD_CODEC_ALLOC_FUNC :: #type (size: u32, align: u32, file: *u8, line: s32) -> *void #c_call;
FMOD_CODEC_FREE_FUNC :: #type (ptr: *void, file: *u8, line: s32) -> void #c_call;
FMOD_CODEC_LOG_FUNC :: #type (level: FMOD_DEBUG_FLAGS, file: *u8, line: s32, function: *u8, _string: *u8, __args: ..Any) -> void #c_call;
FMOD_CODEC_FILE_READ_FUNC :: #type (codec_state: *FMOD_CODEC_STATE, buffer: *void, sizebytes: u32, bytesread: *u32) -> FMOD_RESULT #c_call;
FMOD_CODEC_FILE_SEEK_FUNC :: #type (codec_state: *FMOD_CODEC_STATE, pos: u32, method: FMOD_CODEC_SEEK_METHOD) -> FMOD_RESULT #c_call;
FMOD_CODEC_FILE_TELL_FUNC :: #type (codec_state: *FMOD_CODEC_STATE, pos: *u32) -> FMOD_RESULT #c_call;
FMOD_CODEC_FILE_SIZE_FUNC :: #type (codec_state: *FMOD_CODEC_STATE, size: *u32) -> FMOD_RESULT #c_call;
/*
Codec structures
*/
FMOD_CODEC_DESCRIPTION :: struct {
apiversion: u32;
name: *u8;
version: u32;
defaultasstream: s32;
timeunits: FMOD_TIMEUNIT;
open: FMOD_CODEC_OPEN_CALLBACK;
close: FMOD_CODEC_CLOSE_CALLBACK;
read: FMOD_CODEC_READ_CALLBACK;
getlength: FMOD_CODEC_GETLENGTH_CALLBACK;
setposition: FMOD_CODEC_SETPOSITION_CALLBACK;
getposition: FMOD_CODEC_GETPOSITION_CALLBACK;
soundcreate: FMOD_CODEC_SOUNDCREATE_CALLBACK;
getwaveformat: FMOD_CODEC_GETWAVEFORMAT_CALLBACK;
}
FMOD_CODEC_WAVEFORMAT :: struct {
name: *u8;
format: FMOD_SOUND_FORMAT;
channels: s32;
frequency: s32;
lengthbytes: u32;
lengthpcm: u32;
pcmblocksize: u32;
loopstart: s32;
loopend: s32;
mode: FMOD_MODE;
channelmask: FMOD_CHANNELMASK;
channelorder: FMOD_CHANNELORDER;
peakvolume: float;
}
FMOD_CODEC_STATE_FUNCTIONS :: struct {
metadata: FMOD_CODEC_METADATA_FUNC;
alloc: FMOD_CODEC_ALLOC_FUNC;
free: FMOD_CODEC_FREE_FUNC;
log: FMOD_CODEC_LOG_FUNC;
read: FMOD_CODEC_FILE_READ_FUNC;
seek: FMOD_CODEC_FILE_SEEK_FUNC;
tell: FMOD_CODEC_FILE_TELL_FUNC;
size: FMOD_CODEC_FILE_SIZE_FUNC;
}
FMOD_CODEC_STATE :: struct {
plugindata: *void;
waveformat: *FMOD_CODEC_WAVEFORMAT;
functions: *FMOD_CODEC_STATE_FUNCTIONS;
numsubsounds: s32;
}
FMOD_DSP_TYPE :: enum s32 {
UNKNOWN :: 0;
MIXER :: 1;
OSCILLATOR :: 2;
LOWPASS :: 3;
ITLOWPASS :: 4;
HIGHPASS :: 5;
ECHO :: 6;
FADER :: 7;
FLANGE :: 8;
DISTORTION :: 9;
NORMALIZE :: 10;
LIMITER :: 11;
PARAMEQ :: 12;
PITCHSHIFT :: 13;
CHORUS :: 14;
VSTPLUGIN :: 15;
WINAMPPLUGIN :: 16;
ITECHO :: 17;
COMPRESSOR :: 18;
SFXREVERB :: 19;
LOWPASS_SIMPLE :: 20;
DELAY :: 21;
TREMOLO :: 22;
LADSPAPLUGIN :: 23;
SEND :: 24;
RETURN :: 25;
HIGHPASS_SIMPLE :: 26;
PAN :: 27;
THREE_EQ :: 28;
FFT :: 29;
LOUDNESS_METER :: 30;
ENVELOPEFOLLOWER :: 31;
CONVOLUTIONREVERB :: 32;
CHANNELMIX :: 33;
TRANSCEIVER :: 34;
OBJECTPAN :: 35;
MULTIBAND_EQ :: 36;
MAX :: 37;
FORCEINT :: 65536;
FMOD_DSP_TYPE_UNKNOWN :: UNKNOWN;
FMOD_DSP_TYPE_MIXER :: MIXER;
FMOD_DSP_TYPE_OSCILLATOR :: OSCILLATOR;
FMOD_DSP_TYPE_LOWPASS :: LOWPASS;
FMOD_DSP_TYPE_ITLOWPASS :: ITLOWPASS;
FMOD_DSP_TYPE_HIGHPASS :: HIGHPASS;
FMOD_DSP_TYPE_ECHO :: ECHO;
FMOD_DSP_TYPE_FADER :: FADER;
FMOD_DSP_TYPE_FLANGE :: FLANGE;
FMOD_DSP_TYPE_DISTORTION :: DISTORTION;
FMOD_DSP_TYPE_NORMALIZE :: NORMALIZE;
FMOD_DSP_TYPE_LIMITER :: LIMITER;
FMOD_DSP_TYPE_PARAMEQ :: PARAMEQ;
FMOD_DSP_TYPE_PITCHSHIFT :: PITCHSHIFT;
FMOD_DSP_TYPE_CHORUS :: CHORUS;
FMOD_DSP_TYPE_VSTPLUGIN :: VSTPLUGIN;
FMOD_DSP_TYPE_WINAMPPLUGIN :: WINAMPPLUGIN;
FMOD_DSP_TYPE_ITECHO :: ITECHO;
FMOD_DSP_TYPE_COMPRESSOR :: COMPRESSOR;
FMOD_DSP_TYPE_SFXREVERB :: SFXREVERB;
FMOD_DSP_TYPE_LOWPASS_SIMPLE :: LOWPASS_SIMPLE;
FMOD_DSP_TYPE_DELAY :: DELAY;
FMOD_DSP_TYPE_TREMOLO :: TREMOLO;
FMOD_DSP_TYPE_LADSPAPLUGIN :: LADSPAPLUGIN;
FMOD_DSP_TYPE_SEND :: SEND;
FMOD_DSP_TYPE_RETURN :: RETURN;
FMOD_DSP_TYPE_HIGHPASS_SIMPLE :: HIGHPASS_SIMPLE;
FMOD_DSP_TYPE_PAN :: PAN;
FMOD_DSP_TYPE_THREE_EQ :: THREE_EQ;
FMOD_DSP_TYPE_FFT :: FFT;
FMOD_DSP_TYPE_LOUDNESS_METER :: LOUDNESS_METER;
FMOD_DSP_TYPE_ENVELOPEFOLLOWER :: ENVELOPEFOLLOWER;
FMOD_DSP_TYPE_CONVOLUTIONREVERB :: CONVOLUTIONREVERB;
FMOD_DSP_TYPE_CHANNELMIX :: CHANNELMIX;
FMOD_DSP_TYPE_TRANSCEIVER :: TRANSCEIVER;
FMOD_DSP_TYPE_OBJECTPAN :: OBJECTPAN;
FMOD_DSP_TYPE_MULTIBAND_EQ :: MULTIBAND_EQ;
FMOD_DSP_TYPE_MAX :: MAX;
FMOD_DSP_TYPE_FORCEINT :: FORCEINT;
}
/*
===================================================================================================
FMOD built in effect parameters.
Use DSP::setParameter with these enums for the 'index' parameter.
===================================================================================================
*/
FMOD_DSP_OSCILLATOR :: enum s32 {
TYPE :: 0;
RATE :: 1;
FMOD_DSP_OSCILLATOR_TYPE :: TYPE;
FMOD_DSP_OSCILLATOR_RATE :: RATE;
}
FMOD_DSP_LOWPASS :: enum s32 {
CUTOFF :: 0;
RESONANCE :: 1;
FMOD_DSP_LOWPASS_CUTOFF :: CUTOFF;
FMOD_DSP_LOWPASS_RESONANCE :: RESONANCE;
}
FMOD_DSP_ITLOWPASS :: enum s32 {
CUTOFF :: 0;
RESONANCE :: 1;
FMOD_DSP_ITLOWPASS_CUTOFF :: CUTOFF;
FMOD_DSP_ITLOWPASS_RESONANCE :: RESONANCE;
}
FMOD_DSP_HIGHPASS :: enum s32 {
CUTOFF :: 0;
RESONANCE :: 1;
FMOD_DSP_HIGHPASS_CUTOFF :: CUTOFF;
FMOD_DSP_HIGHPASS_RESONANCE :: RESONANCE;
}
FMOD_DSP_ECHO :: enum s32 {
DELAY :: 0;
FEEDBACK :: 1;
DRYLEVEL :: 2;
WETLEVEL :: 3;
FMOD_DSP_ECHO_DELAY :: DELAY;
FMOD_DSP_ECHO_FEEDBACK :: FEEDBACK;
FMOD_DSP_ECHO_DRYLEVEL :: DRYLEVEL;
FMOD_DSP_ECHO_WETLEVEL :: WETLEVEL;
}
FMOD_DSP_FADER :: enum s32 {
GAIN :: 0;
OVERALL_GAIN :: 1;
FMOD_DSP_FADER_GAIN :: GAIN;
FMOD_DSP_FADER_OVERALL_GAIN :: OVERALL_GAIN;
}
FMOD_DSP_FLANGE :: enum s32 {
MIX :: 0;
DEPTH :: 1;
RATE :: 2;
FMOD_DSP_FLANGE_MIX :: MIX;
FMOD_DSP_FLANGE_DEPTH :: DEPTH;
FMOD_DSP_FLANGE_RATE :: RATE;
}
FMOD_DSP_DISTORTION :: enum s32 {
FMOD_DSP_DISTORTION_LEVEL :: 0;
}
FMOD_DSP_NORMALIZE :: enum s32 {
FADETIME :: 0;
THRESHOLD :: 1;
MAXAMP :: 2;
FMOD_DSP_NORMALIZE_FADETIME :: FADETIME;
FMOD_DSP_NORMALIZE_THRESHOLD :: THRESHOLD;
FMOD_DSP_NORMALIZE_MAXAMP :: MAXAMP;
}
FMOD_DSP_LIMITER :: enum s32 {
RELEASETIME :: 0;
CEILING :: 1;
MAXIMIZERGAIN :: 2;
MODE :: 3;
FMOD_DSP_LIMITER_RELEASETIME :: RELEASETIME;
FMOD_DSP_LIMITER_CEILING :: CEILING;
FMOD_DSP_LIMITER_MAXIMIZERGAIN :: MAXIMIZERGAIN;
FMOD_DSP_LIMITER_MODE :: MODE;
}
FMOD_DSP_PARAMEQ :: enum s32 {
CENTER :: 0;
BANDWIDTH :: 1;
GAIN :: 2;
FMOD_DSP_PARAMEQ_CENTER :: CENTER;
FMOD_DSP_PARAMEQ_BANDWIDTH :: BANDWIDTH;
FMOD_DSP_PARAMEQ_GAIN :: GAIN;
}
FMOD_DSP_MULTIBAND_EQ :: enum s32 {
A_FILTER :: 0;
A_FREQUENCY :: 1;
A_Q :: 2;
A_GAIN :: 3;
B_FILTER :: 4;
B_FREQUENCY :: 5;
B_Q :: 6;
B_GAIN :: 7;
C_FILTER :: 8;
C_FREQUENCY :: 9;
C_Q :: 10;
C_GAIN :: 11;
D_FILTER :: 12;
D_FREQUENCY :: 13;
D_Q :: 14;
D_GAIN :: 15;
E_FILTER :: 16;
E_FREQUENCY :: 17;
E_Q :: 18;
E_GAIN :: 19;
FMOD_DSP_MULTIBAND_EQ_A_FILTER :: A_FILTER;
FMOD_DSP_MULTIBAND_EQ_A_FREQUENCY :: A_FREQUENCY;
FMOD_DSP_MULTIBAND_EQ_A_Q :: A_Q;
FMOD_DSP_MULTIBAND_EQ_A_GAIN :: A_GAIN;
FMOD_DSP_MULTIBAND_EQ_B_FILTER :: B_FILTER;
FMOD_DSP_MULTIBAND_EQ_B_FREQUENCY :: B_FREQUENCY;
FMOD_DSP_MULTIBAND_EQ_B_Q :: B_Q;
FMOD_DSP_MULTIBAND_EQ_B_GAIN :: B_GAIN;
FMOD_DSP_MULTIBAND_EQ_C_FILTER :: C_FILTER;
FMOD_DSP_MULTIBAND_EQ_C_FREQUENCY :: C_FREQUENCY;
FMOD_DSP_MULTIBAND_EQ_C_Q :: C_Q;
FMOD_DSP_MULTIBAND_EQ_C_GAIN :: C_GAIN;
FMOD_DSP_MULTIBAND_EQ_D_FILTER :: D_FILTER;
FMOD_DSP_MULTIBAND_EQ_D_FREQUENCY :: D_FREQUENCY;
FMOD_DSP_MULTIBAND_EQ_D_Q :: D_Q;
FMOD_DSP_MULTIBAND_EQ_D_GAIN :: D_GAIN;
FMOD_DSP_MULTIBAND_EQ_E_FILTER :: E_FILTER;
FMOD_DSP_MULTIBAND_EQ_E_FREQUENCY :: E_FREQUENCY;
FMOD_DSP_MULTIBAND_EQ_E_Q :: E_Q;
FMOD_DSP_MULTIBAND_EQ_E_GAIN :: E_GAIN;
}
FMOD_DSP_MULTIBAND_EQ_FILTER_TYPE :: enum s32 {
DISABLED :: 0;
LOWPASS_12DB :: 1;
LOWPASS_24DB :: 2;
LOWPASS_48DB :: 3;
HIGHPASS_12DB :: 4;
HIGHPASS_24DB :: 5;
HIGHPASS_48DB :: 6;
LOWSHELF :: 7;
HIGHSHELF :: 8;
PEAKING :: 9;
BANDPASS :: 10;
NOTCH :: 11;
ALLPASS :: 12;
FMOD_DSP_MULTIBAND_EQ_FILTER_DISABLED :: DISABLED;
FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_12DB :: LOWPASS_12DB;
FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_24DB :: LOWPASS_24DB;
FMOD_DSP_MULTIBAND_EQ_FILTER_LOWPASS_48DB :: LOWPASS_48DB;
FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_12DB :: HIGHPASS_12DB;
FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_24DB :: HIGHPASS_24DB;
FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHPASS_48DB :: HIGHPASS_48DB;
FMOD_DSP_MULTIBAND_EQ_FILTER_LOWSHELF :: LOWSHELF;
FMOD_DSP_MULTIBAND_EQ_FILTER_HIGHSHELF :: HIGHSHELF;
FMOD_DSP_MULTIBAND_EQ_FILTER_PEAKING :: PEAKING;
FMOD_DSP_MULTIBAND_EQ_FILTER_BANDPASS :: BANDPASS;
FMOD_DSP_MULTIBAND_EQ_FILTER_NOTCH :: NOTCH;
FMOD_DSP_MULTIBAND_EQ_FILTER_ALLPASS :: ALLPASS;
}
FMOD_DSP_PITCHSHIFT :: enum s32 {
PITCH :: 0;
FFTSIZE :: 1;
OVERLAP :: 2;
MAXCHANNELS :: 3;
FMOD_DSP_PITCHSHIFT_PITCH :: PITCH;
FMOD_DSP_PITCHSHIFT_FFTSIZE :: FFTSIZE;
FMOD_DSP_PITCHSHIFT_OVERLAP :: OVERLAP;
FMOD_DSP_PITCHSHIFT_MAXCHANNELS :: MAXCHANNELS;
}
FMOD_DSP_CHORUS :: enum s32 {
MIX :: 0;
RATE :: 1;
DEPTH :: 2;
FMOD_DSP_CHORUS_MIX :: MIX;
FMOD_DSP_CHORUS_RATE :: RATE;
FMOD_DSP_CHORUS_DEPTH :: DEPTH;
}
FMOD_DSP_ITECHO :: enum s32 {
WETDRYMIX :: 0;
FEEDBACK :: 1;
LEFTDELAY :: 2;
RIGHTDELAY :: 3;
PANDELAY :: 4;
FMOD_DSP_ITECHO_WETDRYMIX :: WETDRYMIX;
FMOD_DSP_ITECHO_FEEDBACK :: FEEDBACK;
FMOD_DSP_ITECHO_LEFTDELAY :: LEFTDELAY;
FMOD_DSP_ITECHO_RIGHTDELAY :: RIGHTDELAY;
FMOD_DSP_ITECHO_PANDELAY :: PANDELAY;
}
FMOD_DSP_COMPRESSOR :: enum s32 {
THRESHOLD :: 0;
RATIO :: 1;
ATTACK :: 2;
RELEASE :: 3;
GAINMAKEUP :: 4;
USESIDECHAIN :: 5;
LINKED :: 6;
FMOD_DSP_COMPRESSOR_THRESHOLD :: THRESHOLD;
FMOD_DSP_COMPRESSOR_RATIO :: RATIO;
FMOD_DSP_COMPRESSOR_ATTACK :: ATTACK;
FMOD_DSP_COMPRESSOR_RELEASE :: RELEASE;
FMOD_DSP_COMPRESSOR_GAINMAKEUP :: GAINMAKEUP;
FMOD_DSP_COMPRESSOR_USESIDECHAIN :: USESIDECHAIN;
FMOD_DSP_COMPRESSOR_LINKED :: LINKED;
}
FMOD_DSP_SFXREVERB :: enum s32 {
DECAYTIME :: 0;
EARLYDELAY :: 1;
LATEDELAY :: 2;
HFREFERENCE :: 3;
HFDECAYRATIO :: 4;
DIFFUSION :: 5;
DENSITY :: 6;
LOWSHELFFREQUENCY :: 7;
LOWSHELFGAIN :: 8;
HIGHCUT :: 9;
EARLYLATEMIX :: 10;
WETLEVEL :: 11;
DRYLEVEL :: 12;
FMOD_DSP_SFXREVERB_DECAYTIME :: DECAYTIME;
FMOD_DSP_SFXREVERB_EARLYDELAY :: EARLYDELAY;
FMOD_DSP_SFXREVERB_LATEDELAY :: LATEDELAY;
FMOD_DSP_SFXREVERB_HFREFERENCE :: HFREFERENCE;
FMOD_DSP_SFXREVERB_HFDECAYRATIO :: HFDECAYRATIO;
FMOD_DSP_SFXREVERB_DIFFUSION :: DIFFUSION;
FMOD_DSP_SFXREVERB_DENSITY :: DENSITY;
FMOD_DSP_SFXREVERB_LOWSHELFFREQUENCY :: LOWSHELFFREQUENCY;
FMOD_DSP_SFXREVERB_LOWSHELFGAIN :: LOWSHELFGAIN;
FMOD_DSP_SFXREVERB_HIGHCUT :: HIGHCUT;
FMOD_DSP_SFXREVERB_EARLYLATEMIX :: EARLYLATEMIX;
FMOD_DSP_SFXREVERB_WETLEVEL :: WETLEVEL;
FMOD_DSP_SFXREVERB_DRYLEVEL :: DRYLEVEL;
}
FMOD_DSP_LOWPASS_SIMPLE :: enum s32 {
FMOD_DSP_LOWPASS_SIMPLE_CUTOFF :: 0;
}
FMOD_DSP_DELAY :: enum s32 {
CH0 :: 0;
CH1 :: 1;
CH2 :: 2;
CH3 :: 3;
CH4 :: 4;
CH5 :: 5;
CH6 :: 6;
CH7 :: 7;
CH8 :: 8;
CH9 :: 9;
CH10 :: 10;
CH11 :: 11;
CH12 :: 12;
CH13 :: 13;
CH14 :: 14;
CH15 :: 15;
MAXDELAY :: 16;
FMOD_DSP_DELAY_CH0 :: CH0;
FMOD_DSP_DELAY_CH1 :: CH1;
FMOD_DSP_DELAY_CH2 :: CH2;
FMOD_DSP_DELAY_CH3 :: CH3;
FMOD_DSP_DELAY_CH4 :: CH4;
FMOD_DSP_DELAY_CH5 :: CH5;
FMOD_DSP_DELAY_CH6 :: CH6;
FMOD_DSP_DELAY_CH7 :: CH7;
FMOD_DSP_DELAY_CH8 :: CH8;
FMOD_DSP_DELAY_CH9 :: CH9;
FMOD_DSP_DELAY_CH10 :: CH10;
FMOD_DSP_DELAY_CH11 :: CH11;
FMOD_DSP_DELAY_CH12 :: CH12;
FMOD_DSP_DELAY_CH13 :: CH13;
FMOD_DSP_DELAY_CH14 :: CH14;
FMOD_DSP_DELAY_CH15 :: CH15;
FMOD_DSP_DELAY_MAXDELAY :: MAXDELAY;
}
FMOD_DSP_TREMOLO :: enum s32 {
FREQUENCY :: 0;
DEPTH :: 1;
SHAPE :: 2;
SKEW :: 3;
DUTY :: 4;
SQUARE :: 5;
PHASE :: 6;
SPREAD :: 7;
FMOD_DSP_TREMOLO_FREQUENCY :: FREQUENCY;
FMOD_DSP_TREMOLO_DEPTH :: DEPTH;
FMOD_DSP_TREMOLO_SHAPE :: SHAPE;
FMOD_DSP_TREMOLO_SKEW :: SKEW;
FMOD_DSP_TREMOLO_DUTY :: DUTY;
FMOD_DSP_TREMOLO_SQUARE :: SQUARE;
FMOD_DSP_TREMOLO_PHASE :: PHASE;
FMOD_DSP_TREMOLO_SPREAD :: SPREAD;
}
FMOD_DSP_SEND :: enum s32 {
RETURNID :: 0;
LEVEL :: 1;
FMOD_DSP_SEND_RETURNID :: RETURNID;
FMOD_DSP_SEND_LEVEL :: LEVEL;
}
FMOD_DSP_RETURN :: enum s32 {
ID :: 0;
INPUT_SPEAKER_MODE :: 1;
FMOD_DSP_RETURN_ID :: ID;
FMOD_DSP_RETURN_INPUT_SPEAKER_MODE :: INPUT_SPEAKER_MODE;
}
FMOD_DSP_HIGHPASS_SIMPLE :: enum s32 {
FMOD_DSP_HIGHPASS_SIMPLE_CUTOFF :: 0;
}
FMOD_DSP_PAN_2D_STEREO_MODE_TYPE :: enum s32 {
TRIBUTED :: 0;
CRETE :: 1;
FMOD_DSP_PAN_2D_STEREO_MODE_DISTRIBUTED :: TRIBUTED;
FMOD_DSP_PAN_2D_STEREO_MODE_DISCRETE :: CRETE;
}
FMOD_DSP_PAN_MODE_TYPE :: enum s32 {
MONO :: 0;
STEREO :: 1;
SURROUND :: 2;
FMOD_DSP_PAN_MODE_MONO :: MONO;
FMOD_DSP_PAN_MODE_STEREO :: STEREO;
FMOD_DSP_PAN_MODE_SURROUND :: SURROUND;
}
FMOD_DSP_PAN_3D_ROLLOFF_TYPE :: enum s32 {
LINEARSQUARED :: 0;
LINEAR :: 1;
INVERSE :: 2;
INVERSETAPERED :: 3;
CUSTOM :: 4;
FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED :: LINEARSQUARED;
FMOD_DSP_PAN_3D_ROLLOFF_LINEAR :: LINEAR;
FMOD_DSP_PAN_3D_ROLLOFF_INVERSE :: INVERSE;
FMOD_DSP_PAN_3D_ROLLOFF_INVERSETAPERED :: INVERSETAPERED;
FMOD_DSP_PAN_3D_ROLLOFF_CUSTOM :: CUSTOM;
}
FMOD_DSP_PAN_3D_EXTENT_MODE_TYPE :: enum s32 {
AUTO :: 0;
USER :: 1;
OFF :: 2;
FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO :: AUTO;
FMOD_DSP_PAN_3D_EXTENT_MODE_USER :: USER;
FMOD_DSP_PAN_3D_EXTENT_MODE_OFF :: OFF;
}
FMOD_DSP_PAN :: enum s32 {
MODE :: 0;
_2D_STEREO_POSITION :: 1;
_2D_DIRECTION :: 2;
_2D_EXTENT :: 3;
_2D_ROTATION :: 4;
_2D_LFE_LEVEL :: 5;
_2D_STEREO_MODE :: 6;
_2D_STEREO_SEPARATION :: 7;
_2D_STEREO_AXIS :: 8;
ENABLED_SPEAKERS :: 9;
_3D_POSITION :: 10;
_3D_ROLLOFF :: 11;
_3D_MIN_DISTANCE :: 12;
_3D_MAX_DISTANCE :: 13;
_3D_EXTENT_MODE :: 14;
_3D_SOUND_SIZE :: 15;
_3D_MIN_EXTENT :: 16;
_3D_PAN_BLEND :: 17;
LFE_UPMIX_ENABLED :: 18;
OVERALL_GAIN :: 19;
SURROUND_SPEAKER_MODE :: 20;
_2D_HEIGHT_BLEND :: 21;
ATTENUATION_RANGE :: 22;
OVERRIDE_RANGE :: 23;
FMOD_DSP_PAN_MODE :: MODE;
FMOD_DSP_PAN_2D_STEREO_POSITION :: _2D_STEREO_POSITION;
FMOD_DSP_PAN_2D_DIRECTION :: _2D_DIRECTION;
FMOD_DSP_PAN_2D_EXTENT :: _2D_EXTENT;
FMOD_DSP_PAN_2D_ROTATION :: _2D_ROTATION;
FMOD_DSP_PAN_2D_LFE_LEVEL :: _2D_LFE_LEVEL;
FMOD_DSP_PAN_2D_STEREO_MODE :: _2D_STEREO_MODE;
FMOD_DSP_PAN_2D_STEREO_SEPARATION :: _2D_STEREO_SEPARATION;
FMOD_DSP_PAN_2D_STEREO_AXIS :: _2D_STEREO_AXIS;
FMOD_DSP_PAN_ENABLED_SPEAKERS :: ENABLED_SPEAKERS;
FMOD_DSP_PAN_3D_POSITION :: _3D_POSITION;
FMOD_DSP_PAN_3D_ROLLOFF :: _3D_ROLLOFF;
FMOD_DSP_PAN_3D_MIN_DISTANCE :: _3D_MIN_DISTANCE;
FMOD_DSP_PAN_3D_MAX_DISTANCE :: _3D_MAX_DISTANCE;
FMOD_DSP_PAN_3D_EXTENT_MODE :: _3D_EXTENT_MODE;
FMOD_DSP_PAN_3D_SOUND_SIZE :: _3D_SOUND_SIZE;
FMOD_DSP_PAN_3D_MIN_EXTENT :: _3D_MIN_EXTENT;
FMOD_DSP_PAN_3D_PAN_BLEND :: _3D_PAN_BLEND;
FMOD_DSP_PAN_LFE_UPMIX_ENABLED :: LFE_UPMIX_ENABLED;
FMOD_DSP_PAN_OVERALL_GAIN :: OVERALL_GAIN;
FMOD_DSP_PAN_SURROUND_SPEAKER_MODE :: SURROUND_SPEAKER_MODE;
FMOD_DSP_PAN_2D_HEIGHT_BLEND :: _2D_HEIGHT_BLEND;
FMOD_DSP_PAN_ATTENUATION_RANGE :: ATTENUATION_RANGE;
FMOD_DSP_PAN_OVERRIDE_RANGE :: OVERRIDE_RANGE;
}
FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_TYPE :: enum s32 {
_12DB :: 0;
_24DB :: 1;
_48DB :: 2;
FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_12DB :: _12DB;
FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_24DB :: _24DB;
FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_48DB :: _48DB;
}
FMOD_DSP_THREE_EQ :: enum s32 {
LOWGAIN :: 0;
MIDGAIN :: 1;
HIGHGAIN :: 2;
LOWCROSSOVER :: 3;
HIGHCROSSOVER :: 4;
CROSSOVERSLOPE :: 5;
FMOD_DSP_THREE_EQ_LOWGAIN :: LOWGAIN;
FMOD_DSP_THREE_EQ_MIDGAIN :: MIDGAIN;
FMOD_DSP_THREE_EQ_HIGHGAIN :: HIGHGAIN;
FMOD_DSP_THREE_EQ_LOWCROSSOVER :: LOWCROSSOVER;
FMOD_DSP_THREE_EQ_HIGHCROSSOVER :: HIGHCROSSOVER;
FMOD_DSP_THREE_EQ_CROSSOVERSLOPE :: CROSSOVERSLOPE;
}
FMOD_DSP_FFT_WINDOW :: enum s32 {
RECT :: 0;
TRIANGLE :: 1;
HAMMING :: 2;
HANNING :: 3;
BLACKMAN :: 4;
BLACKMANHARRIS :: 5;
FMOD_DSP_FFT_WINDOW_RECT :: RECT;
FMOD_DSP_FFT_WINDOW_TRIANGLE :: TRIANGLE;
FMOD_DSP_FFT_WINDOW_HAMMING :: HAMMING;
FMOD_DSP_FFT_WINDOW_HANNING :: HANNING;
FMOD_DSP_FFT_WINDOW_BLACKMAN :: BLACKMAN;
FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS :: BLACKMANHARRIS;
}
FMOD_DSP_FFT :: enum s32 {
WINDOWSIZE :: 0;
WINDOWTYPE :: 1;
SPECTRUMDATA :: 2;
DOMINANT_FREQ :: 3;
FMOD_DSP_FFT_WINDOWSIZE :: WINDOWSIZE;
FMOD_DSP_FFT_WINDOWTYPE :: WINDOWTYPE;
FMOD_DSP_FFT_SPECTRUMDATA :: SPECTRUMDATA;
FMOD_DSP_FFT_DOMINANT_FREQ :: DOMINANT_FREQ;
}
FMOD_DSP_LOUDNESS_METER :: enum s32 {
STATE :: 0;
WEIGHTING :: 1;
INFO :: 2;
FMOD_DSP_LOUDNESS_METER_STATE :: STATE;
FMOD_DSP_LOUDNESS_METER_WEIGHTING :: WEIGHTING;
FMOD_DSP_LOUDNESS_METER_INFO :: INFO;
}
FMOD_DSP_LOUDNESS_METER_STATE_TYPE :: enum s32 {
RESET_INTEGRATED :: -3;
RESET_MAXPEAK :: -2;
RESET_ALL :: -1;
PAUSED :: 0;
ANALYZING :: 1;
FMOD_DSP_LOUDNESS_METER_STATE_RESET_INTEGRATED :: RESET_INTEGRATED;
FMOD_DSP_LOUDNESS_METER_STATE_RESET_MAXPEAK :: RESET_MAXPEAK;
FMOD_DSP_LOUDNESS_METER_STATE_RESET_ALL :: RESET_ALL;
FMOD_DSP_LOUDNESS_METER_STATE_PAUSED :: PAUSED;
FMOD_DSP_LOUDNESS_METER_STATE_ANALYZING :: ANALYZING;
}
FMOD_DSP_LOUDNESS_METER_INFO_TYPE :: struct {
momentaryloudness: float;
shorttermloudness: float;
integratedloudness: float;
loudness10thpercentile: float;
loudness95thpercentile: float;
loudnesshistogram: [66] float;
maxtruepeak: float;
maxmomentaryloudness: float;
}
FMOD_DSP_LOUDNESS_METER_WEIGHTING_TYPE :: struct {
channelweight: [32] float;
}
FMOD_DSP_ENVELOPEFOLLOWER :: enum s32 {
ATTACK :: 0;
RELEASE :: 1;
ENVELOPE :: 2;
USESIDECHAIN :: 3;
FMOD_DSP_ENVELOPEFOLLOWER_ATTACK :: ATTACK;
FMOD_DSP_ENVELOPEFOLLOWER_RELEASE :: RELEASE;
FMOD_DSP_ENVELOPEFOLLOWER_ENVELOPE :: ENVELOPE;
FMOD_DSP_ENVELOPEFOLLOWER_USESIDECHAIN :: USESIDECHAIN;
}
FMOD_DSP_CONVOLUTION_REVERB :: enum s32 {
IR :: 0;
WET :: 1;
DRY :: 2;
LINKED :: 3;
FMOD_DSP_CONVOLUTION_REVERB_PARAM_IR :: IR;
FMOD_DSP_CONVOLUTION_REVERB_PARAM_WET :: WET;
FMOD_DSP_CONVOLUTION_REVERB_PARAM_DRY :: DRY;
FMOD_DSP_CONVOLUTION_REVERB_PARAM_LINKED :: LINKED;
}
FMOD_DSP_CHANNELMIX_OUTPUT :: enum s32 {
DEFAULT :: 0;
ALLMONO :: 1;
ALLSTEREO :: 2;
ALLQUAD :: 3;
ALL5POINT1 :: 4;
ALL7POINT1 :: 5;
ALLLFE :: 6;
ALL7POINT1POINT4 :: 7;
FMOD_DSP_CHANNELMIX_OUTPUT_DEFAULT :: DEFAULT;
FMOD_DSP_CHANNELMIX_OUTPUT_ALLMONO :: ALLMONO;
FMOD_DSP_CHANNELMIX_OUTPUT_ALLSTEREO :: ALLSTEREO;
FMOD_DSP_CHANNELMIX_OUTPUT_ALLQUAD :: ALLQUAD;
FMOD_DSP_CHANNELMIX_OUTPUT_ALL5POINT1 :: ALL5POINT1;
FMOD_DSP_CHANNELMIX_OUTPUT_ALL7POINT1 :: ALL7POINT1;
FMOD_DSP_CHANNELMIX_OUTPUT_ALLLFE :: ALLLFE;
FMOD_DSP_CHANNELMIX_OUTPUT_ALL7POINT1POINT4 :: ALL7POINT1POINT4;
}
FMOD_DSP_CHANNELMIX :: enum s32 {
OUTPUTGROUPING :: 0;
GAIN_CH0 :: 1;
GAIN_CH1 :: 2;
GAIN_CH2 :: 3;
GAIN_CH3 :: 4;
GAIN_CH4 :: 5;
GAIN_CH5 :: 6;
GAIN_CH6 :: 7;
GAIN_CH7 :: 8;
GAIN_CH8 :: 9;
GAIN_CH9 :: 10;
GAIN_CH10 :: 11;
GAIN_CH11 :: 12;
GAIN_CH12 :: 13;
GAIN_CH13 :: 14;
GAIN_CH14 :: 15;
GAIN_CH15 :: 16;
GAIN_CH16 :: 17;
GAIN_CH17 :: 18;
GAIN_CH18 :: 19;
GAIN_CH19 :: 20;
GAIN_CH20 :: 21;
GAIN_CH21 :: 22;
GAIN_CH22 :: 23;
GAIN_CH23 :: 24;
GAIN_CH24 :: 25;
GAIN_CH25 :: 26;
GAIN_CH26 :: 27;
GAIN_CH27 :: 28;
GAIN_CH28 :: 29;
GAIN_CH29 :: 30;
GAIN_CH30 :: 31;
GAIN_CH31 :: 32;
OUTPUT_CH0 :: 33;
OUTPUT_CH1 :: 34;
OUTPUT_CH2 :: 35;
OUTPUT_CH3 :: 36;
OUTPUT_CH4 :: 37;
OUTPUT_CH5 :: 38;
OUTPUT_CH6 :: 39;
OUTPUT_CH7 :: 40;
OUTPUT_CH8 :: 41;
OUTPUT_CH9 :: 42;
OUTPUT_CH10 :: 43;
OUTPUT_CH11 :: 44;
OUTPUT_CH12 :: 45;
OUTPUT_CH13 :: 46;
OUTPUT_CH14 :: 47;
OUTPUT_CH15 :: 48;
OUTPUT_CH16 :: 49;
OUTPUT_CH17 :: 50;
OUTPUT_CH18 :: 51;
OUTPUT_CH19 :: 52;
OUTPUT_CH20 :: 53;
OUTPUT_CH21 :: 54;
OUTPUT_CH22 :: 55;
OUTPUT_CH23 :: 56;
OUTPUT_CH24 :: 57;
OUTPUT_CH25 :: 58;
OUTPUT_CH26 :: 59;
OUTPUT_CH27 :: 60;
OUTPUT_CH28 :: 61;
OUTPUT_CH29 :: 62;
OUTPUT_CH30 :: 63;
OUTPUT_CH31 :: 64;
FMOD_DSP_CHANNELMIX_OUTPUTGROUPING :: OUTPUTGROUPING;
FMOD_DSP_CHANNELMIX_GAIN_CH0 :: GAIN_CH0;
FMOD_DSP_CHANNELMIX_GAIN_CH1 :: GAIN_CH1;
FMOD_DSP_CHANNELMIX_GAIN_CH2 :: GAIN_CH2;
FMOD_DSP_CHANNELMIX_GAIN_CH3 :: GAIN_CH3;
FMOD_DSP_CHANNELMIX_GAIN_CH4 :: GAIN_CH4;
FMOD_DSP_CHANNELMIX_GAIN_CH5 :: GAIN_CH5;
FMOD_DSP_CHANNELMIX_GAIN_CH6 :: GAIN_CH6;
FMOD_DSP_CHANNELMIX_GAIN_CH7 :: GAIN_CH7;
FMOD_DSP_CHANNELMIX_GAIN_CH8 :: GAIN_CH8;
FMOD_DSP_CHANNELMIX_GAIN_CH9 :: GAIN_CH9;
FMOD_DSP_CHANNELMIX_GAIN_CH10 :: GAIN_CH10;
FMOD_DSP_CHANNELMIX_GAIN_CH11 :: GAIN_CH11;
FMOD_DSP_CHANNELMIX_GAIN_CH12 :: GAIN_CH12;
FMOD_DSP_CHANNELMIX_GAIN_CH13 :: GAIN_CH13;
FMOD_DSP_CHANNELMIX_GAIN_CH14 :: GAIN_CH14;
FMOD_DSP_CHANNELMIX_GAIN_CH15 :: GAIN_CH15;
FMOD_DSP_CHANNELMIX_GAIN_CH16 :: GAIN_CH16;
FMOD_DSP_CHANNELMIX_GAIN_CH17 :: GAIN_CH17;
FMOD_DSP_CHANNELMIX_GAIN_CH18 :: GAIN_CH18;
FMOD_DSP_CHANNELMIX_GAIN_CH19 :: GAIN_CH19;
FMOD_DSP_CHANNELMIX_GAIN_CH20 :: GAIN_CH20;
FMOD_DSP_CHANNELMIX_GAIN_CH21 :: GAIN_CH21;
FMOD_DSP_CHANNELMIX_GAIN_CH22 :: GAIN_CH22;
FMOD_DSP_CHANNELMIX_GAIN_CH23 :: GAIN_CH23;
FMOD_DSP_CHANNELMIX_GAIN_CH24 :: GAIN_CH24;
FMOD_DSP_CHANNELMIX_GAIN_CH25 :: GAIN_CH25;
FMOD_DSP_CHANNELMIX_GAIN_CH26 :: GAIN_CH26;
FMOD_DSP_CHANNELMIX_GAIN_CH27 :: GAIN_CH27;
FMOD_DSP_CHANNELMIX_GAIN_CH28 :: GAIN_CH28;
FMOD_DSP_CHANNELMIX_GAIN_CH29 :: GAIN_CH29;
FMOD_DSP_CHANNELMIX_GAIN_CH30 :: GAIN_CH30;
FMOD_DSP_CHANNELMIX_GAIN_CH31 :: GAIN_CH31;
FMOD_DSP_CHANNELMIX_OUTPUT_CH0 :: OUTPUT_CH0;
FMOD_DSP_CHANNELMIX_OUTPUT_CH1 :: OUTPUT_CH1;
FMOD_DSP_CHANNELMIX_OUTPUT_CH2 :: OUTPUT_CH2;
FMOD_DSP_CHANNELMIX_OUTPUT_CH3 :: OUTPUT_CH3;
FMOD_DSP_CHANNELMIX_OUTPUT_CH4 :: OUTPUT_CH4;
FMOD_DSP_CHANNELMIX_OUTPUT_CH5 :: OUTPUT_CH5;
FMOD_DSP_CHANNELMIX_OUTPUT_CH6 :: OUTPUT_CH6;
FMOD_DSP_CHANNELMIX_OUTPUT_CH7 :: OUTPUT_CH7;
FMOD_DSP_CHANNELMIX_OUTPUT_CH8 :: OUTPUT_CH8;
FMOD_DSP_CHANNELMIX_OUTPUT_CH9 :: OUTPUT_CH9;
FMOD_DSP_CHANNELMIX_OUTPUT_CH10 :: OUTPUT_CH10;
FMOD_DSP_CHANNELMIX_OUTPUT_CH11 :: OUTPUT_CH11;
FMOD_DSP_CHANNELMIX_OUTPUT_CH12 :: OUTPUT_CH12;
FMOD_DSP_CHANNELMIX_OUTPUT_CH13 :: OUTPUT_CH13;
FMOD_DSP_CHANNELMIX_OUTPUT_CH14 :: OUTPUT_CH14;
FMOD_DSP_CHANNELMIX_OUTPUT_CH15 :: OUTPUT_CH15;
FMOD_DSP_CHANNELMIX_OUTPUT_CH16 :: OUTPUT_CH16;
FMOD_DSP_CHANNELMIX_OUTPUT_CH17 :: OUTPUT_CH17;
FMOD_DSP_CHANNELMIX_OUTPUT_CH18 :: OUTPUT_CH18;
FMOD_DSP_CHANNELMIX_OUTPUT_CH19 :: OUTPUT_CH19;
FMOD_DSP_CHANNELMIX_OUTPUT_CH20 :: OUTPUT_CH20;
FMOD_DSP_CHANNELMIX_OUTPUT_CH21 :: OUTPUT_CH21;
FMOD_DSP_CHANNELMIX_OUTPUT_CH22 :: OUTPUT_CH22;
FMOD_DSP_CHANNELMIX_OUTPUT_CH23 :: OUTPUT_CH23;
FMOD_DSP_CHANNELMIX_OUTPUT_CH24 :: OUTPUT_CH24;
FMOD_DSP_CHANNELMIX_OUTPUT_CH25 :: OUTPUT_CH25;
FMOD_DSP_CHANNELMIX_OUTPUT_CH26 :: OUTPUT_CH26;
FMOD_DSP_CHANNELMIX_OUTPUT_CH27 :: OUTPUT_CH27;
FMOD_DSP_CHANNELMIX_OUTPUT_CH28 :: OUTPUT_CH28;
FMOD_DSP_CHANNELMIX_OUTPUT_CH29 :: OUTPUT_CH29;
FMOD_DSP_CHANNELMIX_OUTPUT_CH30 :: OUTPUT_CH30;
FMOD_DSP_CHANNELMIX_OUTPUT_CH31 :: OUTPUT_CH31;
}
FMOD_DSP_TRANSCEIVER_SPEAKERMODE :: enum s32 {
AUTO :: -1;
MONO :: 0;
STEREO :: 1;
SURROUND :: 2;
FMOD_DSP_TRANSCEIVER_SPEAKERMODE_AUTO :: AUTO;
FMOD_DSP_TRANSCEIVER_SPEAKERMODE_MONO :: MONO;
FMOD_DSP_TRANSCEIVER_SPEAKERMODE_STEREO :: STEREO;
FMOD_DSP_TRANSCEIVER_SPEAKERMODE_SURROUND :: SURROUND;
}
FMOD_DSP_TRANSCEIVER :: enum s32 {
TRANSMIT :: 0;
GAIN :: 1;
CHANNEL :: 2;
TRANSMITSPEAKERMODE :: 3;
FMOD_DSP_TRANSCEIVER_TRANSMIT :: TRANSMIT;
FMOD_DSP_TRANSCEIVER_GAIN :: GAIN;
FMOD_DSP_TRANSCEIVER_CHANNEL :: CHANNEL;
FMOD_DSP_TRANSCEIVER_TRANSMITSPEAKERMODE :: TRANSMITSPEAKERMODE;
}
FMOD_DSP_OBJECTPAN :: enum s32 {
_3D_POSITION :: 0;
_3D_ROLLOFF :: 1;
_3D_MIN_DISTANCE :: 2;
_3D_MAX_DISTANCE :: 3;
_3D_EXTENT_MODE :: 4;
_3D_SOUND_SIZE :: 5;
_3D_MIN_EXTENT :: 6;
OVERALL_GAIN :: 7;
OUTPUTGAIN :: 8;
ATTENUATION_RANGE :: 9;
OVERRIDE_RANGE :: 10;
FMOD_DSP_OBJECTPAN_3D_POSITION :: _3D_POSITION;
FMOD_DSP_OBJECTPAN_3D_ROLLOFF :: _3D_ROLLOFF;
FMOD_DSP_OBJECTPAN_3D_MIN_DISTANCE :: _3D_MIN_DISTANCE;
FMOD_DSP_OBJECTPAN_3D_MAX_DISTANCE :: _3D_MAX_DISTANCE;
FMOD_DSP_OBJECTPAN_3D_EXTENT_MODE :: _3D_EXTENT_MODE;
FMOD_DSP_OBJECTPAN_3D_SOUND_SIZE :: _3D_SOUND_SIZE;
FMOD_DSP_OBJECTPAN_3D_MIN_EXTENT :: _3D_MIN_EXTENT;
FMOD_DSP_OBJECTPAN_OVERALL_GAIN :: OVERALL_GAIN;
FMOD_DSP_OBJECTPAN_OUTPUTGAIN :: OUTPUTGAIN;
FMOD_DSP_OBJECTPAN_ATTENUATION_RANGE :: ATTENUATION_RANGE;
FMOD_DSP_OBJECTPAN_OVERRIDE_RANGE :: OVERRIDE_RANGE;
}
FMOD_DSP_PROCESS_OPERATION :: enum s32 {
PERFORM :: 0;
QUERY :: 1;
FMOD_DSP_PROCESS_PERFORM :: PERFORM;
FMOD_DSP_PROCESS_QUERY :: QUERY;
}
FMOD_DSP_PAN_SURROUND_FLAGS :: enum s32 {
FMOD_DSP_PAN_SURROUND_DEFAULT :: 0;
FMOD_DSP_PAN_SURROUND_ROTATION_NOT_BIASED :: 1;
FORCEINT :: 65536;
FMOD_DSP_PAN_SURROUND_FLAGS_FORCEINT :: FORCEINT;
}
FMOD_DSP_PARAMETER_TYPE :: enum s32 {
FLOAT :: 0;
INT :: 1;
BOOL :: 2;
DATA :: 3;
MAX :: 4;
FORCEINT :: 65536;
FMOD_DSP_PARAMETER_TYPE_FLOAT :: FLOAT;
FMOD_DSP_PARAMETER_TYPE_INT :: INT;
FMOD_DSP_PARAMETER_TYPE_BOOL :: BOOL;
FMOD_DSP_PARAMETER_TYPE_DATA :: DATA;
FMOD_DSP_PARAMETER_TYPE_MAX :: MAX;
FMOD_DSP_PARAMETER_TYPE_FORCEINT :: FORCEINT;
}
FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE :: enum s32 {
LINEAR :: 0;
AUTO :: 1;
PIECEWISE_LINEAR :: 2;
FORCEINT :: 65536;
FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_LINEAR :: LINEAR;
FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_AUTO :: AUTO;
FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_PIECEWISE_LINEAR :: PIECEWISE_LINEAR;
FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_FORCEINT :: FORCEINT;
}
FMOD_DSP_PARAMETER_DATA_TYPE :: enum s32 {
USER :: 0;
OVERALLGAIN :: -1;
_3DATTRIBUTES :: -2;
SIDECHAIN :: -3;
FFT :: -4;
_3DATTRIBUTES_MULTI :: -5;
ATTENUATION_RANGE :: -6;
FMOD_DSP_PARAMETER_DATA_TYPE_USER :: USER;
FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN :: OVERALLGAIN;
FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES :: _3DATTRIBUTES;
FMOD_DSP_PARAMETER_DATA_TYPE_SIDECHAIN :: SIDECHAIN;
FMOD_DSP_PARAMETER_DATA_TYPE_FFT :: FFT;
FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES_MULTI :: _3DATTRIBUTES_MULTI;
FMOD_DSP_PARAMETER_DATA_TYPE_ATTENUATION_RANGE :: ATTENUATION_RANGE;
}
/*
DSP Callbacks
*/
FMOD_DSP_CREATE_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE) -> FMOD_RESULT #c_call;
FMOD_DSP_RELEASE_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE) -> FMOD_RESULT #c_call;
FMOD_DSP_RESET_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE) -> FMOD_RESULT #c_call;
FMOD_DSP_READ_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, inbuffer: *float, outbuffer: *float, length: u32, inchannels: s32, outchannels: *s32) -> FMOD_RESULT #c_call;
FMOD_DSP_PROCESS_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, length: u32, inbufferarray: *FMOD_DSP_BUFFER_ARRAY, outbufferarray: *FMOD_DSP_BUFFER_ARRAY, inputsidle: FMOD_BOOL, op: FMOD_DSP_PROCESS_OPERATION) -> FMOD_RESULT #c_call;
FMOD_DSP_SETPOSITION_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, pos: u32) -> FMOD_RESULT #c_call;
FMOD_DSP_SHOULDIPROCESS_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, inputsidle: FMOD_BOOL, length: u32, inmask: FMOD_CHANNELMASK, inchannels: s32, speakermode: FMOD_SPEAKERMODE) -> FMOD_RESULT #c_call;
FMOD_DSP_SETPARAM_FLOAT_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, value: float) -> FMOD_RESULT #c_call;
FMOD_DSP_SETPARAM_INT_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, value: s32) -> FMOD_RESULT #c_call;
FMOD_DSP_SETPARAM_BOOL_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, value: FMOD_BOOL) -> FMOD_RESULT #c_call;
FMOD_DSP_SETPARAM_DATA_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, data: *void, length: u32) -> FMOD_RESULT #c_call;
FMOD_DSP_GETPARAM_FLOAT_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, value: *float, valuestr: *u8) -> FMOD_RESULT #c_call;
FMOD_DSP_GETPARAM_INT_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, value: *s32, valuestr: *u8) -> FMOD_RESULT #c_call;
FMOD_DSP_GETPARAM_BOOL_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, value: *FMOD_BOOL, valuestr: *u8) -> FMOD_RESULT #c_call;
FMOD_DSP_GETPARAM_DATA_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, index: s32, data: **void, length: *u32, valuestr: *u8) -> FMOD_RESULT #c_call;
FMOD_DSP_SYSTEM_REGISTER_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE) -> FMOD_RESULT #c_call;
FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE) -> FMOD_RESULT #c_call;
FMOD_DSP_SYSTEM_MIX_CALLBACK :: #type (dsp_state: *FMOD_DSP_STATE, stage: s32) -> FMOD_RESULT #c_call;
/*
DSP Functions
*/
FMOD_DSP_ALLOC_FUNC :: #type (size: u32, type: FMOD_MEMORY_TYPE, sourcestr: *u8) -> *void #c_call;
FMOD_DSP_REALLOC_FUNC :: #type (ptr: *void, size: u32, type: FMOD_MEMORY_TYPE, sourcestr: *u8) -> *void #c_call;
FMOD_DSP_FREE_FUNC :: #type (ptr: *void, type: FMOD_MEMORY_TYPE, sourcestr: *u8) -> void #c_call;
FMOD_DSP_LOG_FUNC :: #type (level: FMOD_DEBUG_FLAGS, file: *u8, line: s32, function: *u8, str: *u8, __args: ..Any) -> void #c_call;
FMOD_DSP_GETSAMPLERATE_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, rate: *s32) -> FMOD_RESULT #c_call;
FMOD_DSP_GETBLOCKSIZE_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, blocksize: *u32) -> FMOD_RESULT #c_call;
FMOD_DSP_GETSPEAKERMODE_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, speakermode_mixer: *FMOD_SPEAKERMODE, speakermode_output: *FMOD_SPEAKERMODE) -> FMOD_RESULT #c_call;
FMOD_DSP_GETCLOCK_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, clock: *u64, offset: *u32, length: *u32) -> FMOD_RESULT #c_call;
FMOD_DSP_GETLISTENERATTRIBUTES_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, numlisteners: *s32, attributes: *FMOD_3D_ATTRIBUTES) -> FMOD_RESULT #c_call;
FMOD_DSP_GETUSERDATA_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, userdata: **void) -> FMOD_RESULT #c_call;
FMOD_DSP_DFT_FFTREAL_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, size: s32, signal: *float, dft: *FMOD_COMPLEX, window: *float, signalhop: s32) -> FMOD_RESULT #c_call;
FMOD_DSP_DFT_IFFTREAL_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, size: s32, dft: *FMOD_COMPLEX, signal: *float, window: *float, signalhop: s32) -> FMOD_RESULT #c_call;
FMOD_DSP_PAN_SUMMONOMATRIX_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, sourceSpeakerMode: FMOD_SPEAKERMODE, lowFrequencyGain: float, overallGain: float, matrix: *float) -> FMOD_RESULT #c_call;
FMOD_DSP_PAN_SUMSTEREOMATRIX_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, sourceSpeakerMode: FMOD_SPEAKERMODE, pan: float, lowFrequencyGain: float, overallGain: float, matrixHop: s32, matrix: *float) -> FMOD_RESULT #c_call;
FMOD_DSP_PAN_SUMSURROUNDMATRIX_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, sourceSpeakerMode: FMOD_SPEAKERMODE, targetSpeakerMode: FMOD_SPEAKERMODE, direction: float, extent: float, rotation: float, lowFrequencyGain: float, overallGain: float, matrixHop: s32, matrix: *float, flags: FMOD_DSP_PAN_SURROUND_FLAGS) -> FMOD_RESULT #c_call;
FMOD_DSP_PAN_SUMMONOTOSURROUNDMATRIX_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, targetSpeakerMode: FMOD_SPEAKERMODE, direction: float, extent: float, lowFrequencyGain: float, overallGain: float, matrixHop: s32, matrix: *float) -> FMOD_RESULT #c_call;
FMOD_DSP_PAN_SUMSTEREOTOSURROUNDMATRIX_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, targetSpeakerMode: FMOD_SPEAKERMODE, direction: float, extent: float, rotation: float, lowFrequencyGain: float, overallGain: float, matrixHop: s32, matrix: *float) -> FMOD_RESULT #c_call;
FMOD_DSP_PAN_GETROLLOFFGAIN_FUNC :: #type (dsp_state: *FMOD_DSP_STATE, rolloff: FMOD_DSP_PAN_3D_ROLLOFF_TYPE, distance: float, mindistance: float, maxdistance: float, gain: *float) -> FMOD_RESULT #c_call;
/*
DSP Structures
*/
FMOD_DSP_BUFFER_ARRAY :: struct {
numbuffers: s32;
buffernumchannels: *s32;
bufferchannelmask: *FMOD_CHANNELMASK;
buffers: **float;
speakermode: FMOD_SPEAKERMODE;
}
FMOD_COMPLEX :: struct {
real: float;
imag: float;
}
FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR :: struct {
numpoints: s32;
pointparamvalues: *float;
pointpositions: *float;
}
FMOD_DSP_PARAMETER_FLOAT_MAPPING :: struct {
type: FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE;
piecewiselinearmapping: FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR;
}
FMOD_DSP_PARAMETER_DESC_FLOAT :: struct {
min: float;
max: float;
defaultval: float;
mapping: FMOD_DSP_PARAMETER_FLOAT_MAPPING;
}
FMOD_DSP_PARAMETER_DESC_INT :: struct {
min: s32;
max: s32;
defaultval: s32;
goestoinf: FMOD_BOOL;
valuenames: **u8;
}
FMOD_DSP_PARAMETER_DESC_BOOL :: struct {
defaultval: FMOD_BOOL;
valuenames: **u8;
}
FMOD_DSP_PARAMETER_DESC_DATA :: struct {
datatype: s32;
}
FMOD_DSP_PARAMETER_DESC :: struct {
type: FMOD_DSP_PARAMETER_TYPE;
name: [16] u8;
label: [16] u8;
description: *u8;
union {
floatdesc: FMOD_DSP_PARAMETER_DESC_FLOAT;
intdesc: FMOD_DSP_PARAMETER_DESC_INT;
booldesc: FMOD_DSP_PARAMETER_DESC_BOOL;
datadesc: FMOD_DSP_PARAMETER_DESC_DATA;
}
}
FMOD_DSP_PARAMETER_OVERALLGAIN :: struct {
linear_gain: float;
linear_gain_additive: float;
}
FMOD_DSP_PARAMETER_3DATTRIBUTES :: struct {
relative: FMOD_3D_ATTRIBUTES;
absolute: FMOD_3D_ATTRIBUTES;
}
FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI :: struct {
numlisteners: s32;
relative: [8] FMOD_3D_ATTRIBUTES;
weight: [8] float;
absolute: FMOD_3D_ATTRIBUTES;
}
FMOD_DSP_PARAMETER_ATTENUATION_RANGE :: struct {
min: float;
max: float;
}
FMOD_DSP_PARAMETER_SIDECHAIN :: struct {
sidechainenable: FMOD_BOOL;
}
FMOD_DSP_PARAMETER_FFT :: struct {
length: s32;
numchannels: s32;
spectrum: [32] *float;
}
FMOD_DSP_DESCRIPTION :: struct {
pluginsdkversion: u32;
name: [32] u8;
version: u32;
numinputbuffers: s32;
numoutputbuffers: s32;
create: FMOD_DSP_CREATE_CALLBACK;
release: FMOD_DSP_RELEASE_CALLBACK;
reset: FMOD_DSP_RESET_CALLBACK;
read: FMOD_DSP_READ_CALLBACK;
process: FMOD_DSP_PROCESS_CALLBACK;
setposition: FMOD_DSP_SETPOSITION_CALLBACK;
numparameters: s32;
paramdesc: **FMOD_DSP_PARAMETER_DESC;
setparameterfloat: FMOD_DSP_SETPARAM_FLOAT_CALLBACK;
setparameterint: FMOD_DSP_SETPARAM_INT_CALLBACK;
setparameterbool: FMOD_DSP_SETPARAM_BOOL_CALLBACK;
setparameterdata: FMOD_DSP_SETPARAM_DATA_CALLBACK;
getparameterfloat: FMOD_DSP_GETPARAM_FLOAT_CALLBACK;
getparameterint: FMOD_DSP_GETPARAM_INT_CALLBACK;
getparameterbool: FMOD_DSP_GETPARAM_BOOL_CALLBACK;
getparameterdata: FMOD_DSP_GETPARAM_DATA_CALLBACK;
shouldiprocess: FMOD_DSP_SHOULDIPROCESS_CALLBACK;
userdata: *void;
sys_register: FMOD_DSP_SYSTEM_REGISTER_CALLBACK;
sys_deregister: FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK;
sys_mix: FMOD_DSP_SYSTEM_MIX_CALLBACK;
}
FMOD_DSP_STATE_DFT_FUNCTIONS :: struct {
fftreal: FMOD_DSP_DFT_FFTREAL_FUNC;
inversefftreal: FMOD_DSP_DFT_IFFTREAL_FUNC;
}
FMOD_DSP_STATE_PAN_FUNCTIONS :: struct {
summonomatrix: FMOD_DSP_PAN_SUMMONOMATRIX_FUNC;
sumstereomatrix: FMOD_DSP_PAN_SUMSTEREOMATRIX_FUNC;
sumsurroundmatrix: FMOD_DSP_PAN_SUMSURROUNDMATRIX_FUNC;
summonotosurroundmatrix: FMOD_DSP_PAN_SUMMONOTOSURROUNDMATRIX_FUNC;
sumstereotosurroundmatrix: FMOD_DSP_PAN_SUMSTEREOTOSURROUNDMATRIX_FUNC;
getrolloffgain: FMOD_DSP_PAN_GETROLLOFFGAIN_FUNC;
}
FMOD_DSP_STATE_FUNCTIONS :: struct {
alloc: FMOD_DSP_ALLOC_FUNC;
realloc: FMOD_DSP_REALLOC_FUNC;
free: FMOD_DSP_FREE_FUNC;
getsamplerate: FMOD_DSP_GETSAMPLERATE_FUNC;
getblocksize: FMOD_DSP_GETBLOCKSIZE_FUNC;
dft: *FMOD_DSP_STATE_DFT_FUNCTIONS;
pan: *FMOD_DSP_STATE_PAN_FUNCTIONS;
getspeakermode: FMOD_DSP_GETSPEAKERMODE_FUNC;
getclock: FMOD_DSP_GETCLOCK_FUNC;
getlistenerattributes: FMOD_DSP_GETLISTENERATTRIBUTES_FUNC;
log: FMOD_DSP_LOG_FUNC;
getuserdata: FMOD_DSP_GETUSERDATA_FUNC;
}
FMOD_DSP_STATE :: struct {
instance: *void;
plugindata: *void;
channelmask: FMOD_CHANNELMASK;
source_speakermode: FMOD_SPEAKERMODE;
sidechaindata: *float;
sidechainchannels: s32;
functions: *FMOD_DSP_STATE_FUNCTIONS;
systemobject: s32;
}
FMOD_DSP_METERING_INFO :: struct {
numsamples: s32;
peaklevel: [32] float;
rmslevel: [32] float;
numchannels: s16;
}
FMOD_OUTPUT_METHOD :: u32;
/*
Output callbacks
*/
FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, numdrivers: *s32) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_GETDRIVERINFO_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, id: s32, name: *u8, namelen: s32, guid: *FMOD_GUID, systemrate: *s32, speakermode: *FMOD_SPEAKERMODE, speakermodechannels: *s32) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_INIT_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, selecteddriver: s32, flags: FMOD_INITFLAGS, outputrate: *s32, speakermode: *FMOD_SPEAKERMODE, speakermodechannels: *s32, outputformat: *FMOD_SOUND_FORMAT, dspbufferlength: s32, dspnumbuffers: *s32, dspnumadditionalbuffers: *s32, extradriverdata: *void) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_START_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_STOP_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_CLOSE_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_UPDATE_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_GETHANDLE_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, handle: **void) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_MIXER_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_OBJECT3DGETINFO_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, maxhardwareobjects: *s32) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_OBJECT3DALLOC_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, object3d: **void) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_OBJECT3DFREE_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, object3d: *void) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, object3d: *void, info: *FMOD_OUTPUT_OBJECT3DINFO) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_OPENPORT_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, portType: FMOD_PORT_TYPE, portIndex: FMOD_PORT_INDEX, portId: *s32, portRate: *s32, portChannels: *s32, portFormat: *FMOD_SOUND_FORMAT) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_CLOSEPORT_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE, portId: s32) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_DEVICELISTCHANGED_CALLBACK :: #type (output_state: *FMOD_OUTPUT_STATE) -> FMOD_RESULT #c_call;
/*
Output functions
*/
FMOD_OUTPUT_READFROMMIXER_FUNC :: #type (output_state: *FMOD_OUTPUT_STATE, buffer: *void, length: u32) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_COPYPORT_FUNC :: #type (output_state: *FMOD_OUTPUT_STATE, portId: s32, buffer: *void, length: u32) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_REQUESTRESET_FUNC :: #type (output_state: *FMOD_OUTPUT_STATE) -> FMOD_RESULT #c_call;
FMOD_OUTPUT_ALLOC_FUNC :: #type (size: u32, align: u32, file: *u8, line: s32) -> *void #c_call;
FMOD_OUTPUT_FREE_FUNC :: #type (ptr: *void, file: *u8, line: s32) -> void #c_call;
FMOD_OUTPUT_LOG_FUNC :: #type (level: FMOD_DEBUG_FLAGS, file: *u8, line: s32, function: *u8, _string: *u8, __args: ..Any) -> void #c_call;
/*
Output structures
*/
FMOD_OUTPUT_DESCRIPTION :: struct {
apiversion: u32;
name: *u8;
version: u32;
method: FMOD_OUTPUT_METHOD;
getnumdrivers: FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK;
getdriverinfo: FMOD_OUTPUT_GETDRIVERINFO_CALLBACK;
init: FMOD_OUTPUT_INIT_CALLBACK;
start: FMOD_OUTPUT_START_CALLBACK;
stop: FMOD_OUTPUT_STOP_CALLBACK;
close: FMOD_OUTPUT_CLOSE_CALLBACK;
update: FMOD_OUTPUT_UPDATE_CALLBACK;
gethandle: FMOD_OUTPUT_GETHANDLE_CALLBACK;
mixer: FMOD_OUTPUT_MIXER_CALLBACK;
object3dgetinfo: FMOD_OUTPUT_OBJECT3DGETINFO_CALLBACK;
object3dalloc: FMOD_OUTPUT_OBJECT3DALLOC_CALLBACK;
object3dfree: FMOD_OUTPUT_OBJECT3DFREE_CALLBACK;
object3dupdate: FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK;
openport: FMOD_OUTPUT_OPENPORT_CALLBACK;
closeport: FMOD_OUTPUT_CLOSEPORT_CALLBACK;
devicelistchanged: FMOD_OUTPUT_DEVICELISTCHANGED_CALLBACK;
}
FMOD_OUTPUT_STATE :: struct {
plugindata: *void;
readfrommixer: FMOD_OUTPUT_READFROMMIXER_FUNC;
alloc: FMOD_OUTPUT_ALLOC_FUNC;
free: FMOD_OUTPUT_FREE_FUNC;
log: FMOD_OUTPUT_LOG_FUNC;
copyport: FMOD_OUTPUT_COPYPORT_FUNC;
requestreset: FMOD_OUTPUT_REQUESTRESET_FUNC;
}
FMOD_OUTPUT_OBJECT3DINFO :: struct {
buffer: *float;
bufferlength: u32;
position: FMOD_VECTOR;
gain: float;
spread: float;
priority: float;
}
/*
FMOD global system functions (optional).
*/
FMOD_Memory_Initialize :: (poolmem: *void, poollen: s32, useralloc: FMOD_MEMORY_ALLOC_CALLBACK, userrealloc: FMOD_MEMORY_REALLOC_CALLBACK, userfree: FMOD_MEMORY_FREE_CALLBACK, memtypeflags: FMOD_MEMORY_TYPE) -> FMOD_RESULT #foreign fmod;
FMOD_Memory_GetStats :: (currentalloced: *s32, maxalloced: *s32, blocking: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Debug_Initialize :: (flags: FMOD_DEBUG_FLAGS, mode: FMOD_DEBUG_MODE, callback: FMOD_DEBUG_CALLBACK, filename: *u8) -> FMOD_RESULT #foreign fmod;
FMOD_File_SetDiskBusy :: (busy: s32) -> FMOD_RESULT #foreign fmod;
FMOD_File_GetDiskBusy :: (busy: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Thread_SetAttributes :: (type: FMOD_THREAD_TYPE, affinity: FMOD_THREAD_AFFINITY, priority: FMOD_THREAD_PRIORITY, stacksize: FMOD_THREAD_STACK_SIZE) -> FMOD_RESULT #foreign fmod;
/*
FMOD System factory functions. Use this to create an FMOD System Instance. below you will see FMOD_System_Init/Close to get started.
*/
FMOD_System_Create :: (system: **FMOD_SYSTEM, headerversion: u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_Release :: (system: *FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/* Setup functions. */
FMOD_System_SetOutput :: (system: *FMOD_SYSTEM, output: FMOD_OUTPUTTYPE) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetOutput :: (system: *FMOD_SYSTEM, output: *FMOD_OUTPUTTYPE) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetNumDrivers :: (system: *FMOD_SYSTEM, numdrivers: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetDriverInfo :: (system: *FMOD_SYSTEM, id: s32, name: *u8, namelen: s32, guid: *FMOD_GUID, systemrate: *s32, speakermode: *FMOD_SPEAKERMODE, speakermodechannels: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetDriver :: (system: *FMOD_SYSTEM, driver: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetDriver :: (system: *FMOD_SYSTEM, driver: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetSoftwareChannels :: (system: *FMOD_SYSTEM, numsoftwarechannels: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetSoftwareChannels :: (system: *FMOD_SYSTEM, numsoftwarechannels: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetSoftwareFormat :: (system: *FMOD_SYSTEM, samplerate: s32, speakermode: FMOD_SPEAKERMODE, numrawspeakers: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetSoftwareFormat :: (system: *FMOD_SYSTEM, samplerate: *s32, speakermode: *FMOD_SPEAKERMODE, numrawspeakers: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetDSPBufferSize :: (system: *FMOD_SYSTEM, bufferlength: u32, numbuffers: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetDSPBufferSize :: (system: *FMOD_SYSTEM, bufferlength: *u32, numbuffers: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetFileSystem :: (system: *FMOD_SYSTEM, useropen: FMOD_FILE_OPEN_CALLBACK, userclose: FMOD_FILE_CLOSE_CALLBACK, userread: FMOD_FILE_READ_CALLBACK, userseek: FMOD_FILE_SEEK_CALLBACK, userasyncread: FMOD_FILE_ASYNCREAD_CALLBACK, userasynccancel: FMOD_FILE_ASYNCCANCEL_CALLBACK, blockalign: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_AttachFileSystem :: (system: *FMOD_SYSTEM, useropen: FMOD_FILE_OPEN_CALLBACK, userclose: FMOD_FILE_CLOSE_CALLBACK, userread: FMOD_FILE_READ_CALLBACK, userseek: FMOD_FILE_SEEK_CALLBACK) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetAdvancedSettings :: (system: *FMOD_SYSTEM, settings: *FMOD_ADVANCEDSETTINGS) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetAdvancedSettings :: (system: *FMOD_SYSTEM, settings: *FMOD_ADVANCEDSETTINGS) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetCallback :: (system: *FMOD_SYSTEM, callback: FMOD_SYSTEM_CALLBACK, callbackmask: FMOD_SYSTEM_CALLBACK_TYPE) -> FMOD_RESULT #foreign fmod;
/* Plug-in support. */
FMOD_System_SetPluginPath :: (system: *FMOD_SYSTEM, path: *u8) -> FMOD_RESULT #foreign fmod;
FMOD_System_LoadPlugin :: (system: *FMOD_SYSTEM, filename: *u8, handle: *u32, priority: u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_UnloadPlugin :: (system: *FMOD_SYSTEM, handle: u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetNumNestedPlugins :: (system: *FMOD_SYSTEM, handle: u32, count: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetNestedPlugin :: (system: *FMOD_SYSTEM, handle: u32, index: s32, nestedhandle: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetNumPlugins :: (system: *FMOD_SYSTEM, plugintype: FMOD_PLUGINTYPE, numplugins: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetPluginHandle :: (system: *FMOD_SYSTEM, plugintype: FMOD_PLUGINTYPE, index: s32, handle: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetPluginInfo :: (system: *FMOD_SYSTEM, handle: u32, plugintype: *FMOD_PLUGINTYPE, name: *u8, namelen: s32, version: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetOutputByPlugin :: (system: *FMOD_SYSTEM, handle: u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetOutputByPlugin :: (system: *FMOD_SYSTEM, handle: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_CreateDSPByPlugin :: (system: *FMOD_SYSTEM, handle: u32, dsp: **FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetDSPInfoByPlugin :: (system: *FMOD_SYSTEM, handle: u32, description: **FMOD_DSP_DESCRIPTION) -> FMOD_RESULT #foreign fmod;
FMOD_System_RegisterCodec :: (system: *FMOD_SYSTEM, description: *FMOD_CODEC_DESCRIPTION, handle: *u32, priority: u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_RegisterDSP :: (system: *FMOD_SYSTEM, description: *FMOD_DSP_DESCRIPTION, handle: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_RegisterOutput :: (system: *FMOD_SYSTEM, description: *FMOD_OUTPUT_DESCRIPTION, handle: *u32) -> FMOD_RESULT #foreign fmod;
/* Init/Close. */
FMOD_System_Init :: (system: *FMOD_SYSTEM, maxchannels: s32, flags: FMOD_INITFLAGS, extradriverdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_System_Close :: (system: *FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/* General post-init system functions. */
FMOD_System_Update :: (system: *FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetSpeakerPosition :: (system: *FMOD_SYSTEM, speaker: FMOD_SPEAKER, x: float, y: float, active: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetSpeakerPosition :: (system: *FMOD_SYSTEM, speaker: FMOD_SPEAKER, x: *float, y: *float, active: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetStreamBufferSize :: (system: *FMOD_SYSTEM, filebuffersize: u32, filebuffersizetype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetStreamBufferSize :: (system: *FMOD_SYSTEM, filebuffersize: *u32, filebuffersizetype: *FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_System_Set3DSettings :: (system: *FMOD_SYSTEM, dopplerscale: float, distancefactor: float, rolloffscale: float) -> FMOD_RESULT #foreign fmod;
FMOD_System_Get3DSettings :: (system: *FMOD_SYSTEM, dopplerscale: *float, distancefactor: *float, rolloffscale: *float) -> FMOD_RESULT #foreign fmod;
FMOD_System_Set3DNumListeners :: (system: *FMOD_SYSTEM, numlisteners: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_Get3DNumListeners :: (system: *FMOD_SYSTEM, numlisteners: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_Set3DListenerAttributes :: (system: *FMOD_SYSTEM, listener: s32, pos: *FMOD_VECTOR, vel: *FMOD_VECTOR, forward: *FMOD_VECTOR, up: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_System_Get3DListenerAttributes :: (system: *FMOD_SYSTEM, listener: s32, pos: *FMOD_VECTOR, vel: *FMOD_VECTOR, forward: *FMOD_VECTOR, up: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_System_Set3DRolloffCallback :: (system: *FMOD_SYSTEM, callback: FMOD_3D_ROLLOFF_CALLBACK) -> FMOD_RESULT #foreign fmod;
FMOD_System_MixerSuspend :: (system: *FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
FMOD_System_MixerResume :: (system: *FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetDefaultMixMatrix :: (system: *FMOD_SYSTEM, sourcespeakermode: FMOD_SPEAKERMODE, targetspeakermode: FMOD_SPEAKERMODE, matrix: *float, matrixhop: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetSpeakerModeChannels :: (system: *FMOD_SYSTEM, mode: FMOD_SPEAKERMODE, channels: *s32) -> FMOD_RESULT #foreign fmod;
/* System information functions. */
FMOD_System_GetVersion :: (system: *FMOD_SYSTEM, version: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetOutputHandle :: (system: *FMOD_SYSTEM, handle: **void) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetChannelsPlaying :: (system: *FMOD_SYSTEM, channels: *s32, realchannels: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetCPUUsage :: (system: *FMOD_SYSTEM, usage: *FMOD_CPU_USAGE) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetFileUsage :: (system: *FMOD_SYSTEM, sampleBytesRead: *s64, streamBytesRead: *s64, otherBytesRead: *s64) -> FMOD_RESULT #foreign fmod;
/* Sound/DSP/Channel/FX creation and retrieval. */
FMOD_System_CreateSound :: (system: *FMOD_SYSTEM, name_or_data: *u8, mode: FMOD_MODE, exinfo: *FMOD_CREATESOUNDEXINFO, sound: **FMOD_SOUND) -> FMOD_RESULT #foreign fmod;
FMOD_System_CreateStream :: (system: *FMOD_SYSTEM, name_or_data: *u8, mode: FMOD_MODE, exinfo: *FMOD_CREATESOUNDEXINFO, sound: **FMOD_SOUND) -> FMOD_RESULT #foreign fmod;
FMOD_System_CreateDSP :: (system: *FMOD_SYSTEM, description: *FMOD_DSP_DESCRIPTION, dsp: **FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_System_CreateDSPByType :: (system: *FMOD_SYSTEM, type: FMOD_DSP_TYPE, dsp: **FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_System_CreateChannelGroup :: (system: *FMOD_SYSTEM, name: *u8, channelgroup: **FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_System_CreateSoundGroup :: (system: *FMOD_SYSTEM, name: *u8, soundgroup: **FMOD_SOUNDGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_System_CreateReverb3D :: (system: *FMOD_SYSTEM, reverb: **FMOD_REVERB3D) -> FMOD_RESULT #foreign fmod;
FMOD_System_PlaySound :: (system: *FMOD_SYSTEM, sound: *FMOD_SOUND, channelgroup: *FMOD_CHANNELGROUP, paused: FMOD_BOOL, channel: **FMOD_CHANNEL) -> FMOD_RESULT #foreign fmod;
FMOD_System_PlayDSP :: (system: *FMOD_SYSTEM, dsp: *FMOD_DSP, channelgroup: *FMOD_CHANNELGROUP, paused: FMOD_BOOL, channel: **FMOD_CHANNEL) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetChannel :: (system: *FMOD_SYSTEM, channelid: s32, channel: **FMOD_CHANNEL) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetDSPInfoByType :: (system: *FMOD_SYSTEM, type: FMOD_DSP_TYPE, description: **FMOD_DSP_DESCRIPTION) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetMasterChannelGroup :: (system: *FMOD_SYSTEM, channelgroup: **FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetMasterSoundGroup :: (system: *FMOD_SYSTEM, soundgroup: **FMOD_SOUNDGROUP) -> FMOD_RESULT #foreign fmod;
/* Routing to ports. */
FMOD_System_AttachChannelGroupToPort :: (system: *FMOD_SYSTEM, portType: FMOD_PORT_TYPE, portIndex: FMOD_PORT_INDEX, channelgroup: *FMOD_CHANNELGROUP, passThru: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_System_DetachChannelGroupFromPort :: (system: *FMOD_SYSTEM, channelgroup: *FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
/* Reverb API. */
FMOD_System_SetReverbProperties :: (system: *FMOD_SYSTEM, instance: s32, prop: *FMOD_REVERB_PROPERTIES) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetReverbProperties :: (system: *FMOD_SYSTEM, instance: s32, prop: *FMOD_REVERB_PROPERTIES) -> FMOD_RESULT #foreign fmod;
/* System level DSP functionality. */
FMOD_System_LockDSP :: (system: *FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
FMOD_System_UnlockDSP :: (system: *FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/* Recording API. */
FMOD_System_GetRecordNumDrivers :: (system: *FMOD_SYSTEM, numdrivers: *s32, numconnected: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetRecordDriverInfo :: (system: *FMOD_SYSTEM, id: s32, name: *u8, namelen: s32, guid: *FMOD_GUID, systemrate: *s32, speakermode: *FMOD_SPEAKERMODE, speakermodechannels: *s32, state: *FMOD_DRIVER_STATE) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetRecordPosition :: (system: *FMOD_SYSTEM, id: s32, position: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_System_RecordStart :: (system: *FMOD_SYSTEM, id: s32, sound: *FMOD_SOUND, loop: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_System_RecordStop :: (system: *FMOD_SYSTEM, id: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_IsRecording :: (system: *FMOD_SYSTEM, id: s32, recording: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
/* Geometry API. */
FMOD_System_CreateGeometry :: (system: *FMOD_SYSTEM, maxpolygons: s32, maxvertices: s32, geometry: **FMOD_GEOMETRY) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetGeometrySettings :: (system: *FMOD_SYSTEM, maxworldsize: float) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetGeometrySettings :: (system: *FMOD_SYSTEM, maxworldsize: *float) -> FMOD_RESULT #foreign fmod;
FMOD_System_LoadGeometry :: (system: *FMOD_SYSTEM, data: *void, datasize: s32, geometry: **FMOD_GEOMETRY) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetGeometryOcclusion :: (system: *FMOD_SYSTEM, listener: *FMOD_VECTOR, source: *FMOD_VECTOR, direct: *float, reverb: *float) -> FMOD_RESULT #foreign fmod;
/* Network functions. */
FMOD_System_SetNetworkProxy :: (system: *FMOD_SYSTEM, proxy: *u8) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetNetworkProxy :: (system: *FMOD_SYSTEM, proxy: *u8, proxylen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_SetNetworkTimeout :: (system: *FMOD_SYSTEM, timeout: s32) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetNetworkTimeout :: (system: *FMOD_SYSTEM, timeout: *s32) -> FMOD_RESULT #foreign fmod;
/* Userdata set/get. */
FMOD_System_SetUserData :: (system: *FMOD_SYSTEM, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_System_GetUserData :: (system: *FMOD_SYSTEM, userdata: **void) -> FMOD_RESULT #foreign fmod;
/* Sound API
*/
FMOD_Sound_Release :: (sound: *FMOD_SOUND) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetSystemObject :: (sound: *FMOD_SOUND, system: **FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/*
Standard sound manipulation functions.
*/
FMOD_Sound_Lock :: (sound: *FMOD_SOUND, offset: u32, length: u32, ptr1: **void, ptr2: **void, len1: *u32, len2: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_Unlock :: (sound: *FMOD_SOUND, ptr1: *void, ptr2: *void, len1: u32, len2: u32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_SetDefaults :: (sound: *FMOD_SOUND, frequency: float, priority: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetDefaults :: (sound: *FMOD_SOUND, frequency: *float, priority: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_Set3DMinMaxDistance :: (sound: *FMOD_SOUND, min: float, max: float) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_Get3DMinMaxDistance :: (sound: *FMOD_SOUND, min: *float, max: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_Set3DConeSettings :: (sound: *FMOD_SOUND, insideconeangle: float, outsideconeangle: float, outsidevolume: float) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_Get3DConeSettings :: (sound: *FMOD_SOUND, insideconeangle: *float, outsideconeangle: *float, outsidevolume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_Set3DCustomRolloff :: (sound: *FMOD_SOUND, points: *FMOD_VECTOR, numpoints: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_Get3DCustomRolloff :: (sound: *FMOD_SOUND, points: **FMOD_VECTOR, numpoints: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetSubSound :: (sound: *FMOD_SOUND, index: s32, subsound: **FMOD_SOUND) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetSubSoundParent :: (sound: *FMOD_SOUND, parentsound: **FMOD_SOUND) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetName :: (sound: *FMOD_SOUND, name: *u8, namelen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetLength :: (sound: *FMOD_SOUND, length: *u32, lengthtype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetFormat :: (sound: *FMOD_SOUND, type: *FMOD_SOUND_TYPE, format: *FMOD_SOUND_FORMAT, channels: *s32, bits: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetNumSubSounds :: (sound: *FMOD_SOUND, numsubsounds: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetNumTags :: (sound: *FMOD_SOUND, numtags: *s32, numtagsupdated: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetTag :: (sound: *FMOD_SOUND, name: *u8, index: s32, tag: *FMOD_TAG) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetOpenState :: (sound: *FMOD_SOUND, openstate: *FMOD_OPENSTATE, percentbuffered: *u32, starving: *FMOD_BOOL, diskbusy: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_ReadData :: (sound: *FMOD_SOUND, buffer: *void, length: u32, read: *u32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_SeekData :: (sound: *FMOD_SOUND, pcm: u32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_SetSoundGroup :: (sound: *FMOD_SOUND, soundgroup: *FMOD_SOUNDGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetSoundGroup :: (sound: *FMOD_SOUND, soundgroup: **FMOD_SOUNDGROUP) -> FMOD_RESULT #foreign fmod;
/*
Synchronization point API. These points can come from markers embedded in wav files, and can also generate channel callbacks.
*/
FMOD_Sound_GetNumSyncPoints :: (sound: *FMOD_SOUND, numsyncpoints: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetSyncPoint :: (sound: *FMOD_SOUND, index: s32, point: **FMOD_SYNCPOINT) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetSyncPointInfo :: (sound: *FMOD_SOUND, point: *FMOD_SYNCPOINT, name: *u8, namelen: s32, offset: *u32, offsettype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_AddSyncPoint :: (sound: *FMOD_SOUND, offset: u32, offsettype: FMOD_TIMEUNIT, name: *u8, point: **FMOD_SYNCPOINT) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_DeleteSyncPoint :: (sound: *FMOD_SOUND, point: *FMOD_SYNCPOINT) -> FMOD_RESULT #foreign fmod;
/*
Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time.
*/
FMOD_Sound_SetMode :: (sound: *FMOD_SOUND, mode: FMOD_MODE) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetMode :: (sound: *FMOD_SOUND, mode: *FMOD_MODE) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_SetLoopCount :: (sound: *FMOD_SOUND, loopcount: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetLoopCount :: (sound: *FMOD_SOUND, loopcount: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_SetLoopPoints :: (sound: *FMOD_SOUND, loopstart: u32, loopstarttype: FMOD_TIMEUNIT, loopend: u32, loopendtype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetLoopPoints :: (sound: *FMOD_SOUND, loopstart: *u32, loopstarttype: FMOD_TIMEUNIT, loopend: *u32, loopendtype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
/*
For MOD/S3M/XM/IT/MID sequenced formats only.
*/
FMOD_Sound_GetMusicNumChannels :: (sound: *FMOD_SOUND, numchannels: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_SetMusicChannelVolume :: (sound: *FMOD_SOUND, channel: s32, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetMusicChannelVolume :: (sound: *FMOD_SOUND, channel: s32, volume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_SetMusicSpeed :: (sound: *FMOD_SOUND, speed: float) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetMusicSpeed :: (sound: *FMOD_SOUND, speed: *float) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_Sound_SetUserData :: (sound: *FMOD_SOUND, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_Sound_GetUserData :: (sound: *FMOD_SOUND, userdata: **void) -> FMOD_RESULT #foreign fmod;
/*
'Channel' API
*/
FMOD_Channel_GetSystemObject :: (channel: *FMOD_CHANNEL, system: **FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/*
General control functionality for Channels and ChannelGroups.
*/
FMOD_Channel_Stop :: (channel: *FMOD_CHANNEL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetPaused :: (channel: *FMOD_CHANNEL, paused: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetPaused :: (channel: *FMOD_CHANNEL, paused: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetVolume :: (channel: *FMOD_CHANNEL, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetVolume :: (channel: *FMOD_CHANNEL, volume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetVolumeRamp :: (channel: *FMOD_CHANNEL, ramp: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetVolumeRamp :: (channel: *FMOD_CHANNEL, ramp: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetAudibility :: (channel: *FMOD_CHANNEL, audibility: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetPitch :: (channel: *FMOD_CHANNEL, pitch: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetPitch :: (channel: *FMOD_CHANNEL, pitch: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetMute :: (channel: *FMOD_CHANNEL, mute: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetMute :: (channel: *FMOD_CHANNEL, mute: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetReverbProperties :: (channel: *FMOD_CHANNEL, instance: s32, wet: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetReverbProperties :: (channel: *FMOD_CHANNEL, instance: s32, wet: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetLowPassGain :: (channel: *FMOD_CHANNEL, gain: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetLowPassGain :: (channel: *FMOD_CHANNEL, gain: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetMode :: (channel: *FMOD_CHANNEL, mode: FMOD_MODE) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetMode :: (channel: *FMOD_CHANNEL, mode: *FMOD_MODE) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetCallback :: (channel: *FMOD_CHANNEL, callback: FMOD_CHANNELCONTROL_CALLBACK) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_IsPlaying :: (channel: *FMOD_CHANNEL, isplaying: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
/*
Note all 'set' functions alter a final matrix, this is why the only get function is getMixMatrix, to avoid other get functions returning incorrect/obsolete values.
*/
FMOD_Channel_SetPan :: (channel: *FMOD_CHANNEL, pan: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetMixLevelsOutput :: (channel: *FMOD_CHANNEL, frontleft: float, frontright: float, center: float, lfe: float, surroundleft: float, surroundright: float, backleft: float, backright: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetMixLevelsInput :: (channel: *FMOD_CHANNEL, levels: *float, numlevels: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetMixMatrix :: (channel: *FMOD_CHANNEL, matrix: *float, outchannels: s32, inchannels: s32, inchannel_hop: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetMixMatrix :: (channel: *FMOD_CHANNEL, matrix: *float, outchannels: *s32, inchannels: *s32, inchannel_hop: s32) -> FMOD_RESULT #foreign fmod;
/*
Clock based functionality.
*/
FMOD_Channel_GetDSPClock :: (channel: *FMOD_CHANNEL, dspclock: *u64, parentclock: *u64) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetDelay :: (channel: *FMOD_CHANNEL, dspclock_start: u64, dspclock_end: u64, stopchannels: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetDelay :: (channel: *FMOD_CHANNEL, dspclock_start: *u64, dspclock_end: *u64, stopchannels: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_AddFadePoint :: (channel: *FMOD_CHANNEL, dspclock: u64, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetFadePointRamp :: (channel: *FMOD_CHANNEL, dspclock: u64, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_RemoveFadePoints :: (channel: *FMOD_CHANNEL, dspclock_start: u64, dspclock_end: u64) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetFadePoints :: (channel: *FMOD_CHANNEL, numpoints: *u32, point_dspclock: *u64, point_volume: *float) -> FMOD_RESULT #foreign fmod;
/*
DSP effects.
*/
FMOD_Channel_GetDSP :: (channel: *FMOD_CHANNEL, index: s32, dsp: **FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_AddDSP :: (channel: *FMOD_CHANNEL, index: s32, dsp: *FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_RemoveDSP :: (channel: *FMOD_CHANNEL, dsp: *FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetNumDSPs :: (channel: *FMOD_CHANNEL, numdsps: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetDSPIndex :: (channel: *FMOD_CHANNEL, dsp: *FMOD_DSP, index: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetDSPIndex :: (channel: *FMOD_CHANNEL, dsp: *FMOD_DSP, index: *s32) -> FMOD_RESULT #foreign fmod;
/*
3D functionality.
*/
FMOD_Channel_Set3DAttributes :: (channel: *FMOD_CHANNEL, pos: *FMOD_VECTOR, vel: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DAttributes :: (channel: *FMOD_CHANNEL, pos: *FMOD_VECTOR, vel: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DMinMaxDistance :: (channel: *FMOD_CHANNEL, mindistance: float, maxdistance: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DMinMaxDistance :: (channel: *FMOD_CHANNEL, mindistance: *float, maxdistance: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DConeSettings :: (channel: *FMOD_CHANNEL, insideconeangle: float, outsideconeangle: float, outsidevolume: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DConeSettings :: (channel: *FMOD_CHANNEL, insideconeangle: *float, outsideconeangle: *float, outsidevolume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DConeOrientation :: (channel: *FMOD_CHANNEL, orientation: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DConeOrientation :: (channel: *FMOD_CHANNEL, orientation: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DCustomRolloff :: (channel: *FMOD_CHANNEL, points: *FMOD_VECTOR, numpoints: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DCustomRolloff :: (channel: *FMOD_CHANNEL, points: **FMOD_VECTOR, numpoints: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DOcclusion :: (channel: *FMOD_CHANNEL, directocclusion: float, reverbocclusion: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DOcclusion :: (channel: *FMOD_CHANNEL, directocclusion: *float, reverbocclusion: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DSpread :: (channel: *FMOD_CHANNEL, angle: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DSpread :: (channel: *FMOD_CHANNEL, angle: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DLevel :: (channel: *FMOD_CHANNEL, level: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DLevel :: (channel: *FMOD_CHANNEL, level: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DDopplerLevel :: (channel: *FMOD_CHANNEL, level: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DDopplerLevel :: (channel: *FMOD_CHANNEL, level: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Set3DDistanceFilter :: (channel: *FMOD_CHANNEL, custom: FMOD_BOOL, customLevel: float, centerFreq: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_Get3DDistanceFilter :: (channel: *FMOD_CHANNEL, custom: *FMOD_BOOL, customLevel: *float, centerFreq: *float) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_Channel_SetUserData :: (channel: *FMOD_CHANNEL, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetUserData :: (channel: *FMOD_CHANNEL, userdata: **void) -> FMOD_RESULT #foreign fmod;
/*
Channel specific control functionality.
*/
FMOD_Channel_SetFrequency :: (channel: *FMOD_CHANNEL, frequency: float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetFrequency :: (channel: *FMOD_CHANNEL, frequency: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetPriority :: (channel: *FMOD_CHANNEL, priority: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetPriority :: (channel: *FMOD_CHANNEL, priority: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetPosition :: (channel: *FMOD_CHANNEL, position: u32, postype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetPosition :: (channel: *FMOD_CHANNEL, position: *u32, postype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetChannelGroup :: (channel: *FMOD_CHANNEL, channelgroup: *FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetChannelGroup :: (channel: *FMOD_CHANNEL, channelgroup: **FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetLoopCount :: (channel: *FMOD_CHANNEL, loopcount: s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetLoopCount :: (channel: *FMOD_CHANNEL, loopcount: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_SetLoopPoints :: (channel: *FMOD_CHANNEL, loopstart: u32, loopstarttype: FMOD_TIMEUNIT, loopend: u32, loopendtype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetLoopPoints :: (channel: *FMOD_CHANNEL, loopstart: *u32, loopstarttype: FMOD_TIMEUNIT, loopend: *u32, loopendtype: FMOD_TIMEUNIT) -> FMOD_RESULT #foreign fmod;
/*
Information only functions.
*/
FMOD_Channel_IsVirtual :: (channel: *FMOD_CHANNEL, isvirtual: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetCurrentSound :: (channel: *FMOD_CHANNEL, sound: **FMOD_SOUND) -> FMOD_RESULT #foreign fmod;
FMOD_Channel_GetIndex :: (channel: *FMOD_CHANNEL, index: *s32) -> FMOD_RESULT #foreign fmod;
/*
'ChannelGroup' API
*/
FMOD_ChannelGroup_GetSystemObject :: (channelgroup: *FMOD_CHANNELGROUP, system: **FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/*
General control functionality for Channels and ChannelGroups.
*/
FMOD_ChannelGroup_Stop :: (channelgroup: *FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetPaused :: (channelgroup: *FMOD_CHANNELGROUP, paused: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetPaused :: (channelgroup: *FMOD_CHANNELGROUP, paused: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetVolume :: (channelgroup: *FMOD_CHANNELGROUP, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetVolume :: (channelgroup: *FMOD_CHANNELGROUP, volume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetVolumeRamp :: (channelgroup: *FMOD_CHANNELGROUP, ramp: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetVolumeRamp :: (channelgroup: *FMOD_CHANNELGROUP, ramp: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetAudibility :: (channelgroup: *FMOD_CHANNELGROUP, audibility: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetPitch :: (channelgroup: *FMOD_CHANNELGROUP, pitch: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetPitch :: (channelgroup: *FMOD_CHANNELGROUP, pitch: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetMute :: (channelgroup: *FMOD_CHANNELGROUP, mute: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetMute :: (channelgroup: *FMOD_CHANNELGROUP, mute: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetReverbProperties :: (channelgroup: *FMOD_CHANNELGROUP, instance: s32, wet: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetReverbProperties :: (channelgroup: *FMOD_CHANNELGROUP, instance: s32, wet: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetLowPassGain :: (channelgroup: *FMOD_CHANNELGROUP, gain: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetLowPassGain :: (channelgroup: *FMOD_CHANNELGROUP, gain: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetMode :: (channelgroup: *FMOD_CHANNELGROUP, mode: FMOD_MODE) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetMode :: (channelgroup: *FMOD_CHANNELGROUP, mode: *FMOD_MODE) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetCallback :: (channelgroup: *FMOD_CHANNELGROUP, callback: FMOD_CHANNELCONTROL_CALLBACK) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_IsPlaying :: (channelgroup: *FMOD_CHANNELGROUP, isplaying: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
/*
Note all 'set' functions alter a final matrix, this is why the only get function is getMixMatrix, to avoid other get functions returning incorrect/obsolete values.
*/
FMOD_ChannelGroup_SetPan :: (channelgroup: *FMOD_CHANNELGROUP, pan: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetMixLevelsOutput :: (channelgroup: *FMOD_CHANNELGROUP, frontleft: float, frontright: float, center: float, lfe: float, surroundleft: float, surroundright: float, backleft: float, backright: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetMixLevelsInput :: (channelgroup: *FMOD_CHANNELGROUP, levels: *float, numlevels: s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetMixMatrix :: (channelgroup: *FMOD_CHANNELGROUP, matrix: *float, outchannels: s32, inchannels: s32, inchannel_hop: s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetMixMatrix :: (channelgroup: *FMOD_CHANNELGROUP, matrix: *float, outchannels: *s32, inchannels: *s32, inchannel_hop: s32) -> FMOD_RESULT #foreign fmod;
/*
Clock based functionality.
*/
FMOD_ChannelGroup_GetDSPClock :: (channelgroup: *FMOD_CHANNELGROUP, dspclock: *u64, parentclock: *u64) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetDelay :: (channelgroup: *FMOD_CHANNELGROUP, dspclock_start: u64, dspclock_end: u64, stopchannels: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetDelay :: (channelgroup: *FMOD_CHANNELGROUP, dspclock_start: *u64, dspclock_end: *u64, stopchannels: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_AddFadePoint :: (channelgroup: *FMOD_CHANNELGROUP, dspclock: u64, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetFadePointRamp :: (channelgroup: *FMOD_CHANNELGROUP, dspclock: u64, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_RemoveFadePoints :: (channelgroup: *FMOD_CHANNELGROUP, dspclock_start: u64, dspclock_end: u64) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetFadePoints :: (channelgroup: *FMOD_CHANNELGROUP, numpoints: *u32, point_dspclock: *u64, point_volume: *float) -> FMOD_RESULT #foreign fmod;
/*
DSP effects.
*/
FMOD_ChannelGroup_GetDSP :: (channelgroup: *FMOD_CHANNELGROUP, index: s32, dsp: **FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_AddDSP :: (channelgroup: *FMOD_CHANNELGROUP, index: s32, dsp: *FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_RemoveDSP :: (channelgroup: *FMOD_CHANNELGROUP, dsp: *FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetNumDSPs :: (channelgroup: *FMOD_CHANNELGROUP, numdsps: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_SetDSPIndex :: (channelgroup: *FMOD_CHANNELGROUP, dsp: *FMOD_DSP, index: s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetDSPIndex :: (channelgroup: *FMOD_CHANNELGROUP, dsp: *FMOD_DSP, index: *s32) -> FMOD_RESULT #foreign fmod;
/*
3D functionality.
*/
FMOD_ChannelGroup_Set3DAttributes :: (channelgroup: *FMOD_CHANNELGROUP, pos: *FMOD_VECTOR, vel: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DAttributes :: (channelgroup: *FMOD_CHANNELGROUP, pos: *FMOD_VECTOR, vel: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DMinMaxDistance :: (channelgroup: *FMOD_CHANNELGROUP, mindistance: float, maxdistance: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DMinMaxDistance :: (channelgroup: *FMOD_CHANNELGROUP, mindistance: *float, maxdistance: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DConeSettings :: (channelgroup: *FMOD_CHANNELGROUP, insideconeangle: float, outsideconeangle: float, outsidevolume: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DConeSettings :: (channelgroup: *FMOD_CHANNELGROUP, insideconeangle: *float, outsideconeangle: *float, outsidevolume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DConeOrientation :: (channelgroup: *FMOD_CHANNELGROUP, orientation: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DConeOrientation :: (channelgroup: *FMOD_CHANNELGROUP, orientation: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DCustomRolloff :: (channelgroup: *FMOD_CHANNELGROUP, points: *FMOD_VECTOR, numpoints: s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DCustomRolloff :: (channelgroup: *FMOD_CHANNELGROUP, points: **FMOD_VECTOR, numpoints: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DOcclusion :: (channelgroup: *FMOD_CHANNELGROUP, directocclusion: float, reverbocclusion: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DOcclusion :: (channelgroup: *FMOD_CHANNELGROUP, directocclusion: *float, reverbocclusion: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DSpread :: (channelgroup: *FMOD_CHANNELGROUP, angle: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DSpread :: (channelgroup: *FMOD_CHANNELGROUP, angle: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DLevel :: (channelgroup: *FMOD_CHANNELGROUP, level: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DLevel :: (channelgroup: *FMOD_CHANNELGROUP, level: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DDopplerLevel :: (channelgroup: *FMOD_CHANNELGROUP, level: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DDopplerLevel :: (channelgroup: *FMOD_CHANNELGROUP, level: *float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Set3DDistanceFilter :: (channelgroup: *FMOD_CHANNELGROUP, custom: FMOD_BOOL, customLevel: float, centerFreq: float) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Get3DDistanceFilter :: (channelgroup: *FMOD_CHANNELGROUP, custom: *FMOD_BOOL, customLevel: *float, centerFreq: *float) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_ChannelGroup_SetUserData :: (channelgroup: *FMOD_CHANNELGROUP, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetUserData :: (channelgroup: *FMOD_CHANNELGROUP, userdata: **void) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_Release :: (channelgroup: *FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
/*
Nested channel groups.
*/
FMOD_ChannelGroup_AddGroup :: (channelgroup: *FMOD_CHANNELGROUP, group: *FMOD_CHANNELGROUP, propagatedspclock: FMOD_BOOL, connection: **FMOD_DSPCONNECTION) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetNumGroups :: (channelgroup: *FMOD_CHANNELGROUP, numgroups: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetGroup :: (channelgroup: *FMOD_CHANNELGROUP, index: s32, group: **FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetParentGroup :: (channelgroup: *FMOD_CHANNELGROUP, group: **FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmod;
/*
Information only functions.
*/
FMOD_ChannelGroup_GetName :: (channelgroup: *FMOD_CHANNELGROUP, name: *u8, namelen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetNumChannels :: (channelgroup: *FMOD_CHANNELGROUP, numchannels: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_ChannelGroup_GetChannel :: (channelgroup: *FMOD_CHANNELGROUP, index: s32, channel: **FMOD_CHANNEL) -> FMOD_RESULT #foreign fmod;
/*
'SoundGroup' API
*/
FMOD_SoundGroup_Release :: (soundgroup: *FMOD_SOUNDGROUP) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetSystemObject :: (soundgroup: *FMOD_SOUNDGROUP, system: **FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/*
SoundGroup control functions.
*/
FMOD_SoundGroup_SetMaxAudible :: (soundgroup: *FMOD_SOUNDGROUP, maxaudible: s32) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetMaxAudible :: (soundgroup: *FMOD_SOUNDGROUP, maxaudible: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_SetMaxAudibleBehavior :: (soundgroup: *FMOD_SOUNDGROUP, behavior: FMOD_SOUNDGROUP_BEHAVIOR) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetMaxAudibleBehavior :: (soundgroup: *FMOD_SOUNDGROUP, behavior: *FMOD_SOUNDGROUP_BEHAVIOR) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_SetMuteFadeSpeed :: (soundgroup: *FMOD_SOUNDGROUP, speed: float) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetMuteFadeSpeed :: (soundgroup: *FMOD_SOUNDGROUP, speed: *float) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_SetVolume :: (soundgroup: *FMOD_SOUNDGROUP, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetVolume :: (soundgroup: *FMOD_SOUNDGROUP, volume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_Stop :: (soundgroup: *FMOD_SOUNDGROUP) -> FMOD_RESULT #foreign fmod;
/*
Information only functions.
*/
FMOD_SoundGroup_GetName :: (soundgroup: *FMOD_SOUNDGROUP, name: *u8, namelen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetNumSounds :: (soundgroup: *FMOD_SOUNDGROUP, numsounds: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetSound :: (soundgroup: *FMOD_SOUNDGROUP, index: s32, sound: **FMOD_SOUND) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetNumPlaying :: (soundgroup: *FMOD_SOUNDGROUP, numplaying: *s32) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_SoundGroup_SetUserData :: (soundgroup: *FMOD_SOUNDGROUP, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_SoundGroup_GetUserData :: (soundgroup: *FMOD_SOUNDGROUP, userdata: **void) -> FMOD_RESULT #foreign fmod;
/*
'DSP' API
*/
FMOD_DSP_Release :: (dsp: *FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetSystemObject :: (dsp: *FMOD_DSP, system: **FMOD_SYSTEM) -> FMOD_RESULT #foreign fmod;
/*
Connection / disconnection / input and output enumeration.
*/
FMOD_DSP_AddInput :: (dsp: *FMOD_DSP, input: *FMOD_DSP, connection: **FMOD_DSPCONNECTION, type: FMOD_DSPCONNECTION_TYPE) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_DisconnectFrom :: (dsp: *FMOD_DSP, target: *FMOD_DSP, connection: *FMOD_DSPCONNECTION) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_DisconnectAll :: (dsp: *FMOD_DSP, inputs: FMOD_BOOL, outputs: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetNumInputs :: (dsp: *FMOD_DSP, numinputs: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetNumOutputs :: (dsp: *FMOD_DSP, numoutputs: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetInput :: (dsp: *FMOD_DSP, index: s32, input: **FMOD_DSP, inputconnection: **FMOD_DSPCONNECTION) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetOutput :: (dsp: *FMOD_DSP, index: s32, output: **FMOD_DSP, outputconnection: **FMOD_DSPCONNECTION) -> FMOD_RESULT #foreign fmod;
/*
DSP unit control.
*/
FMOD_DSP_SetActive :: (dsp: *FMOD_DSP, active: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetActive :: (dsp: *FMOD_DSP, active: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_SetBypass :: (dsp: *FMOD_DSP, bypass: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetBypass :: (dsp: *FMOD_DSP, bypass: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_SetWetDryMix :: (dsp: *FMOD_DSP, prewet: float, postwet: float, dry: float) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetWetDryMix :: (dsp: *FMOD_DSP, prewet: *float, postwet: *float, dry: *float) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_SetChannelFormat :: (dsp: *FMOD_DSP, channelmask: FMOD_CHANNELMASK, numchannels: s32, source_speakermode: FMOD_SPEAKERMODE) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetChannelFormat :: (dsp: *FMOD_DSP, channelmask: *FMOD_CHANNELMASK, numchannels: *s32, source_speakermode: *FMOD_SPEAKERMODE) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetOutputChannelFormat :: (dsp: *FMOD_DSP, inmask: FMOD_CHANNELMASK, inchannels: s32, inspeakermode: FMOD_SPEAKERMODE, outmask: *FMOD_CHANNELMASK, outchannels: *s32, outspeakermode: *FMOD_SPEAKERMODE) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_Reset :: (dsp: *FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_SetCallback :: (dsp: *FMOD_DSP, callback: FMOD_DSP_CALLBACK) -> FMOD_RESULT #foreign fmod;
/*
DSP parameter control.
*/
FMOD_DSP_SetParameterFloat :: (dsp: *FMOD_DSP, index: s32, value: float) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_SetParameterInt :: (dsp: *FMOD_DSP, index: s32, value: s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_SetParameterBool :: (dsp: *FMOD_DSP, index: s32, value: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_SetParameterData :: (dsp: *FMOD_DSP, index: s32, data: *void, length: u32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetParameterFloat :: (dsp: *FMOD_DSP, index: s32, value: *float, valuestr: *u8, valuestrlen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetParameterInt :: (dsp: *FMOD_DSP, index: s32, value: *s32, valuestr: *u8, valuestrlen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetParameterBool :: (dsp: *FMOD_DSP, index: s32, value: *FMOD_BOOL, valuestr: *u8, valuestrlen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetParameterData :: (dsp: *FMOD_DSP, index: s32, data: **void, length: *u32, valuestr: *u8, valuestrlen: s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetNumParameters :: (dsp: *FMOD_DSP, numparams: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetParameterInfo :: (dsp: *FMOD_DSP, index: s32, desc: **FMOD_DSP_PARAMETER_DESC) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetDataParameterIndex :: (dsp: *FMOD_DSP, datatype: s32, index: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_ShowConfigDialog :: (dsp: *FMOD_DSP, hwnd: *void, show: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
/*
DSP attributes.
*/
FMOD_DSP_GetInfo :: (dsp: *FMOD_DSP, name: *u8, version: *u32, channels: *s32, configwidth: *s32, configheight: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetType :: (dsp: *FMOD_DSP, type: *FMOD_DSP_TYPE) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetIdle :: (dsp: *FMOD_DSP, idle: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_DSP_SetUserData :: (dsp: *FMOD_DSP, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetUserData :: (dsp: *FMOD_DSP, userdata: **void) -> FMOD_RESULT #foreign fmod;
/*
Metering.
*/
FMOD_DSP_SetMeteringEnabled :: (dsp: *FMOD_DSP, inputEnabled: FMOD_BOOL, outputEnabled: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetMeteringEnabled :: (dsp: *FMOD_DSP, inputEnabled: *FMOD_BOOL, outputEnabled: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetMeteringInfo :: (dsp: *FMOD_DSP, inputInfo: *FMOD_DSP_METERING_INFO, outputInfo: *FMOD_DSP_METERING_INFO) -> FMOD_RESULT #foreign fmod;
FMOD_DSP_GetCPUUsage :: (dsp: *FMOD_DSP, exclusive: *u32, inclusive: *u32) -> FMOD_RESULT #foreign fmod;
/*
'DSPConnection' API
*/
FMOD_DSPConnection_GetInput :: (dspconnection: *FMOD_DSPCONNECTION, input: **FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_DSPConnection_GetOutput :: (dspconnection: *FMOD_DSPCONNECTION, output: **FMOD_DSP) -> FMOD_RESULT #foreign fmod;
FMOD_DSPConnection_SetMix :: (dspconnection: *FMOD_DSPCONNECTION, volume: float) -> FMOD_RESULT #foreign fmod;
FMOD_DSPConnection_GetMix :: (dspconnection: *FMOD_DSPCONNECTION, volume: *float) -> FMOD_RESULT #foreign fmod;
FMOD_DSPConnection_SetMixMatrix :: (dspconnection: *FMOD_DSPCONNECTION, matrix: *float, outchannels: s32, inchannels: s32, inchannel_hop: s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSPConnection_GetMixMatrix :: (dspconnection: *FMOD_DSPCONNECTION, matrix: *float, outchannels: *s32, inchannels: *s32, inchannel_hop: s32) -> FMOD_RESULT #foreign fmod;
FMOD_DSPConnection_GetType :: (dspconnection: *FMOD_DSPCONNECTION, type: *FMOD_DSPCONNECTION_TYPE) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_DSPConnection_SetUserData :: (dspconnection: *FMOD_DSPCONNECTION, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_DSPConnection_GetUserData :: (dspconnection: *FMOD_DSPCONNECTION, userdata: **void) -> FMOD_RESULT #foreign fmod;
/*
'Geometry' API
*/
FMOD_Geometry_Release :: (geometry: *FMOD_GEOMETRY) -> FMOD_RESULT #foreign fmod;
/*
Polygon manipulation.
*/
FMOD_Geometry_AddPolygon :: (geometry: *FMOD_GEOMETRY, directocclusion: float, reverbocclusion: float, doublesided: FMOD_BOOL, numvertices: s32, vertices: *FMOD_VECTOR, polygonindex: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetNumPolygons :: (geometry: *FMOD_GEOMETRY, numpolygons: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetMaxPolygons :: (geometry: *FMOD_GEOMETRY, maxpolygons: *s32, maxvertices: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetPolygonNumVertices :: (geometry: *FMOD_GEOMETRY, index: s32, numvertices: *s32) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_SetPolygonVertex :: (geometry: *FMOD_GEOMETRY, index: s32, vertexindex: s32, vertex: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetPolygonVertex :: (geometry: *FMOD_GEOMETRY, index: s32, vertexindex: s32, vertex: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_SetPolygonAttributes :: (geometry: *FMOD_GEOMETRY, index: s32, directocclusion: float, reverbocclusion: float, doublesided: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetPolygonAttributes :: (geometry: *FMOD_GEOMETRY, index: s32, directocclusion: *float, reverbocclusion: *float, doublesided: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
/*
Object manipulation.
*/
FMOD_Geometry_SetActive :: (geometry: *FMOD_GEOMETRY, active: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetActive :: (geometry: *FMOD_GEOMETRY, active: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_SetRotation :: (geometry: *FMOD_GEOMETRY, forward: *FMOD_VECTOR, up: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetRotation :: (geometry: *FMOD_GEOMETRY, forward: *FMOD_VECTOR, up: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_SetPosition :: (geometry: *FMOD_GEOMETRY, position: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetPosition :: (geometry: *FMOD_GEOMETRY, position: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_SetScale :: (geometry: *FMOD_GEOMETRY, scale: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetScale :: (geometry: *FMOD_GEOMETRY, scale: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_Save :: (geometry: *FMOD_GEOMETRY, data: *void, datasize: *s32) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_Geometry_SetUserData :: (geometry: *FMOD_GEOMETRY, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_Geometry_GetUserData :: (geometry: *FMOD_GEOMETRY, userdata: **void) -> FMOD_RESULT #foreign fmod;
/*
'Reverb3D' API
*/
FMOD_Reverb3D_Release :: (reverb3d: *FMOD_REVERB3D) -> FMOD_RESULT #foreign fmod;
/*
Reverb manipulation.
*/
FMOD_Reverb3D_Set3DAttributes :: (reverb3d: *FMOD_REVERB3D, position: *FMOD_VECTOR, mindistance: float, maxdistance: float) -> FMOD_RESULT #foreign fmod;
FMOD_Reverb3D_Get3DAttributes :: (reverb3d: *FMOD_REVERB3D, position: *FMOD_VECTOR, mindistance: *float, maxdistance: *float) -> FMOD_RESULT #foreign fmod;
FMOD_Reverb3D_SetProperties :: (reverb3d: *FMOD_REVERB3D, properties: *FMOD_REVERB_PROPERTIES) -> FMOD_RESULT #foreign fmod;
FMOD_Reverb3D_GetProperties :: (reverb3d: *FMOD_REVERB3D, properties: *FMOD_REVERB_PROPERTIES) -> FMOD_RESULT #foreign fmod;
FMOD_Reverb3D_SetActive :: (reverb3d: *FMOD_REVERB3D, active: FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
FMOD_Reverb3D_GetActive :: (reverb3d: *FMOD_REVERB3D, active: *FMOD_BOOL) -> FMOD_RESULT #foreign fmod;
/*
Userdata set/get.
*/
FMOD_Reverb3D_SetUserData :: (reverb3d: *FMOD_REVERB3D, userdata: *void) -> FMOD_RESULT #foreign fmod;
FMOD_Reverb3D_GetUserData :: (reverb3d: *FMOD_REVERB3D, userdata: **void) -> FMOD_RESULT #foreign fmod;
FMOD_STUDIO_SYSTEM :: struct {}
FMOD_STUDIO_EVENTDESCRIPTION :: struct {}
FMOD_STUDIO_EVENTINSTANCE :: struct {}
FMOD_STUDIO_BUS :: struct {}
FMOD_STUDIO_VCA :: struct {}
FMOD_STUDIO_BANK :: struct {}
FMOD_STUDIO_COMMANDREPLAY :: struct {}
FMOD_STUDIO_INITFLAGS :: u32;
FMOD_STUDIO_PARAMETER_FLAGS :: u32;
FMOD_STUDIO_SYSTEM_CALLBACK_TYPE :: u32;
FMOD_STUDIO_EVENT_CALLBACK_TYPE :: u32;
FMOD_STUDIO_LOAD_BANK_FLAGS :: u32;
FMOD_STUDIO_COMMANDCAPTURE_FLAGS :: u32;
FMOD_STUDIO_COMMANDREPLAY_FLAGS :: u32;
FMOD_STUDIO_LOADING_STATE :: enum s32 {
UNLOADING :: 0;
UNLOADED :: 1;
LOADING :: 2;
LOADED :: 3;
ERROR :: 4;
FORCEINT :: 65536;
FMOD_STUDIO_LOADING_STATE_UNLOADING :: UNLOADING;
FMOD_STUDIO_LOADING_STATE_UNLOADED :: UNLOADED;
FMOD_STUDIO_LOADING_STATE_LOADING :: LOADING;
FMOD_STUDIO_LOADING_STATE_LOADED :: LOADED;
FMOD_STUDIO_LOADING_STATE_ERROR :: ERROR;
FMOD_STUDIO_LOADING_STATE_FORCEINT :: FORCEINT;
}
FMOD_STUDIO_LOAD_MEMORY_MODE :: enum s32 {
MEMORY :: 0;
MEMORY_POINT :: 1;
MEMORY_FORCEINT :: 65536;
FMOD_STUDIO_LOAD_MEMORY :: MEMORY;
FMOD_STUDIO_LOAD_MEMORY_POINT :: MEMORY_POINT;
FMOD_STUDIO_LOAD_MEMORY_FORCEINT :: MEMORY_FORCEINT;
}
FMOD_STUDIO_PARAMETER_TYPE :: enum s32 {
GAME_CONTROLLED :: 0;
AUTOMATIC_DISTANCE :: 1;
AUTOMATIC_EVENT_CONE_ANGLE :: 2;
AUTOMATIC_EVENT_ORIENTATION :: 3;
AUTOMATIC_DIRECTION :: 4;
AUTOMATIC_ELEVATION :: 5;
AUTOMATIC_LISTENER_ORIENTATION :: 6;
AUTOMATIC_SPEED :: 7;
AUTOMATIC_SPEED_ABSOLUTE :: 8;
AUTOMATIC_DISTANCE_NORMALIZED :: 9;
MAX :: 10;
FORCEINT :: 65536;
FMOD_STUDIO_PARAMETER_GAME_CONTROLLED :: GAME_CONTROLLED;
FMOD_STUDIO_PARAMETER_AUTOMATIC_DISTANCE :: AUTOMATIC_DISTANCE;
FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_CONE_ANGLE :: AUTOMATIC_EVENT_CONE_ANGLE;
FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_ORIENTATION :: AUTOMATIC_EVENT_ORIENTATION;
FMOD_STUDIO_PARAMETER_AUTOMATIC_DIRECTION :: AUTOMATIC_DIRECTION;
FMOD_STUDIO_PARAMETER_AUTOMATIC_ELEVATION :: AUTOMATIC_ELEVATION;
FMOD_STUDIO_PARAMETER_AUTOMATIC_LISTENER_ORIENTATION :: AUTOMATIC_LISTENER_ORIENTATION;
FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED :: AUTOMATIC_SPEED;
FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED_ABSOLUTE :: AUTOMATIC_SPEED_ABSOLUTE;
FMOD_STUDIO_PARAMETER_AUTOMATIC_DISTANCE_NORMALIZED :: AUTOMATIC_DISTANCE_NORMALIZED;
FMOD_STUDIO_PARAMETER_MAX :: MAX;
FMOD_STUDIO_PARAMETER_FORCEINT :: FORCEINT;
}
FMOD_STUDIO_USER_PROPERTY_TYPE :: enum s32 {
INTEGER :: 0;
BOOLEAN :: 1;
FLOAT :: 2;
STRING :: 3;
FORCEINT :: 65536;
FMOD_STUDIO_USER_PROPERTY_TYPE_INTEGER :: INTEGER;
FMOD_STUDIO_USER_PROPERTY_TYPE_BOOLEAN :: BOOLEAN;
FMOD_STUDIO_USER_PROPERTY_TYPE_FLOAT :: FLOAT;
FMOD_STUDIO_USER_PROPERTY_TYPE_STRING :: STRING;
FMOD_STUDIO_USER_PROPERTY_TYPE_FORCEINT :: FORCEINT;
}
FMOD_STUDIO_EVENT_PROPERTY :: enum s32 {
CHANNELPRIORITY :: 0;
SCHEDULE_DELAY :: 1;
SCHEDULE_LOOKAHEAD :: 2;
MINIMUM_DISTANCE :: 3;
MAXIMUM_DISTANCE :: 4;
COOLDOWN :: 5;
MAX :: 6;
FORCEINT :: 65536;
FMOD_STUDIO_EVENT_PROPERTY_CHANNELPRIORITY :: CHANNELPRIORITY;
FMOD_STUDIO_EVENT_PROPERTY_SCHEDULE_DELAY :: SCHEDULE_DELAY;
FMOD_STUDIO_EVENT_PROPERTY_SCHEDULE_LOOKAHEAD :: SCHEDULE_LOOKAHEAD;
FMOD_STUDIO_EVENT_PROPERTY_MINIMUM_DISTANCE :: MINIMUM_DISTANCE;
FMOD_STUDIO_EVENT_PROPERTY_MAXIMUM_DISTANCE :: MAXIMUM_DISTANCE;
FMOD_STUDIO_EVENT_PROPERTY_COOLDOWN :: COOLDOWN;
FMOD_STUDIO_EVENT_PROPERTY_MAX :: MAX;
FMOD_STUDIO_EVENT_PROPERTY_FORCEINT :: FORCEINT;
}
FMOD_STUDIO_PLAYBACK_STATE :: enum s32 {
PLAYING :: 0;
SUSTAINING :: 1;
STOPPED :: 2;
STARTING :: 3;
STOPPING :: 4;
FORCEINT :: 65536;
FMOD_STUDIO_PLAYBACK_PLAYING :: PLAYING;
FMOD_STUDIO_PLAYBACK_SUSTAINING :: SUSTAINING;
FMOD_STUDIO_PLAYBACK_STOPPED :: STOPPED;
FMOD_STUDIO_PLAYBACK_STARTING :: STARTING;
FMOD_STUDIO_PLAYBACK_STOPPING :: STOPPING;
FMOD_STUDIO_PLAYBACK_FORCEINT :: FORCEINT;
}
FMOD_STUDIO_STOP_MODE :: enum s32 {
ALLOWFADEOUT :: 0;
IMMEDIATE :: 1;
FORCEINT :: 65536;
FMOD_STUDIO_STOP_ALLOWFADEOUT :: ALLOWFADEOUT;
FMOD_STUDIO_STOP_IMMEDIATE :: IMMEDIATE;
FMOD_STUDIO_STOP_FORCEINT :: FORCEINT;
}
FMOD_STUDIO_INSTANCETYPE :: enum s32 {
NONE :: 0;
SYSTEM :: 1;
EVENTDESCRIPTION :: 2;
EVENTINSTANCE :: 3;
PARAMETERINSTANCE :: 4;
BUS :: 5;
VCA :: 6;
BANK :: 7;
COMMANDREPLAY :: 8;
FORCEINT :: 65536;
FMOD_STUDIO_INSTANCETYPE_NONE :: NONE;
FMOD_STUDIO_INSTANCETYPE_SYSTEM :: SYSTEM;
FMOD_STUDIO_INSTANCETYPE_EVENTDESCRIPTION :: EVENTDESCRIPTION;
FMOD_STUDIO_INSTANCETYPE_EVENTINSTANCE :: EVENTINSTANCE;
FMOD_STUDIO_INSTANCETYPE_PARAMETERINSTANCE :: PARAMETERINSTANCE;
FMOD_STUDIO_INSTANCETYPE_BUS :: BUS;
FMOD_STUDIO_INSTANCETYPE_VCA :: VCA;
FMOD_STUDIO_INSTANCETYPE_BANK :: BANK;
FMOD_STUDIO_INSTANCETYPE_COMMANDREPLAY :: COMMANDREPLAY;
FMOD_STUDIO_INSTANCETYPE_FORCEINT :: FORCEINT;
}
/*
FMOD Studio structures
*/
FMOD_STUDIO_BANK_INFO :: struct {
size: s32;
userdata: *void;
userdatalength: s32;
opencallback: FMOD_FILE_OPEN_CALLBACK;
closecallback: FMOD_FILE_CLOSE_CALLBACK;
readcallback: FMOD_FILE_READ_CALLBACK;
seekcallback: FMOD_FILE_SEEK_CALLBACK;
}
FMOD_STUDIO_PARAMETER_ID :: struct {
data1: u32;
data2: u32;
}
FMOD_STUDIO_PARAMETER_DESCRIPTION :: struct {
name: *u8;
id: FMOD_STUDIO_PARAMETER_ID;
minimum: float;
maximum: float;
defaultvalue: float;
type: FMOD_STUDIO_PARAMETER_TYPE;
flags: FMOD_STUDIO_PARAMETER_FLAGS;
guid: FMOD_GUID;
}
FMOD_STUDIO_USER_PROPERTY :: struct {
name: *u8;
type: FMOD_STUDIO_USER_PROPERTY_TYPE;
union {
intvalue: s32;
boolvalue: FMOD_BOOL;
floatvalue: float;
stringvalue: *u8;
}
}
FMOD_STUDIO_PROGRAMMER_SOUND_PROPERTIES :: struct {
name: *u8;
sound: *FMOD_SOUND;
subsoundIndex: s32;
}
FMOD_STUDIO_PLUGIN_INSTANCE_PROPERTIES :: struct {
name: *u8;
dsp: *FMOD_DSP;
}
FMOD_STUDIO_TIMELINE_MARKER_PROPERTIES :: struct {
name: *u8;
position: s32;
}
FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES :: struct {
bar: s32;
beat: s32;
position: s32;
tempo: float;
timesignatureupper: s32;
timesignaturelower: s32;
}
FMOD_STUDIO_TIMELINE_NESTED_BEAT_PROPERTIES :: struct {
eventid: FMOD_GUID;
properties: FMOD_STUDIO_TIMELINE_BEAT_PROPERTIES;
}
FMOD_STUDIO_ADVANCEDSETTINGS :: struct {
cbsize: s32;
commandqueuesize: u32;
handleinitialsize: u32;
studioupdateperiod: s32;
idlesampledatapoolsize: s32;
streamingscheduledelay: u32;
encryptionkey: *u8;
}
FMOD_STUDIO_CPU_USAGE :: struct {
update: float;
}
FMOD_STUDIO_BUFFER_INFO :: struct {
currentusage: s32;
peakusage: s32;
capacity: s32;
stallcount: s32;
stalltime: float;
}
FMOD_STUDIO_BUFFER_USAGE :: struct {
studiocommandqueue: FMOD_STUDIO_BUFFER_INFO;
studiohandle: FMOD_STUDIO_BUFFER_INFO;
}
FMOD_STUDIO_SOUND_INFO :: struct {
name_or_data: *u8;
mode: FMOD_MODE;
exinfo: FMOD_CREATESOUNDEXINFO;
subsoundindex: s32;
}
FMOD_STUDIO_COMMAND_INFO :: struct {
commandname: *u8;
parentcommandindex: s32;
framenumber: s32;
frametime: float;
instancetype: FMOD_STUDIO_INSTANCETYPE;
outputtype: FMOD_STUDIO_INSTANCETYPE;
instancehandle: u32;
outputhandle: u32;
}
FMOD_STUDIO_MEMORY_USAGE :: struct {
exclusive: s32;
inclusive: s32;
sampledata: s32;
}
/*
FMOD Studio callbacks.
*/
FMOD_STUDIO_SYSTEM_CALLBACK :: #type (system: *FMOD_STUDIO_SYSTEM, type: FMOD_STUDIO_SYSTEM_CALLBACK_TYPE, commanddata: *void, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_STUDIO_EVENT_CALLBACK :: #type (type: FMOD_STUDIO_EVENT_CALLBACK_TYPE, event: *FMOD_STUDIO_EVENTINSTANCE, parameters: *void) -> FMOD_RESULT #c_call;
FMOD_STUDIO_COMMANDREPLAY_FRAME_CALLBACK :: #type (replay: *FMOD_STUDIO_COMMANDREPLAY, commandindex: s32, currenttime: float, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_STUDIO_COMMANDREPLAY_LOAD_BANK_CALLBACK :: #type (replay: *FMOD_STUDIO_COMMANDREPLAY, commandindex: s32, bankguid: *FMOD_GUID, bankfilename: *u8, flags: FMOD_STUDIO_LOAD_BANK_FLAGS, bank: **FMOD_STUDIO_BANK, userdata: *void) -> FMOD_RESULT #c_call;
FMOD_STUDIO_COMMANDREPLAY_CREATE_INSTANCE_CALLBACK :: #type (replay: *FMOD_STUDIO_COMMANDREPLAY, commandindex: s32, eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, instance: **FMOD_STUDIO_EVENTINSTANCE, userdata: *void) -> FMOD_RESULT #c_call;
/*
Global
*/
FMOD_Studio_ParseID :: (idstring: *u8, id: *FMOD_GUID) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_Create :: (system: **FMOD_STUDIO_SYSTEM, headerversion: u32) -> FMOD_RESULT #foreign fmodstudio;
/*
System
*/
FMOD_Studio_System_IsValid :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_BOOL #foreign fmodstudio;
FMOD_Studio_System_SetAdvancedSettings :: (system: *FMOD_STUDIO_SYSTEM, settings: *FMOD_STUDIO_ADVANCEDSETTINGS) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetAdvancedSettings :: (system: *FMOD_STUDIO_SYSTEM, settings: *FMOD_STUDIO_ADVANCEDSETTINGS) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_Initialize :: (system: *FMOD_STUDIO_SYSTEM, maxchannels: s32, studioflags: FMOD_STUDIO_INITFLAGS, flags: FMOD_INITFLAGS, extradriverdata: *void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_Release :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_Update :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetCoreSystem :: (system: *FMOD_STUDIO_SYSTEM, coresystem: **FMOD_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetEvent :: (system: *FMOD_STUDIO_SYSTEM, pathOrID: *u8, event: **FMOD_STUDIO_EVENTDESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetBus :: (system: *FMOD_STUDIO_SYSTEM, pathOrID: *u8, bus: **FMOD_STUDIO_BUS) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetVCA :: (system: *FMOD_STUDIO_SYSTEM, pathOrID: *u8, vca: **FMOD_STUDIO_VCA) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetBank :: (system: *FMOD_STUDIO_SYSTEM, pathOrID: *u8, bank: **FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetEventByID :: (system: *FMOD_STUDIO_SYSTEM, id: *FMOD_GUID, event: **FMOD_STUDIO_EVENTDESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetBusByID :: (system: *FMOD_STUDIO_SYSTEM, id: *FMOD_GUID, bus: **FMOD_STUDIO_BUS) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetVCAByID :: (system: *FMOD_STUDIO_SYSTEM, id: *FMOD_GUID, vca: **FMOD_STUDIO_VCA) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetBankByID :: (system: *FMOD_STUDIO_SYSTEM, id: *FMOD_GUID, bank: **FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetSoundInfo :: (system: *FMOD_STUDIO_SYSTEM, key: *u8, info: *FMOD_STUDIO_SOUND_INFO) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterDescriptionByName :: (system: *FMOD_STUDIO_SYSTEM, name: *u8, parameter: *FMOD_STUDIO_PARAMETER_DESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterDescriptionByID :: (system: *FMOD_STUDIO_SYSTEM, id: FMOD_STUDIO_PARAMETER_ID, parameter: *FMOD_STUDIO_PARAMETER_DESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterLabelByName :: (system: *FMOD_STUDIO_SYSTEM, name: *u8, labelindex: s32, label: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterLabelByID :: (system: *FMOD_STUDIO_SYSTEM, id: FMOD_STUDIO_PARAMETER_ID, labelindex: s32, label: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterByID :: (system: *FMOD_STUDIO_SYSTEM, id: FMOD_STUDIO_PARAMETER_ID, value: *float, finalvalue: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetParameterByID :: (system: *FMOD_STUDIO_SYSTEM, id: FMOD_STUDIO_PARAMETER_ID, value: float, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetParameterByIDWithLabel :: (system: *FMOD_STUDIO_SYSTEM, id: FMOD_STUDIO_PARAMETER_ID, label: *u8, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetParametersByIDs :: (system: *FMOD_STUDIO_SYSTEM, ids: *FMOD_STUDIO_PARAMETER_ID, values: *float, count: s32, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterByName :: (system: *FMOD_STUDIO_SYSTEM, name: *u8, value: *float, finalvalue: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetParameterByName :: (system: *FMOD_STUDIO_SYSTEM, name: *u8, value: float, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetParameterByNameWithLabel :: (system: *FMOD_STUDIO_SYSTEM, name: *u8, label: *u8, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_LookupID :: (system: *FMOD_STUDIO_SYSTEM, path: *u8, id: *FMOD_GUID) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_LookupPath :: (system: *FMOD_STUDIO_SYSTEM, id: *FMOD_GUID, path: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetNumListeners :: (system: *FMOD_STUDIO_SYSTEM, numlisteners: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetNumListeners :: (system: *FMOD_STUDIO_SYSTEM, numlisteners: s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetListenerAttributes :: (system: *FMOD_STUDIO_SYSTEM, index: s32, attributes: *FMOD_3D_ATTRIBUTES, attenuationposition: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetListenerAttributes :: (system: *FMOD_STUDIO_SYSTEM, index: s32, attributes: *FMOD_3D_ATTRIBUTES, attenuationposition: *FMOD_VECTOR) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetListenerWeight :: (system: *FMOD_STUDIO_SYSTEM, index: s32, weight: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetListenerWeight :: (system: *FMOD_STUDIO_SYSTEM, index: s32, weight: float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_LoadBankFile :: (system: *FMOD_STUDIO_SYSTEM, filename: *u8, flags: FMOD_STUDIO_LOAD_BANK_FLAGS, bank: **FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_LoadBankMemory :: (system: *FMOD_STUDIO_SYSTEM, buffer: *u8, length: s32, mode: FMOD_STUDIO_LOAD_MEMORY_MODE, flags: FMOD_STUDIO_LOAD_BANK_FLAGS, bank: **FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_LoadBankCustom :: (system: *FMOD_STUDIO_SYSTEM, info: *FMOD_STUDIO_BANK_INFO, flags: FMOD_STUDIO_LOAD_BANK_FLAGS, bank: **FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_RegisterPlugin :: (system: *FMOD_STUDIO_SYSTEM, description: *FMOD_DSP_DESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_UnregisterPlugin :: (system: *FMOD_STUDIO_SYSTEM, name: *u8) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_UnloadAll :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_FlushCommands :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_FlushSampleLoading :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_StartCommandCapture :: (system: *FMOD_STUDIO_SYSTEM, filename: *u8, flags: FMOD_STUDIO_COMMANDCAPTURE_FLAGS) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_StopCommandCapture :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_LoadCommandReplay :: (system: *FMOD_STUDIO_SYSTEM, filename: *u8, flags: FMOD_STUDIO_COMMANDREPLAY_FLAGS, replay: **FMOD_STUDIO_COMMANDREPLAY) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetBankCount :: (system: *FMOD_STUDIO_SYSTEM, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetBankList :: (system: *FMOD_STUDIO_SYSTEM, array: **FMOD_STUDIO_BANK, capacity: s32, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterDescriptionCount :: (system: *FMOD_STUDIO_SYSTEM, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetParameterDescriptionList :: (system: *FMOD_STUDIO_SYSTEM, array: *FMOD_STUDIO_PARAMETER_DESCRIPTION, capacity: s32, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetCPUUsage :: (system: *FMOD_STUDIO_SYSTEM, usage: *FMOD_STUDIO_CPU_USAGE, usage_core: *FMOD_CPU_USAGE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetBufferUsage :: (system: *FMOD_STUDIO_SYSTEM, usage: *FMOD_STUDIO_BUFFER_USAGE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_ResetBufferUsage :: (system: *FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetCallback :: (system: *FMOD_STUDIO_SYSTEM, callback: FMOD_STUDIO_SYSTEM_CALLBACK, callbackmask: FMOD_STUDIO_SYSTEM_CALLBACK_TYPE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_SetUserData :: (system: *FMOD_STUDIO_SYSTEM, userdata: *void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetUserData :: (system: *FMOD_STUDIO_SYSTEM, userdata: **void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_System_GetMemoryUsage :: (system: *FMOD_STUDIO_SYSTEM, memoryusage: *FMOD_STUDIO_MEMORY_USAGE) -> FMOD_RESULT #foreign fmodstudio;
/*
EventDescription
*/
FMOD_Studio_EventDescription_IsValid :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION) -> FMOD_BOOL #foreign fmodstudio;
FMOD_Studio_EventDescription_GetID :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, id: *FMOD_GUID) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetPath :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, path: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetParameterDescriptionCount :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetParameterDescriptionByIndex :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, index: s32, parameter: *FMOD_STUDIO_PARAMETER_DESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetParameterDescriptionByName :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, name: *u8, parameter: *FMOD_STUDIO_PARAMETER_DESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetParameterDescriptionByID :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, id: FMOD_STUDIO_PARAMETER_ID, parameter: *FMOD_STUDIO_PARAMETER_DESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetParameterLabelByIndex :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, index: s32, labelindex: s32, label: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetParameterLabelByName :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, name: *u8, labelindex: s32, label: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetParameterLabelByID :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, id: FMOD_STUDIO_PARAMETER_ID, labelindex: s32, label: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetUserPropertyCount :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetUserPropertyByIndex :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, index: s32, property: *FMOD_STUDIO_USER_PROPERTY) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetUserProperty :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, name: *u8, property: *FMOD_STUDIO_USER_PROPERTY) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetLength :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, length: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetMinMaxDistance :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, min: *float, max: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetSoundSize :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, size: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_IsSnapshot :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, snapshot: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_IsOneshot :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, oneshot: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_IsStream :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, isStream: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_Is3D :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, is3D: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_IsDopplerEnabled :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, doppler: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_HasSustainPoint :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, sustainPoint: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_CreateInstance :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, instance: **FMOD_STUDIO_EVENTINSTANCE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetInstanceCount :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetInstanceList :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, array: **FMOD_STUDIO_EVENTINSTANCE, capacity: s32, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_LoadSampleData :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_UnloadSampleData :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetSampleLoadingState :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, state: *FMOD_STUDIO_LOADING_STATE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_ReleaseAllInstances :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_SetCallback :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, callback: FMOD_STUDIO_EVENT_CALLBACK, callbackmask: FMOD_STUDIO_EVENT_CALLBACK_TYPE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_GetUserData :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, userdata: **void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventDescription_SetUserData :: (eventdescription: *FMOD_STUDIO_EVENTDESCRIPTION, userdata: *void) -> FMOD_RESULT #foreign fmodstudio;
/*
EventInstance
*/
FMOD_Studio_EventInstance_IsValid :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE) -> FMOD_BOOL #foreign fmodstudio;
FMOD_Studio_EventInstance_GetDescription :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, description: **FMOD_STUDIO_EVENTDESCRIPTION) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetVolume :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, volume: *float, finalvolume: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetVolume :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, volume: float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetPitch :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, pitch: *float, finalpitch: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetPitch :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, pitch: float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_Get3DAttributes :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, attributes: *FMOD_3D_ATTRIBUTES) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_Set3DAttributes :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, attributes: *FMOD_3D_ATTRIBUTES) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetListenerMask :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, mask: *u32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetListenerMask :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, mask: u32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetProperty :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, index: FMOD_STUDIO_EVENT_PROPERTY, value: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetProperty :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, index: FMOD_STUDIO_EVENT_PROPERTY, value: float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetReverbLevel :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, index: s32, level: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetReverbLevel :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, index: s32, level: float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetPaused :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, paused: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetPaused :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, paused: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_Start :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_Stop :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, mode: FMOD_STUDIO_STOP_MODE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetTimelinePosition :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, position: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetTimelinePosition :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, position: s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetPlaybackState :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, state: *FMOD_STUDIO_PLAYBACK_STATE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetChannelGroup :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, group: **FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetMinMaxDistance :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, min: *float, max: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_Release :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_IsVirtual :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, virtualstate: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetParameterByName :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, name: *u8, value: *float, finalvalue: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetParameterByName :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, name: *u8, value: float, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetParameterByNameWithLabel :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, name: *u8, label: *u8, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetParameterByID :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, id: FMOD_STUDIO_PARAMETER_ID, value: *float, finalvalue: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetParameterByID :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, id: FMOD_STUDIO_PARAMETER_ID, value: float, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetParameterByIDWithLabel :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, id: FMOD_STUDIO_PARAMETER_ID, label: *u8, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetParametersByIDs :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, ids: *FMOD_STUDIO_PARAMETER_ID, values: *float, count: s32, ignoreseekspeed: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_KeyOff :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetCallback :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, callback: FMOD_STUDIO_EVENT_CALLBACK, callbackmask: FMOD_STUDIO_EVENT_CALLBACK_TYPE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetUserData :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, userdata: **void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_SetUserData :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, userdata: *void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetCPUUsage :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, exclusive: *u32, inclusive: *u32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_EventInstance_GetMemoryUsage :: (eventinstance: *FMOD_STUDIO_EVENTINSTANCE, memoryusage: *FMOD_STUDIO_MEMORY_USAGE) -> FMOD_RESULT #foreign fmodstudio;
/*
Bus
*/
FMOD_Studio_Bus_IsValid :: (bus: *FMOD_STUDIO_BUS) -> FMOD_BOOL #foreign fmodstudio;
FMOD_Studio_Bus_GetID :: (bus: *FMOD_STUDIO_BUS, id: *FMOD_GUID) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetPath :: (bus: *FMOD_STUDIO_BUS, path: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetVolume :: (bus: *FMOD_STUDIO_BUS, volume: *float, finalvolume: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_SetVolume :: (bus: *FMOD_STUDIO_BUS, volume: float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetPaused :: (bus: *FMOD_STUDIO_BUS, paused: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_SetPaused :: (bus: *FMOD_STUDIO_BUS, paused: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetMute :: (bus: *FMOD_STUDIO_BUS, mute: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_SetMute :: (bus: *FMOD_STUDIO_BUS, mute: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_StopAllEvents :: (bus: *FMOD_STUDIO_BUS, mode: FMOD_STUDIO_STOP_MODE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetPortIndex :: (bus: *FMOD_STUDIO_BUS, index: *FMOD_PORT_INDEX) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_SetPortIndex :: (bus: *FMOD_STUDIO_BUS, index: FMOD_PORT_INDEX) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_LockChannelGroup :: (bus: *FMOD_STUDIO_BUS) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_UnlockChannelGroup :: (bus: *FMOD_STUDIO_BUS) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetChannelGroup :: (bus: *FMOD_STUDIO_BUS, group: **FMOD_CHANNELGROUP) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetCPUUsage :: (bus: *FMOD_STUDIO_BUS, exclusive: *u32, inclusive: *u32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bus_GetMemoryUsage :: (bus: *FMOD_STUDIO_BUS, memoryusage: *FMOD_STUDIO_MEMORY_USAGE) -> FMOD_RESULT #foreign fmodstudio;
/*
VCA
*/
FMOD_Studio_VCA_IsValid :: (vca: *FMOD_STUDIO_VCA) -> FMOD_BOOL #foreign fmodstudio;
FMOD_Studio_VCA_GetID :: (vca: *FMOD_STUDIO_VCA, id: *FMOD_GUID) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_VCA_GetPath :: (vca: *FMOD_STUDIO_VCA, path: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_VCA_GetVolume :: (vca: *FMOD_STUDIO_VCA, volume: *float, finalvolume: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_VCA_SetVolume :: (vca: *FMOD_STUDIO_VCA, volume: float) -> FMOD_RESULT #foreign fmodstudio;
/*
Bank
*/
FMOD_Studio_Bank_IsValid :: (bank: *FMOD_STUDIO_BANK) -> FMOD_BOOL #foreign fmodstudio;
FMOD_Studio_Bank_GetID :: (bank: *FMOD_STUDIO_BANK, id: *FMOD_GUID) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetPath :: (bank: *FMOD_STUDIO_BANK, path: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_Unload :: (bank: *FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_LoadSampleData :: (bank: *FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_UnloadSampleData :: (bank: *FMOD_STUDIO_BANK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetLoadingState :: (bank: *FMOD_STUDIO_BANK, state: *FMOD_STUDIO_LOADING_STATE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetSampleLoadingState :: (bank: *FMOD_STUDIO_BANK, state: *FMOD_STUDIO_LOADING_STATE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetStringCount :: (bank: *FMOD_STUDIO_BANK, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetStringInfo :: (bank: *FMOD_STUDIO_BANK, index: s32, id: *FMOD_GUID, path: *u8, size: s32, retrieved: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetEventCount :: (bank: *FMOD_STUDIO_BANK, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetEventList :: (bank: *FMOD_STUDIO_BANK, array: **FMOD_STUDIO_EVENTDESCRIPTION, capacity: s32, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetBusCount :: (bank: *FMOD_STUDIO_BANK, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetBusList :: (bank: *FMOD_STUDIO_BANK, array: **FMOD_STUDIO_BUS, capacity: s32, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetVCACount :: (bank: *FMOD_STUDIO_BANK, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetVCAList :: (bank: *FMOD_STUDIO_BANK, array: **FMOD_STUDIO_VCA, capacity: s32, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_GetUserData :: (bank: *FMOD_STUDIO_BANK, userdata: **void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_Bank_SetUserData :: (bank: *FMOD_STUDIO_BANK, userdata: *void) -> FMOD_RESULT #foreign fmodstudio;
/*
Command playback information
*/
FMOD_Studio_CommandReplay_IsValid :: (replay: *FMOD_STUDIO_COMMANDREPLAY) -> FMOD_BOOL #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetSystem :: (replay: *FMOD_STUDIO_COMMANDREPLAY, system: **FMOD_STUDIO_SYSTEM) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetLength :: (replay: *FMOD_STUDIO_COMMANDREPLAY, length: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetCommandCount :: (replay: *FMOD_STUDIO_COMMANDREPLAY, count: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetCommandInfo :: (replay: *FMOD_STUDIO_COMMANDREPLAY, commandindex: s32, info: *FMOD_STUDIO_COMMAND_INFO) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetCommandString :: (replay: *FMOD_STUDIO_COMMANDREPLAY, commandindex: s32, buffer: *u8, length: s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetCommandAtTime :: (replay: *FMOD_STUDIO_COMMANDREPLAY, time: float, commandindex: *s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SetBankPath :: (replay: *FMOD_STUDIO_COMMANDREPLAY, bankPath: *u8) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_Start :: (replay: *FMOD_STUDIO_COMMANDREPLAY) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_Stop :: (replay: *FMOD_STUDIO_COMMANDREPLAY) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SeekToTime :: (replay: *FMOD_STUDIO_COMMANDREPLAY, time: float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SeekToCommand :: (replay: *FMOD_STUDIO_COMMANDREPLAY, commandindex: s32) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetPaused :: (replay: *FMOD_STUDIO_COMMANDREPLAY, paused: *FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SetPaused :: (replay: *FMOD_STUDIO_COMMANDREPLAY, paused: FMOD_BOOL) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetPlaybackState :: (replay: *FMOD_STUDIO_COMMANDREPLAY, state: *FMOD_STUDIO_PLAYBACK_STATE) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetCurrentCommand :: (replay: *FMOD_STUDIO_COMMANDREPLAY, commandindex: *s32, currenttime: *float) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_Release :: (replay: *FMOD_STUDIO_COMMANDREPLAY) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SetFrameCallback :: (replay: *FMOD_STUDIO_COMMANDREPLAY, callback: FMOD_STUDIO_COMMANDREPLAY_FRAME_CALLBACK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SetLoadBankCallback :: (replay: *FMOD_STUDIO_COMMANDREPLAY, callback: FMOD_STUDIO_COMMANDREPLAY_LOAD_BANK_CALLBACK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SetCreateInstanceCallback :: (replay: *FMOD_STUDIO_COMMANDREPLAY, callback: FMOD_STUDIO_COMMANDREPLAY_CREATE_INSTANCE_CALLBACK) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_GetUserData :: (replay: *FMOD_STUDIO_COMMANDREPLAY, userdata: **void) -> FMOD_RESULT #foreign fmodstudio;
FMOD_Studio_CommandReplay_SetUserData :: (replay: *FMOD_STUDIO_COMMANDREPLAY, userdata: *void) -> FMOD_RESULT #foreign fmodstudio;
#scope_file
fmod :: #library "lib/x64/fmod";
fmodstudio :: #library,no_dll "lib/x64/fmodstudio";