From c94e3355b2b7c769a8b9c69d8fcda46fb242b585 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 10 Mar 2018 17:13:22 +0200 Subject: [PATCH] - FMOD Studio --- fmodstudio/inc/fmod.h | 720 ------------ fmodstudio/inc/fmod.hpp | 606 ---------- fmodstudio/inc/fmod_codec.h | 178 --- fmodstudio/inc/fmod_common.h | 1709 ----------------------------- fmodstudio/inc/fmod_dsp.h | 852 -------------- fmodstudio/inc/fmod_dsp_effects.h | 1153 ------------------- fmodstudio/inc/fmod_errors.h | 113 -- fmodstudio/inc/fmod_output.h | 174 --- fmodstudio/lib/libfmod.dylib | Bin 1414224 -> 0 bytes 9 files changed, 5505 deletions(-) delete mode 100644 fmodstudio/inc/fmod.h delete mode 100644 fmodstudio/inc/fmod.hpp delete mode 100644 fmodstudio/inc/fmod_codec.h delete mode 100644 fmodstudio/inc/fmod_common.h delete mode 100644 fmodstudio/inc/fmod_dsp.h delete mode 100644 fmodstudio/inc/fmod_dsp_effects.h delete mode 100644 fmodstudio/inc/fmod_errors.h delete mode 100644 fmodstudio/inc/fmod_output.h delete mode 100644 fmodstudio/lib/libfmod.dylib diff --git a/fmodstudio/inc/fmod.h b/fmodstudio/inc/fmod.h deleted file mode 100644 index da25526e..00000000 --- a/fmodstudio/inc/fmod.h +++ /dev/null @@ -1,720 +0,0 @@ -/*$ preserve start $*/ - -/* ======================================================================================== */ -/* FMOD Studio Low Level API - C header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2012-2016. */ -/* */ -/* Use this header in conjunction with fmod_common.h (which contains all the constants / */ -/* callbacks) to develop using C interface. */ -/* ======================================================================================== */ - -#ifndef _FMOD_H -#define _FMOD_H - -#include "fmod_common.h" - -/* ========================================================================================== */ -/* FUNCTION PROTOTYPES */ -/* ========================================================================================== */ - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* - FMOD global system functions (optional). -*/ - -FMOD_RESULT F_API FMOD_Memory_Initialize (void *poolmem, int poollen, FMOD_MEMORY_ALLOC_CALLBACK useralloc, FMOD_MEMORY_REALLOC_CALLBACK userrealloc, FMOD_MEMORY_FREE_CALLBACK userfree, FMOD_MEMORY_TYPE memtypeflags); -FMOD_RESULT F_API FMOD_Memory_GetStats (int *currentalloced, int *maxalloced, FMOD_BOOL blocking); -FMOD_RESULT F_API FMOD_Debug_Initialize (FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode, FMOD_DEBUG_CALLBACK callback, const char *filename); -FMOD_RESULT F_API FMOD_File_SetDiskBusy (int busy); -FMOD_RESULT F_API FMOD_File_GetDiskBusy (int *busy); - -/* - FMOD System factory functions. Use this to create an FMOD System Instance. below you will see FMOD_System_Init/Close to get started. -*/ - -FMOD_RESULT F_API FMOD_System_Create (FMOD_SYSTEM **system); -FMOD_RESULT F_API FMOD_System_Release (FMOD_SYSTEM *system); - -/*$ preserve end $*/ - -/* - 'System' API -*/ - -/* - Setup functions. -*/ - -FMOD_RESULT F_API FMOD_System_SetOutput (FMOD_SYSTEM *system, FMOD_OUTPUTTYPE output); -FMOD_RESULT F_API FMOD_System_GetOutput (FMOD_SYSTEM *system, FMOD_OUTPUTTYPE *output); -FMOD_RESULT F_API FMOD_System_GetNumDrivers (FMOD_SYSTEM *system, int *numdrivers); -FMOD_RESULT F_API FMOD_System_GetDriverInfo (FMOD_SYSTEM *system, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels); -FMOD_RESULT F_API FMOD_System_SetDriver (FMOD_SYSTEM *system, int driver); -FMOD_RESULT F_API FMOD_System_GetDriver (FMOD_SYSTEM *system, int *driver); -FMOD_RESULT F_API FMOD_System_SetSoftwareChannels (FMOD_SYSTEM *system, int numsoftwarechannels); -FMOD_RESULT F_API FMOD_System_GetSoftwareChannels (FMOD_SYSTEM *system, int *numsoftwarechannels); -FMOD_RESULT F_API FMOD_System_SetSoftwareFormat (FMOD_SYSTEM *system, int samplerate, FMOD_SPEAKERMODE speakermode, int numrawspeakers); -FMOD_RESULT F_API FMOD_System_GetSoftwareFormat (FMOD_SYSTEM *system, int *samplerate, FMOD_SPEAKERMODE *speakermode, int *numrawspeakers); -FMOD_RESULT F_API FMOD_System_SetDSPBufferSize (FMOD_SYSTEM *system, unsigned int bufferlength, int numbuffers); -FMOD_RESULT F_API FMOD_System_GetDSPBufferSize (FMOD_SYSTEM *system, unsigned int *bufferlength, int *numbuffers); -FMOD_RESULT F_API FMOD_System_SetFileSystem (FMOD_SYSTEM *system, FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek, FMOD_FILE_ASYNCREAD_CALLBACK userasyncread, FMOD_FILE_ASYNCCANCEL_CALLBACK userasynccancel, int blockalign); -FMOD_RESULT F_API FMOD_System_AttachFileSystem (FMOD_SYSTEM *system, FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek); -FMOD_RESULT F_API FMOD_System_SetAdvancedSettings (FMOD_SYSTEM *system, FMOD_ADVANCEDSETTINGS *settings); -FMOD_RESULT F_API FMOD_System_GetAdvancedSettings (FMOD_SYSTEM *system, FMOD_ADVANCEDSETTINGS *settings); -FMOD_RESULT F_API FMOD_System_SetCallback (FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK callback, FMOD_SYSTEM_CALLBACK_TYPE callbackmask); - -/* - Plug-in support. -*/ - -FMOD_RESULT F_API FMOD_System_SetPluginPath (FMOD_SYSTEM *system, const char *path); -FMOD_RESULT F_API FMOD_System_LoadPlugin (FMOD_SYSTEM *system, const char *filename, unsigned int *handle, unsigned int priority); -FMOD_RESULT F_API FMOD_System_UnloadPlugin (FMOD_SYSTEM *system, unsigned int handle); -FMOD_RESULT F_API FMOD_System_GetNumNestedPlugins (FMOD_SYSTEM *system, unsigned int handle, int *count); -FMOD_RESULT F_API FMOD_System_GetNestedPlugin (FMOD_SYSTEM *system, unsigned int handle, int index, unsigned int *nestedhandle); -FMOD_RESULT F_API FMOD_System_GetNumPlugins (FMOD_SYSTEM *system, FMOD_PLUGINTYPE plugintype, int *numplugins); -FMOD_RESULT F_API FMOD_System_GetPluginHandle (FMOD_SYSTEM *system, FMOD_PLUGINTYPE plugintype, int index, unsigned int *handle); -FMOD_RESULT F_API FMOD_System_GetPluginInfo (FMOD_SYSTEM *system, unsigned int handle, FMOD_PLUGINTYPE *plugintype, char *name, int namelen, unsigned int *version); -FMOD_RESULT F_API FMOD_System_SetOutputByPlugin (FMOD_SYSTEM *system, unsigned int handle); -FMOD_RESULT F_API FMOD_System_GetOutputByPlugin (FMOD_SYSTEM *system, unsigned int *handle); -FMOD_RESULT F_API FMOD_System_CreateDSPByPlugin (FMOD_SYSTEM *system, unsigned int handle, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_System_GetDSPInfoByPlugin (FMOD_SYSTEM *system, unsigned int handle, const FMOD_DSP_DESCRIPTION **description); -FMOD_RESULT F_API FMOD_System_RegisterCodec (FMOD_SYSTEM *system, FMOD_CODEC_DESCRIPTION *description, unsigned int *handle, unsigned int priority); -FMOD_RESULT F_API FMOD_System_RegisterDSP (FMOD_SYSTEM *system, const FMOD_DSP_DESCRIPTION *description, unsigned int *handle); -FMOD_RESULT F_API FMOD_System_RegisterOutput (FMOD_SYSTEM *system, const FMOD_OUTPUT_DESCRIPTION *description, unsigned int *handle); - -/* - Init/Close. -*/ - -FMOD_RESULT F_API FMOD_System_Init (FMOD_SYSTEM *system, int maxchannels, FMOD_INITFLAGS flags, void *extradriverdata); -FMOD_RESULT F_API FMOD_System_Close (FMOD_SYSTEM *system); - -/* - General post-init system functions. -*/ - -FMOD_RESULT F_API FMOD_System_Update (FMOD_SYSTEM *system); - -FMOD_RESULT F_API FMOD_System_SetSpeakerPosition (FMOD_SYSTEM *system, FMOD_SPEAKER speaker, float x, float y, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_System_GetSpeakerPosition (FMOD_SYSTEM *system, FMOD_SPEAKER speaker, float *x, float *y, FMOD_BOOL *active); -FMOD_RESULT F_API FMOD_System_SetStreamBufferSize (FMOD_SYSTEM *system, unsigned int filebuffersize, FMOD_TIMEUNIT filebuffersizetype); -FMOD_RESULT F_API FMOD_System_GetStreamBufferSize (FMOD_SYSTEM *system, unsigned int *filebuffersize, FMOD_TIMEUNIT *filebuffersizetype); -FMOD_RESULT F_API FMOD_System_Set3DSettings (FMOD_SYSTEM *system, float dopplerscale, float distancefactor, float rolloffscale); -FMOD_RESULT F_API FMOD_System_Get3DSettings (FMOD_SYSTEM *system, float *dopplerscale, float *distancefactor, float *rolloffscale); -FMOD_RESULT F_API FMOD_System_Set3DNumListeners (FMOD_SYSTEM *system, int numlisteners); -FMOD_RESULT F_API FMOD_System_Get3DNumListeners (FMOD_SYSTEM *system, int *numlisteners); -FMOD_RESULT F_API FMOD_System_Set3DListenerAttributes (FMOD_SYSTEM *system, int listener, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *forward, const FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_System_Get3DListenerAttributes (FMOD_SYSTEM *system, int listener, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *forward, FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_System_Set3DRolloffCallback (FMOD_SYSTEM *system, FMOD_3D_ROLLOFF_CALLBACK callback); -FMOD_RESULT F_API FMOD_System_MixerSuspend (FMOD_SYSTEM *system); -FMOD_RESULT F_API FMOD_System_MixerResume (FMOD_SYSTEM *system); -FMOD_RESULT F_API FMOD_System_GetDefaultMixMatrix (FMOD_SYSTEM *system, FMOD_SPEAKERMODE sourcespeakermode, FMOD_SPEAKERMODE targetspeakermode, float *matrix, int matrixhop); -FMOD_RESULT F_API FMOD_System_GetSpeakerModeChannels (FMOD_SYSTEM *system, FMOD_SPEAKERMODE mode, int *channels); - -/* - System information functions. -*/ - -FMOD_RESULT F_API FMOD_System_GetVersion (FMOD_SYSTEM *system, unsigned int *version); -FMOD_RESULT F_API FMOD_System_GetOutputHandle (FMOD_SYSTEM *system, void **handle); -FMOD_RESULT F_API FMOD_System_GetChannelsPlaying (FMOD_SYSTEM *system, int *channels, int *realchannels); -FMOD_RESULT F_API FMOD_System_GetCPUUsage (FMOD_SYSTEM *system, float *dsp, float *stream, float *geometry, float *update, float *total); -FMOD_RESULT F_API FMOD_System_GetFileUsage (FMOD_SYSTEM *system, long long *sampleBytesRead, long long *streamBytesRead, long long *otherBytesRead); -FMOD_RESULT F_API FMOD_System_GetSoundRAM (FMOD_SYSTEM *system, int *currentalloced, int *maxalloced, int *total); - -/* - Sound/DSP/Channel/FX creation and retrieval. -*/ - -FMOD_RESULT F_API FMOD_System_CreateSound (FMOD_SYSTEM *system, const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_System_CreateStream (FMOD_SYSTEM *system, const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_System_CreateDSP (FMOD_SYSTEM *system, const FMOD_DSP_DESCRIPTION *description, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_System_CreateDSPByType (FMOD_SYSTEM *system, FMOD_DSP_TYPE type, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_System_CreateChannelGroup (FMOD_SYSTEM *system, const char *name, FMOD_CHANNELGROUP **channelgroup); -FMOD_RESULT F_API FMOD_System_CreateSoundGroup (FMOD_SYSTEM *system, const char *name, FMOD_SOUNDGROUP **soundgroup); -FMOD_RESULT F_API FMOD_System_CreateReverb3D (FMOD_SYSTEM *system, FMOD_REVERB3D **reverb); - -FMOD_RESULT F_API FMOD_System_PlaySound (FMOD_SYSTEM *system, FMOD_SOUND *sound, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel); -FMOD_RESULT F_API FMOD_System_PlayDSP (FMOD_SYSTEM *system, FMOD_DSP *dsp, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel); -FMOD_RESULT F_API FMOD_System_GetChannel (FMOD_SYSTEM *system, int channelid, FMOD_CHANNEL **channel); -FMOD_RESULT F_API FMOD_System_GetMasterChannelGroup (FMOD_SYSTEM *system, FMOD_CHANNELGROUP **channelgroup); -FMOD_RESULT F_API FMOD_System_GetMasterSoundGroup (FMOD_SYSTEM *system, FMOD_SOUNDGROUP **soundgroup); - -/* - Routing to ports. -*/ - -FMOD_RESULT F_API FMOD_System_AttachChannelGroupToPort (FMOD_SYSTEM *system, FMOD_PORT_TYPE portType, FMOD_PORT_INDEX portIndex, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL passThru); -FMOD_RESULT F_API FMOD_System_DetachChannelGroupFromPort(FMOD_SYSTEM *system, FMOD_CHANNELGROUP *channelgroup); - -/* - Reverb API. -*/ - -FMOD_RESULT F_API FMOD_System_SetReverbProperties (FMOD_SYSTEM *system, int instance, const FMOD_REVERB_PROPERTIES *prop); -FMOD_RESULT F_API FMOD_System_GetReverbProperties (FMOD_SYSTEM *system, int instance, FMOD_REVERB_PROPERTIES *prop); - -/* - System level DSP functionality. -*/ - -FMOD_RESULT F_API FMOD_System_LockDSP (FMOD_SYSTEM *system); -FMOD_RESULT F_API FMOD_System_UnlockDSP (FMOD_SYSTEM *system); - -/* - Recording API. -*/ - -FMOD_RESULT F_API FMOD_System_GetRecordNumDrivers (FMOD_SYSTEM *system, int *numdrivers, int *numconnected); -FMOD_RESULT F_API FMOD_System_GetRecordDriverInfo (FMOD_SYSTEM *system, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels, FMOD_DRIVER_STATE *state); -FMOD_RESULT F_API FMOD_System_GetRecordPosition (FMOD_SYSTEM *system, int id, unsigned int *position); -FMOD_RESULT F_API FMOD_System_RecordStart (FMOD_SYSTEM *system, int id, FMOD_SOUND *sound, FMOD_BOOL loop); -FMOD_RESULT F_API FMOD_System_RecordStop (FMOD_SYSTEM *system, int id); -FMOD_RESULT F_API FMOD_System_IsRecording (FMOD_SYSTEM *system, int id, FMOD_BOOL *recording); - -/* - Geometry API. -*/ - -FMOD_RESULT F_API FMOD_System_CreateGeometry (FMOD_SYSTEM *system, int maxpolygons, int maxvertices, FMOD_GEOMETRY **geometry); -FMOD_RESULT F_API FMOD_System_SetGeometrySettings (FMOD_SYSTEM *system, float maxworldsize); -FMOD_RESULT F_API FMOD_System_GetGeometrySettings (FMOD_SYSTEM *system, float *maxworldsize); -FMOD_RESULT F_API FMOD_System_LoadGeometry (FMOD_SYSTEM *system, const void *data, int datasize, FMOD_GEOMETRY **geometry); -FMOD_RESULT F_API FMOD_System_GetGeometryOcclusion (FMOD_SYSTEM *system, const FMOD_VECTOR *listener, const FMOD_VECTOR *source, float *direct, float *reverb); - -/* - Network functions. -*/ - -FMOD_RESULT F_API FMOD_System_SetNetworkProxy (FMOD_SYSTEM *system, const char *proxy); -FMOD_RESULT F_API FMOD_System_GetNetworkProxy (FMOD_SYSTEM *system, char *proxy, int proxylen); -FMOD_RESULT F_API FMOD_System_SetNetworkTimeout (FMOD_SYSTEM *system, int timeout); -FMOD_RESULT F_API FMOD_System_GetNetworkTimeout (FMOD_SYSTEM *system, int *timeout); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_System_SetUserData (FMOD_SYSTEM *system, void *userdata); -FMOD_RESULT F_API FMOD_System_GetUserData (FMOD_SYSTEM *system, void **userdata); - -/* - 'Sound' API -*/ - -FMOD_RESULT F_API FMOD_Sound_Release (FMOD_SOUND *sound); -FMOD_RESULT F_API FMOD_Sound_GetSystemObject (FMOD_SOUND *sound, FMOD_SYSTEM **system); - -/* - Standard sound manipulation functions. -*/ - -FMOD_RESULT F_API FMOD_Sound_Lock (FMOD_SOUND *sound, unsigned int offset, unsigned int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2); -FMOD_RESULT F_API FMOD_Sound_Unlock (FMOD_SOUND *sound, void *ptr1, void *ptr2, unsigned int len1, unsigned int len2); -FMOD_RESULT F_API FMOD_Sound_SetDefaults (FMOD_SOUND *sound, float frequency, int priority); -FMOD_RESULT F_API FMOD_Sound_GetDefaults (FMOD_SOUND *sound, float *frequency, int *priority); -FMOD_RESULT F_API FMOD_Sound_Set3DMinMaxDistance (FMOD_SOUND *sound, float min, float max); -FMOD_RESULT F_API FMOD_Sound_Get3DMinMaxDistance (FMOD_SOUND *sound, float *min, float *max); -FMOD_RESULT F_API FMOD_Sound_Set3DConeSettings (FMOD_SOUND *sound, float insideconeangle, float outsideconeangle, float outsidevolume); -FMOD_RESULT F_API FMOD_Sound_Get3DConeSettings (FMOD_SOUND *sound, float *insideconeangle, float *outsideconeangle, float *outsidevolume); -FMOD_RESULT F_API FMOD_Sound_Set3DCustomRolloff (FMOD_SOUND *sound, FMOD_VECTOR *points, int numpoints); -FMOD_RESULT F_API FMOD_Sound_Get3DCustomRolloff (FMOD_SOUND *sound, FMOD_VECTOR **points, int *numpoints); -FMOD_RESULT F_API FMOD_Sound_GetSubSound (FMOD_SOUND *sound, int index, FMOD_SOUND **subsound); -FMOD_RESULT F_API FMOD_Sound_GetSubSoundParent (FMOD_SOUND *sound, FMOD_SOUND **parentsound); -FMOD_RESULT F_API FMOD_Sound_GetName (FMOD_SOUND *sound, char *name, int namelen); -FMOD_RESULT F_API FMOD_Sound_GetLength (FMOD_SOUND *sound, unsigned int *length, FMOD_TIMEUNIT lengthtype); -FMOD_RESULT F_API FMOD_Sound_GetFormat (FMOD_SOUND *sound, FMOD_SOUND_TYPE *type, FMOD_SOUND_FORMAT *format, int *channels, int *bits); -FMOD_RESULT F_API FMOD_Sound_GetNumSubSounds (FMOD_SOUND *sound, int *numsubsounds); -FMOD_RESULT F_API FMOD_Sound_GetNumTags (FMOD_SOUND *sound, int *numtags, int *numtagsupdated); -FMOD_RESULT F_API FMOD_Sound_GetTag (FMOD_SOUND *sound, const char *name, int index, FMOD_TAG *tag); -FMOD_RESULT F_API FMOD_Sound_GetOpenState (FMOD_SOUND *sound, FMOD_OPENSTATE *openstate, unsigned int *percentbuffered, FMOD_BOOL *starving, FMOD_BOOL *diskbusy); -FMOD_RESULT F_API FMOD_Sound_ReadData (FMOD_SOUND *sound, void *buffer, unsigned int lenbytes, unsigned int *read); -FMOD_RESULT F_API FMOD_Sound_SeekData (FMOD_SOUND *sound, unsigned int pcm); - -FMOD_RESULT F_API FMOD_Sound_SetSoundGroup (FMOD_SOUND *sound, FMOD_SOUNDGROUP *soundgroup); -FMOD_RESULT F_API FMOD_Sound_GetSoundGroup (FMOD_SOUND *sound, FMOD_SOUNDGROUP **soundgroup); - -/* - Synchronization point API. These points can come from markers embedded in wav files, and can also generate channel callbacks. -*/ - -FMOD_RESULT F_API FMOD_Sound_GetNumSyncPoints (FMOD_SOUND *sound, int *numsyncpoints); -FMOD_RESULT F_API FMOD_Sound_GetSyncPoint (FMOD_SOUND *sound, int index, FMOD_SYNCPOINT **point); -FMOD_RESULT F_API FMOD_Sound_GetSyncPointInfo (FMOD_SOUND *sound, FMOD_SYNCPOINT *point, char *name, int namelen, unsigned int *offset, FMOD_TIMEUNIT offsettype); -FMOD_RESULT F_API FMOD_Sound_AddSyncPoint (FMOD_SOUND *sound, unsigned int offset, FMOD_TIMEUNIT offsettype, const char *name, FMOD_SYNCPOINT **point); -FMOD_RESULT F_API FMOD_Sound_DeleteSyncPoint (FMOD_SOUND *sound, FMOD_SYNCPOINT *point); - -/* - Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time. -*/ - -FMOD_RESULT F_API FMOD_Sound_SetMode (FMOD_SOUND *sound, FMOD_MODE mode); -FMOD_RESULT F_API FMOD_Sound_GetMode (FMOD_SOUND *sound, FMOD_MODE *mode); -FMOD_RESULT F_API FMOD_Sound_SetLoopCount (FMOD_SOUND *sound, int loopcount); -FMOD_RESULT F_API FMOD_Sound_GetLoopCount (FMOD_SOUND *sound, int *loopcount); -FMOD_RESULT F_API FMOD_Sound_SetLoopPoints (FMOD_SOUND *sound, unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); -FMOD_RESULT F_API FMOD_Sound_GetLoopPoints (FMOD_SOUND *sound, unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - -/* - For MOD/S3M/XM/IT/MID sequenced formats only. -*/ - -FMOD_RESULT F_API FMOD_Sound_GetMusicNumChannels (FMOD_SOUND *sound, int *numchannels); -FMOD_RESULT F_API FMOD_Sound_SetMusicChannelVolume (FMOD_SOUND *sound, int channel, float volume); -FMOD_RESULT F_API FMOD_Sound_GetMusicChannelVolume (FMOD_SOUND *sound, int channel, float *volume); -FMOD_RESULT F_API FMOD_Sound_SetMusicSpeed (FMOD_SOUND *sound, float speed); -FMOD_RESULT F_API FMOD_Sound_GetMusicSpeed (FMOD_SOUND *sound, float *speed); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Sound_SetUserData (FMOD_SOUND *sound, void *userdata); -FMOD_RESULT F_API FMOD_Sound_GetUserData (FMOD_SOUND *sound, void **userdata); - -/* - 'Channel' API -*/ - -FMOD_RESULT F_API FMOD_Channel_GetSystemObject (FMOD_CHANNEL *channel, FMOD_SYSTEM **system); - -/* - General control functionality for Channels and ChannelGroups. -*/ - -FMOD_RESULT F_API FMOD_Channel_Stop (FMOD_CHANNEL *channel); -FMOD_RESULT F_API FMOD_Channel_SetPaused (FMOD_CHANNEL *channel, FMOD_BOOL paused); -FMOD_RESULT F_API FMOD_Channel_GetPaused (FMOD_CHANNEL *channel, FMOD_BOOL *paused); -FMOD_RESULT F_API FMOD_Channel_SetVolume (FMOD_CHANNEL *channel, float volume); -FMOD_RESULT F_API FMOD_Channel_GetVolume (FMOD_CHANNEL *channel, float *volume); -FMOD_RESULT F_API FMOD_Channel_SetVolumeRamp (FMOD_CHANNEL *channel, FMOD_BOOL ramp); -FMOD_RESULT F_API FMOD_Channel_GetVolumeRamp (FMOD_CHANNEL *channel, FMOD_BOOL *ramp); -FMOD_RESULT F_API FMOD_Channel_GetAudibility (FMOD_CHANNEL *channel, float *audibility); -FMOD_RESULT F_API FMOD_Channel_SetPitch (FMOD_CHANNEL *channel, float pitch); -FMOD_RESULT F_API FMOD_Channel_GetPitch (FMOD_CHANNEL *channel, float *pitch); -FMOD_RESULT F_API FMOD_Channel_SetMute (FMOD_CHANNEL *channel, FMOD_BOOL mute); -FMOD_RESULT F_API FMOD_Channel_GetMute (FMOD_CHANNEL *channel, FMOD_BOOL *mute); -FMOD_RESULT F_API FMOD_Channel_SetReverbProperties (FMOD_CHANNEL *channel, int instance, float wet); -FMOD_RESULT F_API FMOD_Channel_GetReverbProperties (FMOD_CHANNEL *channel, int instance, float *wet); -FMOD_RESULT F_API FMOD_Channel_SetLowPassGain (FMOD_CHANNEL *channel, float gain); -FMOD_RESULT F_API FMOD_Channel_GetLowPassGain (FMOD_CHANNEL *channel, float *gain); -FMOD_RESULT F_API FMOD_Channel_SetMode (FMOD_CHANNEL *channel, FMOD_MODE mode); -FMOD_RESULT F_API FMOD_Channel_GetMode (FMOD_CHANNEL *channel, FMOD_MODE *mode); -FMOD_RESULT F_API FMOD_Channel_SetCallback (FMOD_CHANNEL *channel, FMOD_CHANNELCONTROL_CALLBACK callback); -FMOD_RESULT F_API FMOD_Channel_IsPlaying (FMOD_CHANNEL *channel, FMOD_BOOL *isplaying); - -/* - 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_RESULT F_API FMOD_Channel_SetPan (FMOD_CHANNEL *channel, float pan); -FMOD_RESULT F_API FMOD_Channel_SetMixLevelsOutput (FMOD_CHANNEL *channel, float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright); -FMOD_RESULT F_API FMOD_Channel_SetMixLevelsInput (FMOD_CHANNEL *channel, float *levels, int numlevels); -FMOD_RESULT F_API FMOD_Channel_SetMixMatrix (FMOD_CHANNEL *channel, float *matrix, int outchannels, int inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_Channel_GetMixMatrix (FMOD_CHANNEL *channel, float *matrix, int *outchannels, int *inchannels, int inchannel_hop); - -/* - Clock based functionality. -*/ - -FMOD_RESULT F_API FMOD_Channel_GetDSPClock (FMOD_CHANNEL *channel, unsigned long long *dspclock, unsigned long long *parentclock); -FMOD_RESULT F_API FMOD_Channel_SetDelay (FMOD_CHANNEL *channel, unsigned long long dspclock_start, unsigned long long dspclock_end, FMOD_BOOL stopchannels); -FMOD_RESULT F_API FMOD_Channel_GetDelay (FMOD_CHANNEL *channel, unsigned long long *dspclock_start, unsigned long long *dspclock_end, FMOD_BOOL *stopchannels); -FMOD_RESULT F_API FMOD_Channel_AddFadePoint (FMOD_CHANNEL *channel, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_Channel_SetFadePointRamp (FMOD_CHANNEL *channel, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_Channel_RemoveFadePoints (FMOD_CHANNEL *channel, unsigned long long dspclock_start, unsigned long long dspclock_end); -FMOD_RESULT F_API FMOD_Channel_GetFadePoints (FMOD_CHANNEL *channel, unsigned int *numpoints, unsigned long long *point_dspclock, float *point_volume); - -/* - DSP effects. -*/ - -FMOD_RESULT F_API FMOD_Channel_GetDSP (FMOD_CHANNEL *channel, int index, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_Channel_AddDSP (FMOD_CHANNEL *channel, int index, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_Channel_RemoveDSP (FMOD_CHANNEL *channel, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_Channel_GetNumDSPs (FMOD_CHANNEL *channel, int *numdsps); -FMOD_RESULT F_API FMOD_Channel_SetDSPIndex (FMOD_CHANNEL *channel, FMOD_DSP *dsp, int index); -FMOD_RESULT F_API FMOD_Channel_GetDSPIndex (FMOD_CHANNEL *channel, FMOD_DSP *dsp, int *index); -FMOD_RESULT F_API FMOD_Channel_OverridePanDSP (FMOD_CHANNEL *channel, FMOD_DSP *pan); - -/* - 3D functionality. -*/ - -FMOD_RESULT F_API FMOD_Channel_Set3DAttributes (FMOD_CHANNEL *channel, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_Channel_Get3DAttributes (FMOD_CHANNEL *channel, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_Channel_Set3DMinMaxDistance (FMOD_CHANNEL *channel, float mindistance, float maxdistance); -FMOD_RESULT F_API FMOD_Channel_Get3DMinMaxDistance (FMOD_CHANNEL *channel, float *mindistance, float *maxdistance); -FMOD_RESULT F_API FMOD_Channel_Set3DConeSettings (FMOD_CHANNEL *channel, float insideconeangle, float outsideconeangle, float outsidevolume); -FMOD_RESULT F_API FMOD_Channel_Get3DConeSettings (FMOD_CHANNEL *channel, float *insideconeangle, float *outsideconeangle, float *outsidevolume); -FMOD_RESULT F_API FMOD_Channel_Set3DConeOrientation (FMOD_CHANNEL *channel, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_Channel_Get3DConeOrientation (FMOD_CHANNEL *channel, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_Channel_Set3DCustomRolloff (FMOD_CHANNEL *channel, FMOD_VECTOR *points, int numpoints); -FMOD_RESULT F_API FMOD_Channel_Get3DCustomRolloff (FMOD_CHANNEL *channel, FMOD_VECTOR **points, int *numpoints); -FMOD_RESULT F_API FMOD_Channel_Set3DOcclusion (FMOD_CHANNEL *channel, float directocclusion, float reverbocclusion); -FMOD_RESULT F_API FMOD_Channel_Get3DOcclusion (FMOD_CHANNEL *channel, float *directocclusion, float *reverbocclusion); -FMOD_RESULT F_API FMOD_Channel_Set3DSpread (FMOD_CHANNEL *channel, float angle); -FMOD_RESULT F_API FMOD_Channel_Get3DSpread (FMOD_CHANNEL *channel, float *angle); -FMOD_RESULT F_API FMOD_Channel_Set3DLevel (FMOD_CHANNEL *channel, float level); -FMOD_RESULT F_API FMOD_Channel_Get3DLevel (FMOD_CHANNEL *channel, float *level); -FMOD_RESULT F_API FMOD_Channel_Set3DDopplerLevel (FMOD_CHANNEL *channel, float level); -FMOD_RESULT F_API FMOD_Channel_Get3DDopplerLevel (FMOD_CHANNEL *channel, float *level); -FMOD_RESULT F_API FMOD_Channel_Set3DDistanceFilter (FMOD_CHANNEL *channel, FMOD_BOOL custom, float customLevel, float centerFreq); -FMOD_RESULT F_API FMOD_Channel_Get3DDistanceFilter (FMOD_CHANNEL *channel, FMOD_BOOL *custom, float *customLevel, float *centerFreq); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Channel_SetUserData (FMOD_CHANNEL *channel, void *userdata); -FMOD_RESULT F_API FMOD_Channel_GetUserData (FMOD_CHANNEL *channel, void **userdata); - -/* - Channel specific control functionality. -*/ - -FMOD_RESULT F_API FMOD_Channel_SetFrequency (FMOD_CHANNEL *channel, float frequency); -FMOD_RESULT F_API FMOD_Channel_GetFrequency (FMOD_CHANNEL *channel, float *frequency); -FMOD_RESULT F_API FMOD_Channel_SetPriority (FMOD_CHANNEL *channel, int priority); -FMOD_RESULT F_API FMOD_Channel_GetPriority (FMOD_CHANNEL *channel, int *priority); -FMOD_RESULT F_API FMOD_Channel_SetPosition (FMOD_CHANNEL *channel, unsigned int position, FMOD_TIMEUNIT postype); -FMOD_RESULT F_API FMOD_Channel_GetPosition (FMOD_CHANNEL *channel, unsigned int *position, FMOD_TIMEUNIT postype); -FMOD_RESULT F_API FMOD_Channel_SetChannelGroup (FMOD_CHANNEL *channel, FMOD_CHANNELGROUP *channelgroup); -FMOD_RESULT F_API FMOD_Channel_GetChannelGroup (FMOD_CHANNEL *channel, FMOD_CHANNELGROUP **channelgroup); -FMOD_RESULT F_API FMOD_Channel_SetLoopCount (FMOD_CHANNEL *channel, int loopcount); -FMOD_RESULT F_API FMOD_Channel_GetLoopCount (FMOD_CHANNEL *channel, int *loopcount); -FMOD_RESULT F_API FMOD_Channel_SetLoopPoints (FMOD_CHANNEL *channel, unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); -FMOD_RESULT F_API FMOD_Channel_GetLoopPoints (FMOD_CHANNEL *channel, unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - -/* - Information only functions. -*/ - -FMOD_RESULT F_API FMOD_Channel_IsVirtual (FMOD_CHANNEL *channel, FMOD_BOOL *isvirtual); -FMOD_RESULT F_API FMOD_Channel_GetCurrentSound (FMOD_CHANNEL *channel, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_Channel_GetIndex (FMOD_CHANNEL *channel, int *index); - -/* - 'ChannelGroup' API -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetSystemObject (FMOD_CHANNELGROUP *channelgroup, FMOD_SYSTEM **system); - -/* - General control functionality for Channels and ChannelGroups. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_Stop (FMOD_CHANNELGROUP *channelgroup); -FMOD_RESULT F_API FMOD_ChannelGroup_SetPaused (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused); -FMOD_RESULT F_API FMOD_ChannelGroup_GetPaused (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *paused); -FMOD_RESULT F_API FMOD_ChannelGroup_SetVolume (FMOD_CHANNELGROUP *channelgroup, float volume); -FMOD_RESULT F_API FMOD_ChannelGroup_GetVolume (FMOD_CHANNELGROUP *channelgroup, float *volume); -FMOD_RESULT F_API FMOD_ChannelGroup_SetVolumeRamp (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL ramp); -FMOD_RESULT F_API FMOD_ChannelGroup_GetVolumeRamp (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *ramp); -FMOD_RESULT F_API FMOD_ChannelGroup_GetAudibility (FMOD_CHANNELGROUP *channelgroup, float *audibility); -FMOD_RESULT F_API FMOD_ChannelGroup_SetPitch (FMOD_CHANNELGROUP *channelgroup, float pitch); -FMOD_RESULT F_API FMOD_ChannelGroup_GetPitch (FMOD_CHANNELGROUP *channelgroup, float *pitch); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMute (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL mute); -FMOD_RESULT F_API FMOD_ChannelGroup_GetMute (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *mute); -FMOD_RESULT F_API FMOD_ChannelGroup_SetReverbProperties (FMOD_CHANNELGROUP *channelgroup, int instance, float wet); -FMOD_RESULT F_API FMOD_ChannelGroup_GetReverbProperties (FMOD_CHANNELGROUP *channelgroup, int instance, float *wet); -FMOD_RESULT F_API FMOD_ChannelGroup_SetLowPassGain (FMOD_CHANNELGROUP *channelgroup, float gain); -FMOD_RESULT F_API FMOD_ChannelGroup_GetLowPassGain (FMOD_CHANNELGROUP *channelgroup, float *gain); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMode (FMOD_CHANNELGROUP *channelgroup, FMOD_MODE mode); -FMOD_RESULT F_API FMOD_ChannelGroup_GetMode (FMOD_CHANNELGROUP *channelgroup, FMOD_MODE *mode); -FMOD_RESULT F_API FMOD_ChannelGroup_SetCallback (FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELCONTROL_CALLBACK callback); -FMOD_RESULT F_API FMOD_ChannelGroup_IsPlaying (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *isplaying); - -/* - 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_RESULT F_API FMOD_ChannelGroup_SetPan (FMOD_CHANNELGROUP *channelgroup, float pan); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMixLevelsOutput (FMOD_CHANNELGROUP *channelgroup, float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMixLevelsInput (FMOD_CHANNELGROUP *channelgroup, float *levels, int numlevels); -FMOD_RESULT F_API FMOD_ChannelGroup_SetMixMatrix (FMOD_CHANNELGROUP *channelgroup, float *matrix, int outchannels, int inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_ChannelGroup_GetMixMatrix (FMOD_CHANNELGROUP *channelgroup, float *matrix, int *outchannels, int *inchannels, int inchannel_hop); - -/* - Clock based functionality. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetDSPClock (FMOD_CHANNELGROUP *channelgroup, unsigned long long *dspclock, unsigned long long *parentclock); -FMOD_RESULT F_API FMOD_ChannelGroup_SetDelay (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock_start, unsigned long long dspclock_end, FMOD_BOOL stopchannels); -FMOD_RESULT F_API FMOD_ChannelGroup_GetDelay (FMOD_CHANNELGROUP *channelgroup, unsigned long long *dspclock_start, unsigned long long *dspclock_end, FMOD_BOOL *stopchannels); -FMOD_RESULT F_API FMOD_ChannelGroup_AddFadePoint (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_ChannelGroup_SetFadePointRamp (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock, float volume); -FMOD_RESULT F_API FMOD_ChannelGroup_RemoveFadePoints (FMOD_CHANNELGROUP *channelgroup, unsigned long long dspclock_start, unsigned long long dspclock_end); -FMOD_RESULT F_API FMOD_ChannelGroup_GetFadePoints (FMOD_CHANNELGROUP *channelgroup, unsigned int *numpoints, unsigned long long *point_dspclock, float *point_volume); - -/* - DSP effects. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetDSP (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_DSP **dsp); -FMOD_RESULT F_API FMOD_ChannelGroup_AddDSP (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_ChannelGroup_RemoveDSP (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_ChannelGroup_GetNumDSPs (FMOD_CHANNELGROUP *channelgroup, int *numdsps); -FMOD_RESULT F_API FMOD_ChannelGroup_SetDSPIndex (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp, int index); -FMOD_RESULT F_API FMOD_ChannelGroup_GetDSPIndex (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp, int *index); -FMOD_RESULT F_API FMOD_ChannelGroup_OverridePanDSP (FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *pan); - -/* - 3D functionality. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DAttributes (FMOD_CHANNELGROUP *channelgroup, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DAttributes (FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DMinMaxDistance (FMOD_CHANNELGROUP *channelgroup, float mindistance, float maxdistance); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DMinMaxDistance (FMOD_CHANNELGROUP *channelgroup, float *mindistance, float *maxdistance); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DConeSettings (FMOD_CHANNELGROUP *channelgroup, float insideconeangle, float outsideconeangle, float outsidevolume); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DConeSettings (FMOD_CHANNELGROUP *channelgroup, float *insideconeangle, float *outsideconeangle, float *outsidevolume); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DConeOrientation(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DConeOrientation(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *orientation); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DCustomRolloff (FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *points, int numpoints); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DCustomRolloff (FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR **points, int *numpoints); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DOcclusion (FMOD_CHANNELGROUP *channelgroup, float directocclusion, float reverbocclusion); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DOcclusion (FMOD_CHANNELGROUP *channelgroup, float *directocclusion, float *reverbocclusion); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DSpread (FMOD_CHANNELGROUP *channelgroup, float angle); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DSpread (FMOD_CHANNELGROUP *channelgroup, float *angle); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DLevel (FMOD_CHANNELGROUP *channelgroup, float level); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DLevel (FMOD_CHANNELGROUP *channelgroup, float *level); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DDopplerLevel (FMOD_CHANNELGROUP *channelgroup, float level); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DDopplerLevel (FMOD_CHANNELGROUP *channelgroup, float *level); -FMOD_RESULT F_API FMOD_ChannelGroup_Set3DDistanceFilter (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL custom, float customLevel, float centerFreq); -FMOD_RESULT F_API FMOD_ChannelGroup_Get3DDistanceFilter (FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *custom, float *customLevel, float *centerFreq); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_SetUserData (FMOD_CHANNELGROUP *channelgroup, void *userdata); -FMOD_RESULT F_API FMOD_ChannelGroup_GetUserData (FMOD_CHANNELGROUP *channelgroup, void **userdata); - -FMOD_RESULT F_API FMOD_ChannelGroup_Release (FMOD_CHANNELGROUP *channelgroup); - -/* - Nested channel groups. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_AddGroup (FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELGROUP *group, FMOD_BOOL propagatedspclock, FMOD_DSPCONNECTION **connection); -FMOD_RESULT F_API FMOD_ChannelGroup_GetNumGroups (FMOD_CHANNELGROUP *channelgroup, int *numgroups); -FMOD_RESULT F_API FMOD_ChannelGroup_GetGroup (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_CHANNELGROUP **group); -FMOD_RESULT F_API FMOD_ChannelGroup_GetParentGroup (FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELGROUP **group); - -/* - Information only functions. -*/ - -FMOD_RESULT F_API FMOD_ChannelGroup_GetName (FMOD_CHANNELGROUP *channelgroup, char *name, int namelen); -FMOD_RESULT F_API FMOD_ChannelGroup_GetNumChannels (FMOD_CHANNELGROUP *channelgroup, int *numchannels); -FMOD_RESULT F_API FMOD_ChannelGroup_GetChannel (FMOD_CHANNELGROUP *channelgroup, int index, FMOD_CHANNEL **channel); - -/* - 'SoundGroup' API -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_Release (FMOD_SOUNDGROUP *soundgroup); -FMOD_RESULT F_API FMOD_SoundGroup_GetSystemObject (FMOD_SOUNDGROUP *soundgroup, FMOD_SYSTEM **system); - -/* - SoundGroup control functions. -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_SetMaxAudible (FMOD_SOUNDGROUP *soundgroup, int maxaudible); -FMOD_RESULT F_API FMOD_SoundGroup_GetMaxAudible (FMOD_SOUNDGROUP *soundgroup, int *maxaudible); -FMOD_RESULT F_API FMOD_SoundGroup_SetMaxAudibleBehavior (FMOD_SOUNDGROUP *soundgroup, FMOD_SOUNDGROUP_BEHAVIOR behavior); -FMOD_RESULT F_API FMOD_SoundGroup_GetMaxAudibleBehavior (FMOD_SOUNDGROUP *soundgroup, FMOD_SOUNDGROUP_BEHAVIOR *behavior); -FMOD_RESULT F_API FMOD_SoundGroup_SetMuteFadeSpeed (FMOD_SOUNDGROUP *soundgroup, float speed); -FMOD_RESULT F_API FMOD_SoundGroup_GetMuteFadeSpeed (FMOD_SOUNDGROUP *soundgroup, float *speed); -FMOD_RESULT F_API FMOD_SoundGroup_SetVolume (FMOD_SOUNDGROUP *soundgroup, float volume); -FMOD_RESULT F_API FMOD_SoundGroup_GetVolume (FMOD_SOUNDGROUP *soundgroup, float *volume); -FMOD_RESULT F_API FMOD_SoundGroup_Stop (FMOD_SOUNDGROUP *soundgroup); - -/* - Information only functions. -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_GetName (FMOD_SOUNDGROUP *soundgroup, char *name, int namelen); -FMOD_RESULT F_API FMOD_SoundGroup_GetNumSounds (FMOD_SOUNDGROUP *soundgroup, int *numsounds); -FMOD_RESULT F_API FMOD_SoundGroup_GetSound (FMOD_SOUNDGROUP *soundgroup, int index, FMOD_SOUND **sound); -FMOD_RESULT F_API FMOD_SoundGroup_GetNumPlaying (FMOD_SOUNDGROUP *soundgroup, int *numplaying); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_SoundGroup_SetUserData (FMOD_SOUNDGROUP *soundgroup, void *userdata); -FMOD_RESULT F_API FMOD_SoundGroup_GetUserData (FMOD_SOUNDGROUP *soundgroup, void **userdata); - -/* - 'DSP' API -*/ - -FMOD_RESULT F_API FMOD_DSP_Release (FMOD_DSP *dsp); -FMOD_RESULT F_API FMOD_DSP_GetSystemObject (FMOD_DSP *dsp, FMOD_SYSTEM **system); - -/* - Connection / disconnection / input and output enumeration. -*/ - -FMOD_RESULT F_API FMOD_DSP_AddInput (FMOD_DSP *dsp, FMOD_DSP *input, FMOD_DSPCONNECTION **connection, FMOD_DSPCONNECTION_TYPE type); -FMOD_RESULT F_API FMOD_DSP_DisconnectFrom (FMOD_DSP *dsp, FMOD_DSP *target, FMOD_DSPCONNECTION *connection); -FMOD_RESULT F_API FMOD_DSP_DisconnectAll (FMOD_DSP *dsp, FMOD_BOOL inputs, FMOD_BOOL outputs); -FMOD_RESULT F_API FMOD_DSP_GetNumInputs (FMOD_DSP *dsp, int *numinputs); -FMOD_RESULT F_API FMOD_DSP_GetNumOutputs (FMOD_DSP *dsp, int *numoutputs); -FMOD_RESULT F_API FMOD_DSP_GetInput (FMOD_DSP *dsp, int index, FMOD_DSP **input, FMOD_DSPCONNECTION **inputconnection); -FMOD_RESULT F_API FMOD_DSP_GetOutput (FMOD_DSP *dsp, int index, FMOD_DSP **output, FMOD_DSPCONNECTION **outputconnection); - -/* - DSP unit control. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetActive (FMOD_DSP *dsp, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_DSP_GetActive (FMOD_DSP *dsp, FMOD_BOOL *active); -FMOD_RESULT F_API FMOD_DSP_SetBypass (FMOD_DSP *dsp, FMOD_BOOL bypass); -FMOD_RESULT F_API FMOD_DSP_GetBypass (FMOD_DSP *dsp, FMOD_BOOL *bypass); -FMOD_RESULT F_API FMOD_DSP_SetWetDryMix (FMOD_DSP *dsp, float prewet, float postwet, float dry); -FMOD_RESULT F_API FMOD_DSP_GetWetDryMix (FMOD_DSP *dsp, float *prewet, float *postwet, float *dry); -FMOD_RESULT F_API FMOD_DSP_SetChannelFormat (FMOD_DSP *dsp, FMOD_CHANNELMASK channelmask, int numchannels, FMOD_SPEAKERMODE source_speakermode); -FMOD_RESULT F_API FMOD_DSP_GetChannelFormat (FMOD_DSP *dsp, FMOD_CHANNELMASK *channelmask, int *numchannels, FMOD_SPEAKERMODE *source_speakermode); -FMOD_RESULT F_API FMOD_DSP_GetOutputChannelFormat (FMOD_DSP *dsp, FMOD_CHANNELMASK inmask, int inchannels, FMOD_SPEAKERMODE inspeakermode, FMOD_CHANNELMASK *outmask, int *outchannels, FMOD_SPEAKERMODE *outspeakermode); -FMOD_RESULT F_API FMOD_DSP_Reset (FMOD_DSP *dsp); - -/* - DSP parameter control. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetParameterFloat (FMOD_DSP *dsp, int index, float value); -FMOD_RESULT F_API FMOD_DSP_SetParameterInt (FMOD_DSP *dsp, int index, int value); -FMOD_RESULT F_API FMOD_DSP_SetParameterBool (FMOD_DSP *dsp, int index, FMOD_BOOL value); -FMOD_RESULT F_API FMOD_DSP_SetParameterData (FMOD_DSP *dsp, int index, void *data, unsigned int length); -FMOD_RESULT F_API FMOD_DSP_GetParameterFloat (FMOD_DSP *dsp, int index, float *value, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetParameterInt (FMOD_DSP *dsp, int index, int *value, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetParameterBool (FMOD_DSP *dsp, int index, FMOD_BOOL *value, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetParameterData (FMOD_DSP *dsp, int index, void **data, unsigned int *length, char *valuestr, int valuestrlen); -FMOD_RESULT F_API FMOD_DSP_GetNumParameters (FMOD_DSP *dsp, int *numparams); -FMOD_RESULT F_API FMOD_DSP_GetParameterInfo (FMOD_DSP *dsp, int index, FMOD_DSP_PARAMETER_DESC **desc); -FMOD_RESULT F_API FMOD_DSP_GetDataParameterIndex (FMOD_DSP *dsp, int datatype, int *index); -FMOD_RESULT F_API FMOD_DSP_ShowConfigDialog (FMOD_DSP *dsp, void *hwnd, FMOD_BOOL show); - -/* - DSP attributes. -*/ - -FMOD_RESULT F_API FMOD_DSP_GetInfo (FMOD_DSP *dsp, char *name, unsigned int *version, int *channels, int *configwidth, int *configheight); -FMOD_RESULT F_API FMOD_DSP_GetType (FMOD_DSP *dsp, FMOD_DSP_TYPE *type); -FMOD_RESULT F_API FMOD_DSP_GetIdle (FMOD_DSP *dsp, FMOD_BOOL *idle); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetUserData (FMOD_DSP *dsp, void *userdata); -FMOD_RESULT F_API FMOD_DSP_GetUserData (FMOD_DSP *dsp, void **userdata); - -/* - Metering. -*/ - -FMOD_RESULT F_API FMOD_DSP_SetMeteringEnabled (FMOD_DSP *dsp, FMOD_BOOL inputEnabled, FMOD_BOOL outputEnabled); -FMOD_RESULT F_API FMOD_DSP_GetMeteringEnabled (FMOD_DSP *dsp, FMOD_BOOL *inputEnabled, FMOD_BOOL *outputEnabled); -FMOD_RESULT F_API FMOD_DSP_GetMeteringInfo (FMOD_DSP *dsp, FMOD_DSP_METERING_INFO *inputInfo, FMOD_DSP_METERING_INFO *outputInfo); - -/* - 'DSPConnection' API -*/ - -FMOD_RESULT F_API FMOD_DSPConnection_GetInput (FMOD_DSPCONNECTION *dspconnection, FMOD_DSP **input); -FMOD_RESULT F_API FMOD_DSPConnection_GetOutput (FMOD_DSPCONNECTION *dspconnection, FMOD_DSP **output); -FMOD_RESULT F_API FMOD_DSPConnection_SetMix (FMOD_DSPCONNECTION *dspconnection, float volume); -FMOD_RESULT F_API FMOD_DSPConnection_GetMix (FMOD_DSPCONNECTION *dspconnection, float *volume); -FMOD_RESULT F_API FMOD_DSPConnection_SetMixMatrix (FMOD_DSPCONNECTION *dspconnection, float *matrix, int outchannels, int inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_DSPConnection_GetMixMatrix (FMOD_DSPCONNECTION *dspconnection, float *matrix, int *outchannels, int *inchannels, int inchannel_hop); -FMOD_RESULT F_API FMOD_DSPConnection_GetType (FMOD_DSPCONNECTION *dspconnection, FMOD_DSPCONNECTION_TYPE *type); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_DSPConnection_SetUserData (FMOD_DSPCONNECTION *dspconnection, void *userdata); -FMOD_RESULT F_API FMOD_DSPConnection_GetUserData (FMOD_DSPCONNECTION *dspconnection, void **userdata); - -/* - 'Geometry' API -*/ - -FMOD_RESULT F_API FMOD_Geometry_Release (FMOD_GEOMETRY *geometry); - -/* - Polygon manipulation. -*/ - -FMOD_RESULT F_API FMOD_Geometry_AddPolygon (FMOD_GEOMETRY *geometry, float directocclusion, float reverbocclusion, FMOD_BOOL doublesided, int numvertices, const FMOD_VECTOR *vertices, int *polygonindex); -FMOD_RESULT F_API FMOD_Geometry_GetNumPolygons (FMOD_GEOMETRY *geometry, int *numpolygons); -FMOD_RESULT F_API FMOD_Geometry_GetMaxPolygons (FMOD_GEOMETRY *geometry, int *maxpolygons, int *maxvertices); -FMOD_RESULT F_API FMOD_Geometry_GetPolygonNumVertices (FMOD_GEOMETRY *geometry, int index, int *numvertices); -FMOD_RESULT F_API FMOD_Geometry_SetPolygonVertex (FMOD_GEOMETRY *geometry, int index, int vertexindex, const FMOD_VECTOR *vertex); -FMOD_RESULT F_API FMOD_Geometry_GetPolygonVertex (FMOD_GEOMETRY *geometry, int index, int vertexindex, FMOD_VECTOR *vertex); -FMOD_RESULT F_API FMOD_Geometry_SetPolygonAttributes (FMOD_GEOMETRY *geometry, int index, float directocclusion, float reverbocclusion, FMOD_BOOL doublesided); -FMOD_RESULT F_API FMOD_Geometry_GetPolygonAttributes (FMOD_GEOMETRY *geometry, int index, float *directocclusion, float *reverbocclusion, FMOD_BOOL *doublesided); - -/* - Object manipulation. -*/ - -FMOD_RESULT F_API FMOD_Geometry_SetActive (FMOD_GEOMETRY *geometry, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_Geometry_GetActive (FMOD_GEOMETRY *geometry, FMOD_BOOL *active); -FMOD_RESULT F_API FMOD_Geometry_SetRotation (FMOD_GEOMETRY *geometry, const FMOD_VECTOR *forward, const FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_Geometry_GetRotation (FMOD_GEOMETRY *geometry, FMOD_VECTOR *forward, FMOD_VECTOR *up); -FMOD_RESULT F_API FMOD_Geometry_SetPosition (FMOD_GEOMETRY *geometry, const FMOD_VECTOR *position); -FMOD_RESULT F_API FMOD_Geometry_GetPosition (FMOD_GEOMETRY *geometry, FMOD_VECTOR *position); -FMOD_RESULT F_API FMOD_Geometry_SetScale (FMOD_GEOMETRY *geometry, const FMOD_VECTOR *scale); -FMOD_RESULT F_API FMOD_Geometry_GetScale (FMOD_GEOMETRY *geometry, FMOD_VECTOR *scale); -FMOD_RESULT F_API FMOD_Geometry_Save (FMOD_GEOMETRY *geometry, void *data, int *datasize); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Geometry_SetUserData (FMOD_GEOMETRY *geometry, void *userdata); -FMOD_RESULT F_API FMOD_Geometry_GetUserData (FMOD_GEOMETRY *geometry, void **userdata); - -/* - 'Reverb3D' API -*/ - -FMOD_RESULT F_API FMOD_Reverb3D_Release (FMOD_REVERB3D *reverb3d); - -/* - Reverb manipulation. -*/ - -FMOD_RESULT F_API FMOD_Reverb3D_Set3DAttributes (FMOD_REVERB3D *reverb3d, const FMOD_VECTOR *position, float mindistance, float maxdistance); -FMOD_RESULT F_API FMOD_Reverb3D_Get3DAttributes (FMOD_REVERB3D *reverb3d, FMOD_VECTOR *position, float *mindistance, float *maxdistance); -FMOD_RESULT F_API FMOD_Reverb3D_SetProperties (FMOD_REVERB3D *reverb3d, const FMOD_REVERB_PROPERTIES *properties); -FMOD_RESULT F_API FMOD_Reverb3D_GetProperties (FMOD_REVERB3D *reverb3d, FMOD_REVERB_PROPERTIES *properties); -FMOD_RESULT F_API FMOD_Reverb3D_SetActive (FMOD_REVERB3D *reverb3d, FMOD_BOOL active); -FMOD_RESULT F_API FMOD_Reverb3D_GetActive (FMOD_REVERB3D *reverb3d, FMOD_BOOL *active); - -/* - Userdata set/get. -*/ - -FMOD_RESULT F_API FMOD_Reverb3D_SetUserData (FMOD_REVERB3D *reverb3d, void *userdata); -FMOD_RESULT F_API FMOD_Reverb3D_GetUserData (FMOD_REVERB3D *reverb3d, void **userdata); - -/*$ preserve start $*/ - -#ifdef __cplusplus -} -#endif - -#endif /* _FMOD_H */ - -/*$ preserve end $*/ diff --git a/fmodstudio/inc/fmod.hpp b/fmodstudio/inc/fmod.hpp deleted file mode 100644 index 2cfccfbf..00000000 --- a/fmodstudio/inc/fmod.hpp +++ /dev/null @@ -1,606 +0,0 @@ -/* ========================================================================================== */ -/* FMOD Studio - C++ header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2016. */ -/* */ -/* Use this header in conjunction with fmod_common.h (which contains all the constants / */ -/* callbacks) to develop using C++ classes. */ -/* ========================================================================================== */ - -#ifndef _FMOD_HPP -#define _FMOD_HPP - -#include "fmod_common.h" -#include "fmod.h" - -/* - Constant and defines -*/ - -/* - FMOD Namespace -*/ -namespace FMOD -{ - class System; - class Sound; - class ChannelControl; - class Channel; - class ChannelGroup; - class SoundGroup; - class DSP; - class DSPConnection; - class Geometry; - class Reverb3D; - - /* - FMOD global system functions (optional). - */ - inline FMOD_RESULT Memory_Initialize (void *poolmem, int poollen, FMOD_MEMORY_ALLOC_CALLBACK useralloc, FMOD_MEMORY_REALLOC_CALLBACK userrealloc, FMOD_MEMORY_FREE_CALLBACK userfree, FMOD_MEMORY_TYPE memtypeflags = FMOD_MEMORY_ALL) { return FMOD_Memory_Initialize(poolmem, poollen, useralloc, userrealloc, userfree, memtypeflags); } - inline FMOD_RESULT Memory_GetStats (int *currentalloced, int *maxalloced, bool blocking = true) { return FMOD_Memory_GetStats(currentalloced, maxalloced, blocking); } - inline FMOD_RESULT Debug_Initialize (FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode = FMOD_DEBUG_MODE_TTY, FMOD_DEBUG_CALLBACK callback = 0, const char *filename = 0) { return FMOD_Debug_Initialize(flags, mode, callback, filename); } - inline FMOD_RESULT File_SetDiskBusy (int busy) { return FMOD_File_SetDiskBusy(busy); } - inline FMOD_RESULT File_GetDiskBusy (int *busy) { return FMOD_File_GetDiskBusy(busy); } - - /* - FMOD System factory functions. - */ - inline FMOD_RESULT System_Create (System **system) { return FMOD_System_Create((FMOD_SYSTEM **)system); } - - /* - 'System' API - */ - class System - { - private: - - // Constructor made private so user cannot statically instance a System class. System_Create must be used. - System(); - System(const System &); - - public: - - FMOD_RESULT F_API release (); - - // Setup functions. - FMOD_RESULT F_API setOutput (FMOD_OUTPUTTYPE output); - FMOD_RESULT F_API getOutput (FMOD_OUTPUTTYPE *output); - FMOD_RESULT F_API getNumDrivers (int *numdrivers); - FMOD_RESULT F_API getDriverInfo (int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels); - FMOD_RESULT F_API setDriver (int driver); - FMOD_RESULT F_API getDriver (int *driver); - FMOD_RESULT F_API setSoftwareChannels (int numsoftwarechannels); - FMOD_RESULT F_API getSoftwareChannels (int *numsoftwarechannels); - FMOD_RESULT F_API setSoftwareFormat (int samplerate, FMOD_SPEAKERMODE speakermode, int numrawspeakers); - FMOD_RESULT F_API getSoftwareFormat (int *samplerate, FMOD_SPEAKERMODE *speakermode, int *numrawspeakers); - FMOD_RESULT F_API setDSPBufferSize (unsigned int bufferlength, int numbuffers); - FMOD_RESULT F_API getDSPBufferSize (unsigned int *bufferlength, int *numbuffers); - FMOD_RESULT F_API setFileSystem (FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek, FMOD_FILE_ASYNCREAD_CALLBACK userasyncread, FMOD_FILE_ASYNCCANCEL_CALLBACK userasynccancel, int blockalign); - FMOD_RESULT F_API attachFileSystem (FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek); - FMOD_RESULT F_API setAdvancedSettings (FMOD_ADVANCEDSETTINGS *settings); - FMOD_RESULT F_API getAdvancedSettings (FMOD_ADVANCEDSETTINGS *settings); - FMOD_RESULT F_API setCallback (FMOD_SYSTEM_CALLBACK callback, FMOD_SYSTEM_CALLBACK_TYPE callbackmask = FMOD_SYSTEM_CALLBACK_ALL); - - // Plug-in support. - FMOD_RESULT F_API setPluginPath (const char *path); - FMOD_RESULT F_API loadPlugin (const char *filename, unsigned int *handle, unsigned int priority = 0); - FMOD_RESULT F_API unloadPlugin (unsigned int handle); - FMOD_RESULT F_API getNumNestedPlugins (unsigned int handle, int *count); - FMOD_RESULT F_API getNestedPlugin (unsigned int handle, int index, unsigned int *nestedhandle); - FMOD_RESULT F_API getNumPlugins (FMOD_PLUGINTYPE plugintype, int *numplugins); - FMOD_RESULT F_API getPluginHandle (FMOD_PLUGINTYPE plugintype, int index, unsigned int *handle); - FMOD_RESULT F_API getPluginInfo (unsigned int handle, FMOD_PLUGINTYPE *plugintype, char *name, int namelen, unsigned int *version); - FMOD_RESULT F_API setOutputByPlugin (unsigned int handle); - FMOD_RESULT F_API getOutputByPlugin (unsigned int *handle); - FMOD_RESULT F_API createDSPByPlugin (unsigned int handle, DSP **dsp); - FMOD_RESULT F_API getDSPInfoByPlugin (unsigned int handle, const FMOD_DSP_DESCRIPTION **description); - FMOD_RESULT F_API registerCodec (FMOD_CODEC_DESCRIPTION *description, unsigned int *handle, unsigned int priority = 0); - FMOD_RESULT F_API registerDSP (const FMOD_DSP_DESCRIPTION *description, unsigned int *handle); - FMOD_RESULT F_API registerOutput (const FMOD_OUTPUT_DESCRIPTION *description, unsigned int *handle); - - // Init/Close. - FMOD_RESULT F_API init (int maxchannels, FMOD_INITFLAGS flags, void *extradriverdata); - FMOD_RESULT F_API close (); - - // General post-init system functions. - FMOD_RESULT F_API update (); /* IMPORTANT! CALL THIS ONCE PER FRAME! */ - - FMOD_RESULT F_API setSpeakerPosition (FMOD_SPEAKER speaker, float x, float y, bool active); - FMOD_RESULT F_API getSpeakerPosition (FMOD_SPEAKER speaker, float *x, float *y, bool *active); - FMOD_RESULT F_API setStreamBufferSize (unsigned int filebuffersize, FMOD_TIMEUNIT filebuffersizetype); - FMOD_RESULT F_API getStreamBufferSize (unsigned int *filebuffersize, FMOD_TIMEUNIT *filebuffersizetype); - FMOD_RESULT F_API set3DSettings (float dopplerscale, float distancefactor, float rolloffscale); - FMOD_RESULT F_API get3DSettings (float *dopplerscale, float *distancefactor, float *rolloffscale); - FMOD_RESULT F_API set3DNumListeners (int numlisteners); - FMOD_RESULT F_API get3DNumListeners (int *numlisteners); - FMOD_RESULT F_API set3DListenerAttributes (int listener, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *forward, const FMOD_VECTOR *up); - FMOD_RESULT F_API get3DListenerAttributes (int listener, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *forward, FMOD_VECTOR *up); - FMOD_RESULT F_API set3DRolloffCallback (FMOD_3D_ROLLOFF_CALLBACK callback); - FMOD_RESULT F_API mixerSuspend (); - FMOD_RESULT F_API mixerResume (); - FMOD_RESULT F_API getDefaultMixMatrix (FMOD_SPEAKERMODE sourcespeakermode, FMOD_SPEAKERMODE targetspeakermode, float *matrix, int matrixhop); - FMOD_RESULT F_API getSpeakerModeChannels (FMOD_SPEAKERMODE mode, int *channels); - - // System information functions. - FMOD_RESULT F_API getVersion (unsigned int *version); - FMOD_RESULT F_API getOutputHandle (void **handle); - FMOD_RESULT F_API getChannelsPlaying (int *channels, int *realchannels = 0); - FMOD_RESULT F_API getCPUUsage (float *dsp, float *stream, float *geometry, float *update, float *total); - FMOD_RESULT F_API getFileUsage (long long *sampleBytesRead, long long *streamBytesRead, long long *otherBytesRead); - FMOD_RESULT F_API getSoundRAM (int *currentalloced, int *maxalloced, int *total); - - // Sound/DSP/Channel/FX creation and retrieval. - FMOD_RESULT F_API createSound (const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, Sound **sound); - FMOD_RESULT F_API createStream (const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, Sound **sound); - FMOD_RESULT F_API createDSP (const FMOD_DSP_DESCRIPTION *description, DSP **dsp); - FMOD_RESULT F_API createDSPByType (FMOD_DSP_TYPE type, DSP **dsp); - FMOD_RESULT F_API createChannelGroup (const char *name, ChannelGroup **channelgroup); - FMOD_RESULT F_API createSoundGroup (const char *name, SoundGroup **soundgroup); - FMOD_RESULT F_API createReverb3D (Reverb3D **reverb); - - FMOD_RESULT F_API playSound (Sound *sound, ChannelGroup *channelgroup, bool paused, Channel **channel); - FMOD_RESULT F_API playDSP (DSP *dsp, ChannelGroup *channelgroup, bool paused, Channel **channel); - FMOD_RESULT F_API getChannel (int channelid, Channel **channel); - FMOD_RESULT F_API getMasterChannelGroup (ChannelGroup **channelgroup); - FMOD_RESULT F_API getMasterSoundGroup (SoundGroup **soundgroup); - - // Routing to ports. - FMOD_RESULT F_API attachChannelGroupToPort (FMOD_PORT_TYPE portType, FMOD_PORT_INDEX portIndex, ChannelGroup *channelgroup, bool passThru = false); - FMOD_RESULT F_API detachChannelGroupFromPort (ChannelGroup *channelgroup); - - // Reverb API. - FMOD_RESULT F_API setReverbProperties (int instance, const FMOD_REVERB_PROPERTIES *prop); - FMOD_RESULT F_API getReverbProperties (int instance, FMOD_REVERB_PROPERTIES *prop); - - // System level DSP functionality. - FMOD_RESULT F_API lockDSP (); - FMOD_RESULT F_API unlockDSP (); - - // Recording API. - FMOD_RESULT F_API getRecordNumDrivers (int *numdrivers, int *numconnected); - FMOD_RESULT F_API getRecordDriverInfo (int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels, FMOD_DRIVER_STATE *state); - FMOD_RESULT F_API getRecordPosition (int id, unsigned int *position); - FMOD_RESULT F_API recordStart (int id, Sound *sound, bool loop); - FMOD_RESULT F_API recordStop (int id); - FMOD_RESULT F_API isRecording (int id, bool *recording); - - // Geometry API. - FMOD_RESULT F_API createGeometry (int maxpolygons, int maxvertices, Geometry **geometry); - FMOD_RESULT F_API setGeometrySettings (float maxworldsize); - FMOD_RESULT F_API getGeometrySettings (float *maxworldsize); - FMOD_RESULT F_API loadGeometry (const void *data, int datasize, Geometry **geometry); - FMOD_RESULT F_API getGeometryOcclusion (const FMOD_VECTOR *listener, const FMOD_VECTOR *source, float *direct, float *reverb); - - // Network functions. - FMOD_RESULT F_API setNetworkProxy (const char *proxy); - FMOD_RESULT F_API getNetworkProxy (char *proxy, int proxylen); - FMOD_RESULT F_API setNetworkTimeout (int timeout); - FMOD_RESULT F_API getNetworkTimeout (int *timeout); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - /* - 'Sound' API - */ - class Sound - { - private: - - // Constructor made private so user cannot statically instance a Sound class. Appropriate Sound creation or retrieval function must be used. - Sound(); - Sound(const Sound &); - - public: - - FMOD_RESULT F_API release (); - FMOD_RESULT F_API getSystemObject (System **system); - - // Standard sound manipulation functions. - FMOD_RESULT F_API lock (unsigned int offset, unsigned int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2); - FMOD_RESULT F_API unlock (void *ptr1, void *ptr2, unsigned int len1, unsigned int len2); - FMOD_RESULT F_API setDefaults (float frequency, int priority); - FMOD_RESULT F_API getDefaults (float *frequency, int *priority); - FMOD_RESULT F_API set3DMinMaxDistance (float min, float max); - FMOD_RESULT F_API get3DMinMaxDistance (float *min, float *max); - FMOD_RESULT F_API set3DConeSettings (float insideconeangle, float outsideconeangle, float outsidevolume); - FMOD_RESULT F_API get3DConeSettings (float *insideconeangle, float *outsideconeangle, float *outsidevolume); - FMOD_RESULT F_API set3DCustomRolloff (FMOD_VECTOR *points, int numpoints); - FMOD_RESULT F_API get3DCustomRolloff (FMOD_VECTOR **points, int *numpoints); - FMOD_RESULT F_API getSubSound (int index, Sound **subsound); - FMOD_RESULT F_API getSubSoundParent (Sound **parentsound); - FMOD_RESULT F_API getName (char *name, int namelen); - FMOD_RESULT F_API getLength (unsigned int *length, FMOD_TIMEUNIT lengthtype); - FMOD_RESULT F_API getFormat (FMOD_SOUND_TYPE *type, FMOD_SOUND_FORMAT *format, int *channels, int *bits); - FMOD_RESULT F_API getNumSubSounds (int *numsubsounds); - FMOD_RESULT F_API getNumTags (int *numtags, int *numtagsupdated); - FMOD_RESULT F_API getTag (const char *name, int index, FMOD_TAG *tag); - FMOD_RESULT F_API getOpenState (FMOD_OPENSTATE *openstate, unsigned int *percentbuffered, bool *starving, bool *diskbusy); - FMOD_RESULT F_API readData (void *buffer, unsigned int lenbytes, unsigned int *read); - FMOD_RESULT F_API seekData (unsigned int pcm); - - FMOD_RESULT F_API setSoundGroup (SoundGroup *soundgroup); - FMOD_RESULT F_API getSoundGroup (SoundGroup **soundgroup); - - // Synchronization point API. These points can come from markers embedded in wav files, and can also generate channel callbacks. - FMOD_RESULT F_API getNumSyncPoints (int *numsyncpoints); - FMOD_RESULT F_API getSyncPoint (int index, FMOD_SYNCPOINT **point); - FMOD_RESULT F_API getSyncPointInfo (FMOD_SYNCPOINT *point, char *name, int namelen, unsigned int *offset, FMOD_TIMEUNIT offsettype); - FMOD_RESULT F_API addSyncPoint (unsigned int offset, FMOD_TIMEUNIT offsettype, const char *name, FMOD_SYNCPOINT **point); - FMOD_RESULT F_API deleteSyncPoint (FMOD_SYNCPOINT *point); - - // Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time. - FMOD_RESULT F_API setMode (FMOD_MODE mode); - FMOD_RESULT F_API getMode (FMOD_MODE *mode); - FMOD_RESULT F_API setLoopCount (int loopcount); - FMOD_RESULT F_API getLoopCount (int *loopcount); - FMOD_RESULT F_API setLoopPoints (unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); - FMOD_RESULT F_API getLoopPoints (unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - - // For MOD/S3M/XM/IT/MID sequenced formats only. - FMOD_RESULT F_API getMusicNumChannels (int *numchannels); - FMOD_RESULT F_API setMusicChannelVolume (int channel, float volume); - FMOD_RESULT F_API getMusicChannelVolume (int channel, float *volume); - FMOD_RESULT F_API setMusicSpeed (float speed); - FMOD_RESULT F_API getMusicSpeed (float *speed); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - - /* - 'ChannelControl API'. This is a base class for Channel and ChannelGroup so they can share the same functionality. This cannot be used or instansiated explicitly. - */ - class ChannelControl - { - private: - - // Constructor made private so user cannot statically instance a Control class. - ChannelControl(); - ChannelControl(const ChannelControl &); - - public: - - FMOD_RESULT F_API getSystemObject (System **system); - - // General control functionality for Channels and ChannelGroups. - FMOD_RESULT F_API stop (); - FMOD_RESULT F_API setPaused (bool paused); - FMOD_RESULT F_API getPaused (bool *paused); - FMOD_RESULT F_API setVolume (float volume); - FMOD_RESULT F_API getVolume (float *volume); - FMOD_RESULT F_API setVolumeRamp (bool ramp); - FMOD_RESULT F_API getVolumeRamp (bool *ramp); - FMOD_RESULT F_API getAudibility (float *audibility); - FMOD_RESULT F_API setPitch (float pitch); - FMOD_RESULT F_API getPitch (float *pitch); - FMOD_RESULT F_API setMute (bool mute); - FMOD_RESULT F_API getMute (bool *mute); - FMOD_RESULT F_API setReverbProperties (int instance, float wet); - FMOD_RESULT F_API getReverbProperties (int instance, float *wet); - FMOD_RESULT F_API setLowPassGain (float gain); - FMOD_RESULT F_API getLowPassGain (float *gain); - FMOD_RESULT F_API setMode (FMOD_MODE mode); - FMOD_RESULT F_API getMode (FMOD_MODE *mode); - FMOD_RESULT F_API setCallback (FMOD_CHANNELCONTROL_CALLBACK callback); - FMOD_RESULT F_API isPlaying (bool *isplaying); - - // Panning and level adjustment. - // 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_RESULT F_API setPan (float pan); - FMOD_RESULT F_API setMixLevelsOutput (float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright); - FMOD_RESULT F_API setMixLevelsInput (float *levels, int numlevels); - FMOD_RESULT F_API setMixMatrix (float *matrix, int outchannels, int inchannels, int inchannel_hop = 0); - FMOD_RESULT F_API getMixMatrix (float *matrix, int *outchannels, int *inchannels, int inchannel_hop = 0); - - // Clock based functionality. - FMOD_RESULT F_API getDSPClock (unsigned long long *dspclock, unsigned long long *parentclock); - FMOD_RESULT F_API setDelay (unsigned long long dspclock_start, unsigned long long dspclock_end, bool stopchannels = true); - FMOD_RESULT F_API getDelay (unsigned long long *dspclock_start, unsigned long long *dspclock_end, bool *stopchannels = 0); - FMOD_RESULT F_API addFadePoint (unsigned long long dspclock, float volume); - FMOD_RESULT F_API setFadePointRamp (unsigned long long dspclock, float volume); - FMOD_RESULT F_API removeFadePoints (unsigned long long dspclock_start, unsigned long long dspclock_end); - FMOD_RESULT F_API getFadePoints (unsigned int *numpoints, unsigned long long *point_dspclock, float *point_volume); - - // DSP effects. - FMOD_RESULT F_API getDSP (int index, DSP **dsp); - FMOD_RESULT F_API addDSP (int index, DSP *dsp); - FMOD_RESULT F_API removeDSP (DSP *dsp); - FMOD_RESULT F_API getNumDSPs (int *numdsps); - FMOD_RESULT F_API setDSPIndex (DSP *dsp, int index); - FMOD_RESULT F_API getDSPIndex (DSP *dsp, int *index); - FMOD_RESULT F_API overridePanDSP (DSP *pan); - - // 3D functionality. - FMOD_RESULT F_API set3DAttributes (const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos = 0); - FMOD_RESULT F_API get3DAttributes (FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos = 0); - FMOD_RESULT F_API set3DMinMaxDistance (float mindistance, float maxdistance); - FMOD_RESULT F_API get3DMinMaxDistance (float *mindistance, float *maxdistance); - FMOD_RESULT F_API set3DConeSettings (float insideconeangle, float outsideconeangle, float outsidevolume); - FMOD_RESULT F_API get3DConeSettings (float *insideconeangle, float *outsideconeangle, float *outsidevolume); - FMOD_RESULT F_API set3DConeOrientation (FMOD_VECTOR *orientation); - FMOD_RESULT F_API get3DConeOrientation (FMOD_VECTOR *orientation); - FMOD_RESULT F_API set3DCustomRolloff (FMOD_VECTOR *points, int numpoints); - FMOD_RESULT F_API get3DCustomRolloff (FMOD_VECTOR **points, int *numpoints); - FMOD_RESULT F_API set3DOcclusion (float directocclusion, float reverbocclusion); - FMOD_RESULT F_API get3DOcclusion (float *directocclusion, float *reverbocclusion); - FMOD_RESULT F_API set3DSpread (float angle); - FMOD_RESULT F_API get3DSpread (float *angle); - FMOD_RESULT F_API set3DLevel (float level); - FMOD_RESULT F_API get3DLevel (float *level); - FMOD_RESULT F_API set3DDopplerLevel (float level); - FMOD_RESULT F_API get3DDopplerLevel (float *level); - FMOD_RESULT F_API set3DDistanceFilter (bool custom, float customLevel, float centerFreq); - FMOD_RESULT F_API get3DDistanceFilter (bool *custom, float *customLevel, float *centerFreq); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - /* - 'Channel' API. - */ - class Channel : public ChannelControl - { - private: - - // Constructor made private so user cannot statically instance a Channel class. Appropriate Channel creation or retrieval function must be used. - Channel(); - Channel(const Channel &); - - public: - - // Channel specific control functionality. - FMOD_RESULT F_API setFrequency (float frequency); - FMOD_RESULT F_API getFrequency (float *frequency); - FMOD_RESULT F_API setPriority (int priority); - FMOD_RESULT F_API getPriority (int *priority); - FMOD_RESULT F_API setPosition (unsigned int position, FMOD_TIMEUNIT postype); - FMOD_RESULT F_API getPosition (unsigned int *position, FMOD_TIMEUNIT postype); - FMOD_RESULT F_API setChannelGroup (ChannelGroup *channelgroup); - FMOD_RESULT F_API getChannelGroup (ChannelGroup **channelgroup); - FMOD_RESULT F_API setLoopCount (int loopcount); - FMOD_RESULT F_API getLoopCount (int *loopcount); - FMOD_RESULT F_API setLoopPoints (unsigned int loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int loopend, FMOD_TIMEUNIT loopendtype); - FMOD_RESULT F_API getLoopPoints (unsigned int *loopstart, FMOD_TIMEUNIT loopstarttype, unsigned int *loopend, FMOD_TIMEUNIT loopendtype); - - // Information only functions. - FMOD_RESULT F_API isVirtual (bool *isvirtual); - FMOD_RESULT F_API getCurrentSound (Sound **sound); - FMOD_RESULT F_API getIndex (int *index); - }; - - /* - 'ChannelGroup' API - */ - class ChannelGroup : public ChannelControl - { - private: - - // Constructor made private so user cannot statically instance a ChannelGroup class. Appropriate ChannelGroup creation or retrieval function must be used. - ChannelGroup(); - ChannelGroup(const ChannelGroup &); - - public: - - FMOD_RESULT F_API release (); - - // Nested channel groups. - FMOD_RESULT F_API addGroup (ChannelGroup *group, bool propagatedspclock = true, DSPConnection **connection = 0); - FMOD_RESULT F_API getNumGroups (int *numgroups); - FMOD_RESULT F_API getGroup (int index, ChannelGroup **group); - FMOD_RESULT F_API getParentGroup (ChannelGroup **group); - - // Information only functions. - FMOD_RESULT F_API getName (char *name, int namelen); - FMOD_RESULT F_API getNumChannels (int *numchannels); - FMOD_RESULT F_API getChannel (int index, Channel **channel); - }; - - /* - 'SoundGroup' API - */ - class SoundGroup - { - private: - - // Constructor made private so user cannot statically instance a SoundGroup class. Appropriate SoundGroup creation or retrieval function must be used. - SoundGroup(); - SoundGroup(const SoundGroup &); - - public: - - FMOD_RESULT F_API release (); - FMOD_RESULT F_API getSystemObject (System **system); - - // SoundGroup control functions. - FMOD_RESULT F_API setMaxAudible (int maxaudible); - FMOD_RESULT F_API getMaxAudible (int *maxaudible); - FMOD_RESULT F_API setMaxAudibleBehavior (FMOD_SOUNDGROUP_BEHAVIOR behavior); - FMOD_RESULT F_API getMaxAudibleBehavior (FMOD_SOUNDGROUP_BEHAVIOR *behavior); - FMOD_RESULT F_API setMuteFadeSpeed (float speed); - FMOD_RESULT F_API getMuteFadeSpeed (float *speed); - FMOD_RESULT F_API setVolume (float volume); - FMOD_RESULT F_API getVolume (float *volume); - FMOD_RESULT F_API stop (); - - // Information only functions. - FMOD_RESULT F_API getName (char *name, int namelen); - FMOD_RESULT F_API getNumSounds (int *numsounds); - FMOD_RESULT F_API getSound (int index, Sound **sound); - FMOD_RESULT F_API getNumPlaying (int *numplaying); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - /* - 'DSP' API - */ - class DSP - { - private: - - // Constructor made private so user cannot statically instance a DSP class. Appropriate DSP creation or retrieval function must be used. - DSP(); - DSP(const DSP &); - - public: - - FMOD_RESULT F_API release (); - FMOD_RESULT F_API getSystemObject (System **system); - - // Connection / disconnection / input and output enumeration. - FMOD_RESULT F_API addInput (DSP *input, DSPConnection **connection = 0, FMOD_DSPCONNECTION_TYPE type = FMOD_DSPCONNECTION_TYPE_STANDARD); - FMOD_RESULT F_API disconnectFrom (DSP *target, DSPConnection *connection = 0); - FMOD_RESULT F_API disconnectAll (bool inputs, bool outputs); - FMOD_RESULT F_API getNumInputs (int *numinputs); - FMOD_RESULT F_API getNumOutputs (int *numoutputs); - FMOD_RESULT F_API getInput (int index, DSP **input, DSPConnection **inputconnection); - FMOD_RESULT F_API getOutput (int index, DSP **output, DSPConnection **outputconnection); - - // DSP unit control. - FMOD_RESULT F_API setActive (bool active); - FMOD_RESULT F_API getActive (bool *active); - FMOD_RESULT F_API setBypass (bool bypass); - FMOD_RESULT F_API getBypass (bool *bypass); - FMOD_RESULT F_API setWetDryMix (float prewet, float postwet, float dry); - FMOD_RESULT F_API getWetDryMix (float *prewet, float *postwet, float *dry); - FMOD_RESULT F_API setChannelFormat (FMOD_CHANNELMASK channelmask, int numchannels, FMOD_SPEAKERMODE source_speakermode); - FMOD_RESULT F_API getChannelFormat (FMOD_CHANNELMASK *channelmask, int *numchannels, FMOD_SPEAKERMODE *source_speakermode); - FMOD_RESULT F_API getOutputChannelFormat (FMOD_CHANNELMASK inmask, int inchannels, FMOD_SPEAKERMODE inspeakermode, FMOD_CHANNELMASK *outmask, int *outchannels, FMOD_SPEAKERMODE *outspeakermode); - FMOD_RESULT F_API reset (); - - // DSP parameter control. - FMOD_RESULT F_API setParameterFloat (int index, float value); - FMOD_RESULT F_API setParameterInt (int index, int value); - FMOD_RESULT F_API setParameterBool (int index, bool value); - FMOD_RESULT F_API setParameterData (int index, void *data, unsigned int length); - FMOD_RESULT F_API getParameterFloat (int index, float *value, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getParameterInt (int index, int *value, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getParameterBool (int index, bool *value, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getParameterData (int index, void **data, unsigned int *length, char *valuestr, int valuestrlen); - FMOD_RESULT F_API getNumParameters (int *numparams); - FMOD_RESULT F_API getParameterInfo (int index, FMOD_DSP_PARAMETER_DESC **desc); - FMOD_RESULT F_API getDataParameterIndex (int datatype, int *index); - FMOD_RESULT F_API showConfigDialog (void *hwnd, bool show); - - // DSP attributes. - FMOD_RESULT F_API getInfo (char *name, unsigned int *version, int *channels, int *configwidth, int *configheight); - FMOD_RESULT F_API getType (FMOD_DSP_TYPE *type); - FMOD_RESULT F_API getIdle (bool *idle); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - - // Metering. - FMOD_RESULT F_API setMeteringEnabled (bool inputEnabled, bool outputEnabled); - FMOD_RESULT F_API getMeteringEnabled (bool *inputEnabled, bool *outputEnabled); - FMOD_RESULT F_API getMeteringInfo (FMOD_DSP_METERING_INFO *inputInfo, FMOD_DSP_METERING_INFO *outputInfo); - }; - - - /* - 'DSPConnection' API - */ - class DSPConnection - { - private: - - // Constructor made private so user cannot statically instance a DSPConnection class. Appropriate DSPConnection creation or retrieval function must be used. - DSPConnection(); - DSPConnection(const DSPConnection &); - - public: - - FMOD_RESULT F_API getInput (DSP **input); - FMOD_RESULT F_API getOutput (DSP **output); - FMOD_RESULT F_API setMix (float volume); - FMOD_RESULT F_API getMix (float *volume); - FMOD_RESULT F_API setMixMatrix (float *matrix, int outchannels, int inchannels, int inchannel_hop = 0); - FMOD_RESULT F_API getMixMatrix (float *matrix, int *outchannels, int *inchannels, int inchannel_hop = 0); - FMOD_RESULT F_API getType (FMOD_DSPCONNECTION_TYPE *type); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - - /* - 'Geometry' API - */ - class Geometry - { - private: - - // Constructor made private so user cannot statically instance a Geometry class. Appropriate Geometry creation or retrieval function must be used. - Geometry(); - Geometry(const Geometry &); - - public: - - FMOD_RESULT F_API release (); - - // Polygon manipulation. - FMOD_RESULT F_API addPolygon (float directocclusion, float reverbocclusion, bool doublesided, int numvertices, const FMOD_VECTOR *vertices, int *polygonindex); - FMOD_RESULT F_API getNumPolygons (int *numpolygons); - FMOD_RESULT F_API getMaxPolygons (int *maxpolygons, int *maxvertices); - FMOD_RESULT F_API getPolygonNumVertices (int index, int *numvertices); - FMOD_RESULT F_API setPolygonVertex (int index, int vertexindex, const FMOD_VECTOR *vertex); - FMOD_RESULT F_API getPolygonVertex (int index, int vertexindex, FMOD_VECTOR *vertex); - FMOD_RESULT F_API setPolygonAttributes (int index, float directocclusion, float reverbocclusion, bool doublesided); - FMOD_RESULT F_API getPolygonAttributes (int index, float *directocclusion, float *reverbocclusion, bool *doublesided); - - // Object manipulation. - FMOD_RESULT F_API setActive (bool active); - FMOD_RESULT F_API getActive (bool *active); - FMOD_RESULT F_API setRotation (const FMOD_VECTOR *forward, const FMOD_VECTOR *up); - FMOD_RESULT F_API getRotation (FMOD_VECTOR *forward, FMOD_VECTOR *up); - FMOD_RESULT F_API setPosition (const FMOD_VECTOR *position); - FMOD_RESULT F_API getPosition (FMOD_VECTOR *position); - FMOD_RESULT F_API setScale (const FMOD_VECTOR *scale); - FMOD_RESULT F_API getScale (FMOD_VECTOR *scale); - FMOD_RESULT F_API save (void *data, int *datasize); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; - - - /* - 'Reverb' API - */ - class Reverb3D - { - private: - - // Constructor made private so user cannot statically instance a Reverb3D class. Appropriate Reverb creation or retrieval function must be used. - Reverb3D(); - Reverb3D(const Reverb3D &); - - public: - - FMOD_RESULT F_API release (); - - // Reverb manipulation. - FMOD_RESULT F_API set3DAttributes (const FMOD_VECTOR *position, float mindistance, float maxdistance); - FMOD_RESULT F_API get3DAttributes (FMOD_VECTOR *position, float *mindistance,float *maxdistance); - FMOD_RESULT F_API setProperties (const FMOD_REVERB_PROPERTIES *properties); - FMOD_RESULT F_API getProperties (FMOD_REVERB_PROPERTIES *properties); - FMOD_RESULT F_API setActive (bool active); - FMOD_RESULT F_API getActive (bool *active); - - // Userdata set/get. - FMOD_RESULT F_API setUserData (void *userdata); - FMOD_RESULT F_API getUserData (void **userdata); - }; -} - -#endif diff --git a/fmodstudio/inc/fmod_codec.h b/fmodstudio/inc/fmod_codec.h deleted file mode 100644 index ce0e9a46..00000000 --- a/fmodstudio/inc/fmod_codec.h +++ /dev/null @@ -1,178 +0,0 @@ -/* ======================================================================================================== */ -/* FMOD Studio - codec development header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2016. */ -/* */ -/* Use this header if you are wanting to develop your own file format plugin to use with */ -/* FMOD's codec system. With this header you can make your own fileformat plugin that FMOD */ -/* can register and use. See the documentation and examples on how to make a working plugin. */ -/* */ -/* ======================================================================================================== */ - -#ifndef _FMOD_CODEC_H -#define _FMOD_CODEC_H - -typedef struct FMOD_CODEC_STATE FMOD_CODEC_STATE; -typedef struct FMOD_CODEC_WAVEFORMAT FMOD_CODEC_WAVEFORMAT; - -/* - Codec callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_OPEN_CALLBACK) (FMOD_CODEC_STATE *codec_state, FMOD_MODE usermode, FMOD_CREATESOUNDEXINFO *userexinfo); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_CLOSE_CALLBACK) (FMOD_CODEC_STATE *codec_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_READ_CALLBACK) (FMOD_CODEC_STATE *codec_state, void *buffer, unsigned int samples_in, unsigned int *samples_out); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_GETLENGTH_CALLBACK) (FMOD_CODEC_STATE *codec_state, unsigned int *length, FMOD_TIMEUNIT lengthtype); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_SETPOSITION_CALLBACK) (FMOD_CODEC_STATE *codec_state, int subsound, unsigned int position, FMOD_TIMEUNIT postype); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_GETPOSITION_CALLBACK) (FMOD_CODEC_STATE *codec_state, unsigned int *position, FMOD_TIMEUNIT postype); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_SOUNDCREATE_CALLBACK) (FMOD_CODEC_STATE *codec_state, int subsound, FMOD_SOUND *sound); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_METADATA_CALLBACK) (FMOD_CODEC_STATE *codec_state, FMOD_TAGTYPE tagtype, char *name, void *data, unsigned int datalen, FMOD_TAGDATATYPE datatype, int unique); -typedef FMOD_RESULT (F_CALLBACK *FMOD_CODEC_GETWAVEFORMAT_CALLBACK)(FMOD_CODEC_STATE *codec_state, int index, FMOD_CODEC_WAVEFORMAT *waveformat); - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - When creating a codec, declare one of these and provide the relevant callbacks and name for FMOD to use when it opens and reads a file. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
- Members marked with [w] mean the variable can be written to. The user can set the value.
- - [SEE_ALSO] - FMOD_CODEC_STATE - FMOD_CODEC_WAVEFORMAT -] -*/ -typedef struct FMOD_CODEC_DESCRIPTION -{ - const char *name; /* [w] Name of the codec. */ - unsigned int version; /* [w] Plugin writer's version number. */ - int defaultasstream; /* [w] Tells FMOD to open the file as a stream when calling System::createSound, and not a static sample. Should normally be 0 (FALSE), because generally the user wants to decode the file into memory when using System::createSound. Mainly used for formats that decode for a very long time, or could use large amounts of memory when decoded. Usually sequenced formats such as mod/s3m/xm/it/midi fall into this category. It is mainly to stop users that don't know what they're doing from getting FMOD_ERR_MEMORY returned from createSound when they should have in fact called System::createStream or used FMOD_CREATESTREAM in System::createSound. */ - FMOD_TIMEUNIT timeunits; /* [w] When setposition codec is called, only these time formats will be passed to the codec. Use bitwise OR to accumulate different types. */ - FMOD_CODEC_OPEN_CALLBACK open; /* [w] Open callback for the codec for when FMOD tries to open a sound using this codec. */ - FMOD_CODEC_CLOSE_CALLBACK close; /* [w] Close callback for the codec for when FMOD tries to close a sound using this codec. */ - FMOD_CODEC_READ_CALLBACK read; /* [w] Read callback for the codec for when FMOD tries to read some data from the file to the destination format (specified in the open callback). */ - FMOD_CODEC_GETLENGTH_CALLBACK getlength; /* [w] Callback to return the length of the song in whatever format required when Sound::getLength is called. */ - FMOD_CODEC_SETPOSITION_CALLBACK setposition; /* [w] Seek callback for the codec for when FMOD tries to seek within the file with Channel::setPosition. */ - FMOD_CODEC_GETPOSITION_CALLBACK getposition; /* [w] Tell callback for the codec for when FMOD tries to get the current position within the with Channel::getPosition. */ - FMOD_CODEC_SOUNDCREATE_CALLBACK soundcreate; /* [w] Sound creation callback for the codec when FMOD finishes creating the sound. (So the codec can set more parameters for the related created sound, ie loop points/mode or 3D attributes etc). */ - FMOD_CODEC_GETWAVEFORMAT_CALLBACK getwaveformat; /* [w] Callback to tell FMOD about the waveformat of a particular subsound. This is to save memory, rather than saving 1000 FMOD_CODEC_WAVEFORMAT structures in the codec, the codec might have a more optimal way of storing this information. */ -} FMOD_CODEC_DESCRIPTION; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Set these values marked to tell fmod what sort of sound to create when the codec open callback is called.
- The format, channels, frequency and lengthpcm tell FMOD what sort of sound buffer to create when you initialize your code.
- If you wrote an MP3 codec that decoded to stereo 16bit integer PCM for a 44khz sound, you would specify FMOD_SOUND_FORMAT_PCM16, and channels would be equal to 2, and frequency would be 44100.
- - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
- Members marked with [w] mean the variable can be written to. The user can set the value.
-
- 1.07 Note. 'blockalign' member which was in bytes has been removed. 'pcmblocksize' is now the replacement, and is measured in PCM samples only, not bytes. This is purely to support buffering - internal to FMOD for codecs that are not sample accurate. -
- Note: When registering a codec, format, channels, frequency and lengthpcm must be supplied, otherwise there will be an error.
- This structure is optional if FMOD_CODEC_GETWAVEFORMAT_CALLBACK is specified.
- An array of these structures may be needed if FMOD_CODEC_STATE::numsubsounds is larger than 1. - - - [SEE_ALSO] - FMOD_CODEC_STATE - FMOD_SOUND_FORMAT - FMOD_MODE - FMOD_CHANNELMASK - FMOD_CHANNELORDER - FMOD_CODEC_WAVEFORMAT_VERSION -] -*/ -struct FMOD_CODEC_WAVEFORMAT -{ - char name[256]; /* [w] Name of sound. Optional. */ - FMOD_SOUND_FORMAT format; /* [w] Format for (decompressed) codec output, ie FMOD_SOUND_FORMAT_PCM8, FMOD_SOUND_FORMAT_PCM16. Mandantory - Must be supplied. */ - int channels; /* [w] Number of channels used by codec, ie mono = 1, stereo = 2. Mandantory - Must be supplied. */ - int frequency; /* [w] Default frequency in hz of the codec, ie 44100. Mandantory - Must be supplied. */ - unsigned int lengthbytes; /* [w] Length in bytes of the source data. Used for FMOD_TIMEUNIT_RAWBYTES. Optional. Default = 0. */ - unsigned int lengthpcm; /* [w] Length in decompressed, PCM samples of the file, ie length in seconds * frequency. Used for Sound::getLength and for memory allocation of static decompressed sample data. Mandantory - Must be supplied. */ - unsigned int pcmblocksize; /* [w] Minimum, optimal number of decompressed PCM samples codec can handle. 0 or 1 = no buffering. Anything higher means FMOD will allocate a PCM buffer of this size to read in chunks. The codec read callback will be called in multiples of this value. Optional. */ - int loopstart; /* [w] Loopstart in decompressed, PCM samples of file. Optional. Default = 0. */ - int loopend; /* [w] Loopend in decompressed, PCM samples of file. Optional. Default = 0. */ - FMOD_MODE mode; /* [w] Mode to determine whether the sound should by default load as looping, non looping, 2d or 3d. Optional. Default = FMOD_DEFAULT. */ - FMOD_CHANNELMASK channelmask; /* [w] Defined channel bitmask to describe which speakers the channels in the codec map to, in order of channel count. See fmod_common.h. Optional. Leave at 0 to map to the speaker layout defined in FMOD_SPEAKER. */ - FMOD_CHANNELORDER channelorder; /* [w] Defined channel order type, to describe where each sound channel should pan for the number of channels specified. See fmod_common.h. Optional. Leave at 0 to play in default speaker order. */ - float peakvolume; /* [w] Peak volume of sound. Optional. Default = 0 if not used. */ -}; - - -/* -[DEFINE] -[ - [NAME] - FMOD_CODEC_WAVEFORMAT_VERSION - - [DESCRIPTION] - Version number of FMOD_CODEC_WAVEFORMAT structure. Should be set into FMOD_CODEC_STATE in the FMOD_CODEC_OPEN_CALLBACK. - - [REMARKS] - Use this for binary compatibility and for future expansion. - - [SEE_ALSO] - FMOD_CODEC_STATE - FMOD_CODEC_DESCRIPTION - FMOD_CODEC_OPEN_CALLBACK -] -*/ -#define FMOD_CODEC_WAVEFORMAT_VERSION 2 -/* [DEFINE_END] */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Codec plugin structure that is passed into each callback.
-
- Optionally set the numsubsounds and waveformat members when called in FMOD_CODEC_OPEN_CALLBACK to tell fmod what sort of sound to create.
- - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
- Members marked with [w] mean the variable can be written to. The user can set the value.
-
- 'numsubsounds' should be 0 if the file is a normal single sound stream or sound. Examples of this would be .WAV, .WMA, .MP3, .AIFF.
- 'numsubsounds' should be 1+ if the file is a container format, and does not contain wav data itself. Examples of these types would be FSB (contains multiple sounds), DLS (contain instruments).
- The waveformat value should point to an arrays of information based on how many subsounds are in the format. If the number of subsounds is 0 then it should point to 1 waveformat, the same as if the number of subsounds was 1. If subsounds was 100 for example, there should be a pointer to an array of 100 waveformat structures.
-
- The waveformat pointer is optional and could be 0, if using FMOD_CODEC_GETWAVEFORMAT_CALLBACK is preferred.
-
- When a sound has 1 or more subsounds, the caller must play the individual sounds specified by first obtaining the subsound with Sound::getSubSound. - - [SEE_ALSO] - FMOD_CODEC_WAVEFORMAT - FMOD_FILE_READ_CALLBACK - FMOD_FILE_SEEK_CALLBACK - FMOD_CODEC_METADATA_CALLBACK - Sound::getSubSound - Sound::getNumSubSounds - FMOD_CODEC_WAVEFORMAT_VERSION -] -*/ -struct FMOD_CODEC_STATE -{ - int numsubsounds; /* [w] Number of 'subsounds' in this sound. Anything other than 0 makes it a 'container' format (ie DLS/FSB etc which contain 1 or more subsounds). For most normal, single sound codec such as WAV/AIFF/MP3, this should be 0 as they are not a container for subsounds, they are the sound by itself. */ - FMOD_CODEC_WAVEFORMAT *waveformat; /* [w] Pointer to an array of format structures containing information about each sample. Can be 0 or NULL if FMOD_CODEC_GETWAVEFORMAT_CALLBACK callback is preferred. The number of entries here must equal the number of subsounds defined in the subsound parameter. If numsubsounds = 0 then there should be 1 instance of this structure. */ - void *plugindata; /* [w] Plugin writer created data the codec author wants to attach to this object. */ - - void *filehandle; /* [r] This will return an internal FMOD file handle to use with the callbacks provided. */ - unsigned int filesize; /* [r] This will contain the size of the file in bytes. */ - FMOD_FILE_READ_CALLBACK fileread; /* [r] This will return a callable FMOD file function to use from codec. */ - FMOD_FILE_SEEK_CALLBACK fileseek; /* [r] This will return a callable FMOD file function to use from codec. */ - FMOD_CODEC_METADATA_CALLBACK metadata; /* [r] This will return a callable FMOD metadata function to use from codec. */ - - int waveformatversion; /* [w] Must be set to FMOD_CODEC_WAVEFORMAT_VERSION in the FMOD_CODEC_OPEN_CALLBACK. */ -}; - -#endif - - diff --git a/fmodstudio/inc/fmod_common.h b/fmodstudio/inc/fmod_common.h deleted file mode 100644 index 292e7c52..00000000 --- a/fmodstudio/inc/fmod_common.h +++ /dev/null @@ -1,1709 +0,0 @@ -/*$ preserve start $*/ - -/* ================================================================================================== */ -/* FMOD Studio - Common C/C++ header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2016. */ -/* */ -/* This header is included by fmod.hpp (C++ interface) and fmod.h (C interface) therefore is the */ -/* base header for all FMOD headers. */ -/* ================================================================================================== */ - -#ifndef _FMOD_COMMON_H -#define _FMOD_COMMON_H - -/* - FMOD version number. Check this against FMOD::System::getVersion. - 0xaaaabbcc -> aaaa = major version number. bb = minor version number. cc = development version number. -*/ - -#define FMOD_VERSION 0x00010814 - -/* - Compiler specific settings. -*/ - -#if defined(_WIN32) || defined(__CYGWIN__) - #define F_CALL __stdcall -#elif defined(__ANDROID__) && defined(__arm__) && !defined(__LP64__) && !defined(__clang__) - #define F_CALL __attribute__((pcs("aapcs"))) -#else - #define F_CALL -#endif - -#if defined(_WIN32) || defined(__CYGWIN__) || defined(__ORBIS__) || defined(__psp2__) - #define F_EXPORT __declspec(dllexport) -#elif defined(__APPLE__) || defined(__ANDROID__) || defined(__linux__) - #define F_EXPORT __attribute__((visibility("default"))) -#else - #define F_EXPORT -#endif - -#ifdef DLL_EXPORTS - #define F_API F_EXPORT F_CALL -#else - #define F_API F_CALL -#endif - -#define F_CALLBACK F_CALL - -/* - FMOD types. -*/ - -typedef int FMOD_BOOL; -typedef struct FMOD_SYSTEM FMOD_SYSTEM; -typedef struct FMOD_SOUND FMOD_SOUND; -typedef struct FMOD_CHANNELCONTROL FMOD_CHANNELCONTROL; -typedef struct FMOD_CHANNEL FMOD_CHANNEL; -typedef struct FMOD_CHANNELGROUP FMOD_CHANNELGROUP; -typedef struct FMOD_SOUNDGROUP FMOD_SOUNDGROUP; -typedef struct FMOD_REVERB3D FMOD_REVERB3D; -typedef struct FMOD_DSP FMOD_DSP; -typedef struct FMOD_DSPCONNECTION FMOD_DSPCONNECTION; -typedef struct FMOD_POLYGON FMOD_POLYGON; -typedef struct FMOD_GEOMETRY FMOD_GEOMETRY; -typedef struct FMOD_SYNCPOINT FMOD_SYNCPOINT; -typedef struct FMOD_ASYNCREADINFO FMOD_ASYNCREADINFO; -typedef unsigned int FMOD_MODE; -typedef unsigned int FMOD_TIMEUNIT; -typedef unsigned int FMOD_INITFLAGS; -typedef unsigned int FMOD_DEBUG_FLAGS; -typedef unsigned int FMOD_MEMORY_TYPE; -typedef unsigned int FMOD_SYSTEM_CALLBACK_TYPE; -typedef unsigned int FMOD_CHANNELMASK; -typedef unsigned int FMOD_DRIVER_STATE; -typedef unsigned int FMOD_PORT_TYPE; -typedef unsigned long long FMOD_PORT_INDEX; - -/*$ fmod result start $*/ -/* -[ENUM] -[ - [DESCRIPTION] - error codes. Returned from every function. - - [REMARKS] - - [SEE_ALSO] -] -*/ -typedef enum -{ - FMOD_OK, /* No errors. */ - FMOD_ERR_BADCOMMAND, /* Tried to call a function on a data type that does not allow this type of functionality (ie calling Sound::lock on a streaming sound). */ - FMOD_ERR_CHANNEL_ALLOC, /* Error trying to allocate a channel. */ - FMOD_ERR_CHANNEL_STOLEN, /* The specified channel has been reused to play another sound. */ - FMOD_ERR_DMA, /* DMA Failure. See debug output for more information. */ - FMOD_ERR_DSP_CONNECTION, /* DSP connection error. Connection possibly caused a cyclic dependency or connected dsps with incompatible buffer counts. */ - FMOD_ERR_DSP_DONTPROCESS, /* DSP return code from a DSP process query callback. Tells mixer not to call the process callback and therefore not consume CPU. Use this to optimize the DSP graph. */ - FMOD_ERR_DSP_FORMAT, /* DSP Format error. A DSP unit may have attempted to connect to this network with the wrong format, or a matrix may have been set with the wrong size if the target unit has a specified channel map. */ - FMOD_ERR_DSP_INUSE, /* DSP is already in the mixer's DSP network. It must be removed before being reinserted or released. */ - FMOD_ERR_DSP_NOTFOUND, /* DSP connection error. Couldn't find the DSP unit specified. */ - FMOD_ERR_DSP_RESERVED, /* DSP operation error. Cannot perform operation on this DSP as it is reserved by the system. */ - FMOD_ERR_DSP_SILENCE, /* DSP return code from a DSP process query callback. Tells mixer silence would be produced from read, so go idle and not consume CPU. Use this to optimize the DSP graph. */ - FMOD_ERR_DSP_TYPE, /* DSP operation cannot be performed on a DSP of this type. */ - FMOD_ERR_FILE_BAD, /* Error loading file. */ - FMOD_ERR_FILE_COULDNOTSEEK, /* Couldn't perform seek operation. This is a limitation of the medium (ie netstreams) or the file format. */ - FMOD_ERR_FILE_DISKEJECTED, /* Media was ejected while reading. */ - FMOD_ERR_FILE_EOF, /* End of file unexpectedly reached while trying to read essential data (truncated?). */ - FMOD_ERR_FILE_ENDOFDATA, /* End of current chunk reached while trying to read data. */ - FMOD_ERR_FILE_NOTFOUND, /* File not found. */ - FMOD_ERR_FORMAT, /* Unsupported file or audio format. */ - FMOD_ERR_HEADER_MISMATCH, /* There is a version mismatch between the FMOD header and either the FMOD Studio library or the FMOD Low Level library. */ - FMOD_ERR_HTTP, /* A HTTP error occurred. This is a catch-all for HTTP errors not listed elsewhere. */ - FMOD_ERR_HTTP_ACCESS, /* The specified resource requires authentication or is forbidden. */ - FMOD_ERR_HTTP_PROXY_AUTH, /* Proxy authentication is required to access the specified resource. */ - FMOD_ERR_HTTP_SERVER_ERROR, /* A HTTP server error occurred. */ - FMOD_ERR_HTTP_TIMEOUT, /* The HTTP request timed out. */ - FMOD_ERR_INITIALIZATION, /* FMOD was not initialized correctly to support this function. */ - FMOD_ERR_INITIALIZED, /* Cannot call this command after System::init. */ - FMOD_ERR_INTERNAL, /* An error occurred that wasn't supposed to. Contact support. */ - FMOD_ERR_INVALID_FLOAT, /* Value passed in was a NaN, Inf or denormalized float. */ - FMOD_ERR_INVALID_HANDLE, /* An invalid object handle was used. */ - FMOD_ERR_INVALID_PARAM, /* An invalid parameter was passed to this function. */ - FMOD_ERR_INVALID_POSITION, /* An invalid seek position was passed to this function. */ - FMOD_ERR_INVALID_SPEAKER, /* An invalid speaker was passed to this function based on the current speaker mode. */ - FMOD_ERR_INVALID_SYNCPOINT, /* The syncpoint did not come from this sound handle. */ - FMOD_ERR_INVALID_THREAD, /* Tried to call a function on a thread that is not supported. */ - FMOD_ERR_INVALID_VECTOR, /* The vectors passed in are not unit length, or perpendicular. */ - FMOD_ERR_MAXAUDIBLE, /* Reached maximum audible playback count for this sound's soundgroup. */ - FMOD_ERR_MEMORY, /* Not enough memory or resources. */ - FMOD_ERR_MEMORY_CANTPOINT, /* Can't use FMOD_OPENMEMORY_POINT on non PCM source data, or non mp3/xma/adpcm data if FMOD_CREATECOMPRESSEDSAMPLE was used. */ - FMOD_ERR_NEEDS3D, /* Tried to call a command on a 2d sound when the command was meant for 3d sound. */ - FMOD_ERR_NEEDSHARDWARE, /* Tried to use a feature that requires hardware support. */ - FMOD_ERR_NET_CONNECT, /* Couldn't connect to the specified host. */ - FMOD_ERR_NET_SOCKET_ERROR, /* A socket error occurred. This is a catch-all for socket-related errors not listed elsewhere. */ - FMOD_ERR_NET_URL, /* The specified URL couldn't be resolved. */ - FMOD_ERR_NET_WOULD_BLOCK, /* Operation on a non-blocking socket could not complete immediately. */ - FMOD_ERR_NOTREADY, /* Operation could not be performed because specified sound/DSP connection is not ready. */ - FMOD_ERR_OUTPUT_ALLOCATED, /* Error initializing output device, but more specifically, the output device is already in use and cannot be reused. */ - FMOD_ERR_OUTPUT_CREATEBUFFER, /* Error creating hardware sound buffer. */ - FMOD_ERR_OUTPUT_DRIVERCALL, /* A call to a standard soundcard driver failed, which could possibly mean a bug in the driver or resources were missing or exhausted. */ - FMOD_ERR_OUTPUT_FORMAT, /* Soundcard does not support the specified format. */ - FMOD_ERR_OUTPUT_INIT, /* Error initializing output device. */ - FMOD_ERR_OUTPUT_NODRIVERS, /* The output device has no drivers installed. If pre-init, FMOD_OUTPUT_NOSOUND is selected as the output mode. If post-init, the function just fails. */ - FMOD_ERR_PLUGIN, /* An unspecified error has been returned from a plugin. */ - FMOD_ERR_PLUGIN_MISSING, /* A requested output, dsp unit type or codec was not available. */ - FMOD_ERR_PLUGIN_RESOURCE, /* A resource that the plugin requires cannot be found. (ie the DLS file for MIDI playback) */ - FMOD_ERR_PLUGIN_VERSION, /* A plugin was built with an unsupported SDK version. */ - FMOD_ERR_RECORD, /* An error occurred trying to initialize the recording device. */ - FMOD_ERR_REVERB_CHANNELGROUP, /* Reverb properties cannot be set on this channel because a parent channelgroup owns the reverb connection. */ - FMOD_ERR_REVERB_INSTANCE, /* Specified instance in FMOD_REVERB_PROPERTIES couldn't be set. Most likely because it is an invalid instance number or the reverb doesn't exist. */ - FMOD_ERR_SUBSOUNDS, /* The error occurred because the sound referenced contains subsounds when it shouldn't have, or it doesn't contain subsounds when it should have. The operation may also not be able to be performed on a parent sound. */ - FMOD_ERR_SUBSOUND_ALLOCATED, /* This subsound is already being used by another sound, you cannot have more than one parent to a sound. Null out the other parent's entry first. */ - FMOD_ERR_SUBSOUND_CANTMOVE, /* Shared subsounds cannot be replaced or moved from their parent stream, such as when the parent stream is an FSB file. */ - FMOD_ERR_TAGNOTFOUND, /* The specified tag could not be found or there are no tags. */ - FMOD_ERR_TOOMANYCHANNELS, /* The sound created exceeds the allowable input channel count. This can be increased using the 'maxinputchannels' parameter in System::setSoftwareFormat. */ - FMOD_ERR_TRUNCATED, /* The retrieved string is too long to fit in the supplied buffer and has been truncated. */ - FMOD_ERR_UNIMPLEMENTED, /* Something in FMOD hasn't been implemented when it should be! contact support! */ - FMOD_ERR_UNINITIALIZED, /* This command failed because System::init or System::setDriver was not called. */ - FMOD_ERR_UNSUPPORTED, /* A command issued was not supported by this object. Possibly a plugin without certain callbacks specified. */ - FMOD_ERR_VERSION, /* The version number of this file format is not supported. */ - FMOD_ERR_EVENT_ALREADY_LOADED, /* The specified bank has already been loaded. */ - FMOD_ERR_EVENT_LIVEUPDATE_BUSY, /* The live update connection failed due to the game already being connected. */ - FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH, /* The live update connection failed due to the game data being out of sync with the tool. */ - FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT, /* The live update connection timed out. */ - FMOD_ERR_EVENT_NOTFOUND, /* The requested event, bus or vca could not be found. */ - FMOD_ERR_STUDIO_UNINITIALIZED, /* The Studio::System object is not yet initialized. */ - FMOD_ERR_STUDIO_NOT_LOADED, /* The specified resource is not loaded, so it can't be unloaded. */ - FMOD_ERR_INVALID_STRING, /* An invalid string was passed to this function. */ - FMOD_ERR_ALREADY_LOCKED, /* The specified resource is already locked. */ - FMOD_ERR_NOT_LOCKED, /* The specified resource is not locked, so it can't be unlocked. */ - FMOD_ERR_RECORD_DISCONNECTED, /* The specified recording driver has been disconnected. */ - FMOD_ERR_TOOMANYSAMPLES, /* The length provided exceeds the allowable limit. */ - - FMOD_RESULT_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_RESULT; -/*$ fmod result end $*/ - - -/* -[ENUM] -[ - [DESCRIPTION] - Used to distinguish if a FMOD_CHANNELCONTROL parameter is actually a channel or a channelgroup. - - [REMARKS] - Cast the FMOD_CHANNELCONTROL to an FMOD_CHANNEL/FMOD::Channel, or FMOD_CHANNELGROUP/FMOD::ChannelGroup if specific functionality is needed for either class. - Otherwise use as FMOD_CHANNELCONTROL/FMOD::ChannelControl and use that API. - - [SEE_ALSO] - Channel::setCallback - ChannelGroup::setCallback -] -*/ -typedef enum -{ - FMOD_CHANNELCONTROL_CHANNEL, - FMOD_CHANNELCONTROL_CHANNELGROUP, - - FMOD_CHANNELCONTROL_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELCONTROL_TYPE; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a point in 3D space. - - [REMARKS] - FMOD uses a left handed co-ordinate system by default.
- To use a right handed co-ordinate system specify FMOD_INIT_3D_RIGHTHANDED from FMOD_INITFLAGS in System::init. - - [SEE_ALSO] - System::set3DListenerAttributes - System::get3DListenerAttributes - Channel::set3DAttributes - Channel::get3DAttributes - Channel::set3DCustomRolloff - Channel::get3DCustomRolloff - Sound::set3DCustomRolloff - Sound::get3DCustomRolloff - Geometry::addPolygon - Geometry::setPolygonVertex - Geometry::getPolygonVertex - Geometry::setRotation - Geometry::getRotation - Geometry::setPosition - Geometry::getPosition - Geometry::setScale - Geometry::getScale - FMOD_INITFLAGS -] -*/ -typedef struct -{ - float x; /* X co-ordinate in 3D space. */ - float y; /* Y co-ordinate in 3D space. */ - float z; /* Z co-ordinate in 3D space. */ -} FMOD_VECTOR; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a position, velocity and orientation. - - [REMARKS] - - [SEE_ALSO] - FMOD_VECTOR - FMOD_DSP_PARAMETER_3DATTRIBUTES -] -*/ -typedef struct FMOD_3D_ATTRIBUTES -{ - FMOD_VECTOR position; - FMOD_VECTOR velocity; - FMOD_VECTOR forward; - FMOD_VECTOR up; -} FMOD_3D_ATTRIBUTES; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a globally unique identifier. - - [REMARKS] - - [SEE_ALSO] - System::getDriverInfo -] -*/ -typedef struct -{ - unsigned int Data1; /* Specifies the first 8 hexadecimal digits of the GUID */ - unsigned short Data2; /* Specifies the first group of 4 hexadecimal digits. */ - unsigned short Data3; /* Specifies the second group of 4 hexadecimal digits. */ - unsigned char Data4[8]; /* Array of 8 bytes. The first 2 bytes contain the third group of 4 hexadecimal digits. The remaining 6 bytes contain the final 12 hexadecimal digits. */ -} FMOD_GUID; - -typedef void (F_CALLBACK *FMOD_FILE_ASYNCDONE) (FMOD_ASYNCREADINFO *info, FMOD_RESULT result); - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure that is passed into FMOD_FILE_ASYNCREAD_CALLBACK. Use the information in this structure to perform - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
- Members marked with [w] mean the variable can be written to. The user can set the value.
-
- Instructions: write to 'buffer', and 'bytesread' BEFORE calling 'done'.
- As soon as done is called, FMOD will asynchronously continue internally using the data provided in this structure.
-
- Set result in the 'done' function pointer to the result expected from a normal file read callback.
- If the read was successful, set it to FMOD_OK.
- If it read some data but hit the end of the file, set it to FMOD_ERR_FILE_EOF.
- If a bad error occurred, return FMOD_ERR_FILE_BAD
- If a disk was ejected, return FMOD_ERR_FILE_DISKEJECTED.
- - [SEE_ALSO] - FMOD_FILE_ASYNCREAD_CALLBACK - FMOD_FILE_ASYNCCANCEL_CALLBACK - FMOD_FILE_ASYNCDONE -] -*/ -struct FMOD_ASYNCREADINFO -{ - void *handle; /* [r] The file handle that was filled out in the open callback. */ - unsigned int offset; /* [r] Seek position, make sure you read from this file offset. */ - unsigned int sizebytes; /* [r] how many bytes requested for read. */ - int priority; /* [r] 0 = low importance. 100 = extremely important (ie 'must read now or stuttering may occur') */ - - void *userdata; /* [r/w] User data pointer specific to this request. Initially 0, can be ignored or set by the user. Not related to the file's main userdata member. */ - - void *buffer; /* [w] Buffer to read file data into. */ - unsigned int bytesread; /* [w] Fill this in before setting result code to tell FMOD how many bytes were read. */ - - FMOD_FILE_ASYNCDONE done; /* [r] FMOD file system wake up function. Call this when user file read is finished. Pass result of file read as a parameter. */ -}; - - -/* -[ENUM] -[ - [DESCRIPTION] - These output types are used with System::setOutput / System::getOutput, to choose which output method to use. - - [REMARKS] - To pass information to the driver when initializing fmod use the *extradriverdata* parameter in System::init for the following reasons. - - - FMOD_OUTPUTTYPE_WAVWRITER - extradriverdata is a pointer to a char * file name that the wav writer will output to. - - FMOD_OUTPUTTYPE_WAVWRITER_NRT - extradriverdata is a pointer to a char * file name that the wav writer will output to. - - FMOD_OUTPUTTYPE_DSOUND - extradriverdata is cast to a HWND type, so that FMOD can set the focus on the audio for a particular window. - - FMOD_OUTPUTTYPE_PS3 - extradriverdata is a pointer to a FMOD_PS3_EXTRADRIVERDATA struct. This can be found in fmodps3.h. - - FMOD_OUTPUTTYPE_XAUDIO - (Xbox360) extradriverdata is a pointer to a FMOD_360_EXTRADRIVERDATA struct. This can be found in fmodxbox360.h. - - Currently these are the only FMOD drivers that take extra information. Other unknown plugins may have different requirements. - - Note! If FMOD_OUTPUTTYPE_WAVWRITER_NRT or FMOD_OUTPUTTYPE_NOSOUND_NRT are used, and if the System::update function is being called - very quickly (ie for a non realtime decode) it may be being called too quickly for the FMOD streamer thread to respond to. - The result will be a skipping/stuttering output in the captured audio. - - To remedy this, disable the FMOD streamer thread, and use FMOD_INIT_STREAM_FROM_UPDATE to avoid skipping in the output stream, - as it will lock the mixer and the streamer together in the same thread. - - [SEE_ALSO] - System::setOutput - System::getOutput - System::init - System::update -] -*/ -typedef enum -{ - FMOD_OUTPUTTYPE_AUTODETECT, /* Picks the best output mode for the platform. This is the default. */ - - FMOD_OUTPUTTYPE_UNKNOWN, /* All - 3rd party plugin, unknown. This is for use with System::getOutput only. */ - FMOD_OUTPUTTYPE_NOSOUND, /* All - Perform all mixing but discard the final output. */ - FMOD_OUTPUTTYPE_WAVWRITER, /* All - Writes output to a .wav file. */ - FMOD_OUTPUTTYPE_NOSOUND_NRT, /* All - Non-realtime version of FMOD_OUTPUTTYPE_NOSOUND. User can drive mixer with System::update at whatever rate they want. */ - FMOD_OUTPUTTYPE_WAVWRITER_NRT, /* All - Non-realtime version of FMOD_OUTPUTTYPE_WAVWRITER. User can drive mixer with System::update at whatever rate they want. */ - - FMOD_OUTPUTTYPE_DSOUND, /* Win - Direct Sound. (Default on Windows XP and below) */ - FMOD_OUTPUTTYPE_WINMM, /* Win - Windows Multimedia. */ - FMOD_OUTPUTTYPE_WASAPI, /* Win/WinStore/XboxOne - Windows Audio Session API. (Default on Windows Vista and above, Xbox One and Windows Store Applications) */ - FMOD_OUTPUTTYPE_ASIO, /* Win - Low latency ASIO 2.0. */ - FMOD_OUTPUTTYPE_PULSEAUDIO, /* Linux - Pulse Audio. (Default on Linux if available) */ - FMOD_OUTPUTTYPE_ALSA, /* Linux - Advanced Linux Sound Architecture. (Default on Linux if PulseAudio isn't available) */ - FMOD_OUTPUTTYPE_COREAUDIO, /* Mac/iOS - Core Audio. (Default on Mac and iOS) */ - FMOD_OUTPUTTYPE_XAUDIO, /* Xbox 360 - XAudio. (Default on Xbox 360) */ - FMOD_OUTPUTTYPE_PS3, /* PS3 - Audio Out. (Default on PS3) */ - FMOD_OUTPUTTYPE_AUDIOTRACK, /* Android - Java Audio Track. (Default on Android 2.2 and below) */ - FMOD_OUTPUTTYPE_OPENSL, /* Android - OpenSL ES. (Default on Android 2.3 and above) */ - FMOD_OUTPUTTYPE_WIIU, /* Wii U - AX. (Default on Wii U) */ - FMOD_OUTPUTTYPE_AUDIOOUT, /* PS4/PSVita - Audio Out. (Default on PS4 and PS Vita) */ - FMOD_OUTPUTTYPE_AUDIO3D, /* PS4 - Audio3D. */ - FMOD_OUTPUTTYPE_ATMOS, /* Win - Dolby Atmos (WASAPI). */ - - FMOD_OUTPUTTYPE_MAX, /* Maximum number of output types supported. */ - FMOD_OUTPUTTYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_OUTPUTTYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Specify the destination of log output when using the logging version of FMOD. - - [REMARKS] - TTY destination can vary depending on platform, common examples include the - Visual Studio / Xcode output window, stderr and LogCat. - - [SEE_ALSO] - FMOD_Debug_Initialize -] -*/ -typedef enum -{ - FMOD_DEBUG_MODE_TTY, /* Default log location per platform, i.e. Visual Studio output window, stderr, LogCat, etc */ - FMOD_DEBUG_MODE_FILE, /* Write log to specified file path */ - FMOD_DEBUG_MODE_CALLBACK, /* Call specified callback with log information */ - - FMOD_DEBUG_MODE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DEBUG_MODE; - - -/* -[DEFINE] -[ - [NAME] - FMOD_DEBUG_FLAGS - - [DESCRIPTION] - Specify the requested information to be output when using the logging version of FMOD. - - [REMARKS] - - [SEE_ALSO] - FMOD_Debug_Initialize -] -*/ -#define FMOD_DEBUG_LEVEL_NONE 0x00000000 /* Disable all messages */ -#define FMOD_DEBUG_LEVEL_ERROR 0x00000001 /* Enable only error messages. */ -#define FMOD_DEBUG_LEVEL_WARNING 0x00000002 /* Enable warning and error messages. */ -#define FMOD_DEBUG_LEVEL_LOG 0x00000004 /* Enable informational, warning and error messages (default). */ -#define FMOD_DEBUG_TYPE_MEMORY 0x00000100 /* Verbose logging for memory operations, only use this if you are debugging a memory related issue. */ -#define FMOD_DEBUG_TYPE_FILE 0x00000200 /* Verbose logging for file access, only use this if you are debugging a file related issue. */ -#define FMOD_DEBUG_TYPE_CODEC 0x00000400 /* Verbose logging for codec initialization, only use this if you are debugging a codec related issue. */ -#define FMOD_DEBUG_TYPE_TRACE 0x00000800 /* Verbose logging for internal errors, use this for tracking the origin of error codes. */ -#define FMOD_DEBUG_DISPLAY_TIMESTAMPS 0x00010000 /* Display the time stamp of the log message in milliseconds. */ -#define FMOD_DEBUG_DISPLAY_LINENUMBERS 0x00020000 /* Display the source code file and line number for where the message originated. */ -#define FMOD_DEBUG_DISPLAY_THREAD 0x00040000 /* Display the thread ID of the calling function that generated the message. */ -/* [DEFINE_END] */ - - -/* -[DEFINE] -[ - [NAME] - FMOD_MEMORY_TYPE - - [DESCRIPTION] - Bit fields for memory allocation type being passed into FMOD memory callbacks. - - [REMARKS] - Remember this is a bitfield. You may get more than 1 bit set (ie physical + persistent) so do not simply switch on the types! You must check each bit individually or clear out the bits that you do not want within the callback.
- Bits can be excluded if you want during Memory_Initialize so that you never get them. - - [SEE_ALSO] - FMOD_MEMORY_ALLOC_CALLBACK - FMOD_MEMORY_REALLOC_CALLBACK - FMOD_MEMORY_FREE_CALLBACK - Memory_Initialize -] -*/ -#define FMOD_MEMORY_NORMAL 0x00000000 /* Standard memory. */ -#define FMOD_MEMORY_STREAM_FILE 0x00000001 /* Stream file buffer, size controllable with System::setStreamBufferSize. */ -#define FMOD_MEMORY_STREAM_DECODE 0x00000002 /* Stream decode buffer, size controllable with FMOD_CREATESOUNDEXINFO::decodebuffersize. */ -#define FMOD_MEMORY_SAMPLEDATA 0x00000004 /* Sample data buffer. Raw audio data, usually PCM/MPEG/ADPCM/XMA data. */ -#define FMOD_MEMORY_DSP_BUFFER 0x00000008 /* DSP memory block allocated when more than 1 output exists on a DSP node. */ -#define FMOD_MEMORY_PLUGIN 0x00000010 /* Memory allocated by a third party plugin. */ -#define FMOD_MEMORY_XBOX360_PHYSICAL 0x00100000 /* Requires XPhysicalAlloc / XPhysicalFree. */ -#define FMOD_MEMORY_PERSISTENT 0x00200000 /* Persistent memory. Memory will be freed when System::release is called. */ -#define FMOD_MEMORY_SECONDARY 0x00400000 /* Secondary memory. Allocation should be in secondary memory. For example RSX on the PS3. */ -#define FMOD_MEMORY_ALL 0xFFFFFFFF -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - These are speaker types defined for use with the System::setSoftwareFormat command. - - [REMARKS] - Note below the phrase 'sound channels' is used. These are the subchannels inside a sound, they are not related and - have nothing to do with the FMOD class "Channel".
- For example a mono sound has 1 sound channel, a stereo sound has 2 sound channels, and an AC3 or 6 channel wav file have 6 "sound channels".
-
- FMOD_SPEAKERMODE_RAW
- ---------------------
- This mode is for output devices that are not specifically mono/stereo/quad/surround/5.1 or 7.1, but are multichannel.
- Use System::setSoftwareFormat to specify the number of speakers you want to address, otherwise it will default to 2 (stereo).
- Sound channels map to speakers sequentially, so a mono sound maps to output speaker 0, stereo sound maps to output speaker 0 & 1.
- The user assumes knowledge of the speaker order. FMOD_SPEAKER enumerations may not apply, so raw channel indices should be used.
- Multichannel sounds map input channels to output channels 1:1.
- Channel::setPan and Channel::setPanLevels do not work.
- Speaker levels must be manually set with Channel::setPanMatrix.
-
- FMOD_SPEAKERMODE_MONO
- ---------------------
- This mode is for a 1 speaker arrangement.
- Panning does not work in this speaker mode.
- Mono, stereo and multichannel sounds have each sound channel played on the one speaker unity.
- Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
- Channel::setPanLevels does not work.
-
- FMOD_SPEAKERMODE_STEREO
- -----------------------
- This mode is for 2 speaker arrangements that have a left and right speaker.
-
  • Mono sounds default to an even distribution between left and right. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the middle, or full left in the left speaker and full right in the right speaker. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds have each sound channel played on each speaker at unity.
    -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but only front left and right parameters are used, the rest are ignored.
    -
    - FMOD_SPEAKERMODE_QUAD
    - ------------------------
    - This mode is for 4 speaker arrangements that have a front left, front right, surround left and a surround right speaker.
    -
  • Mono sounds default to an even distribution between front left and front right. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right.
    -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input.
    -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but rear left, rear right, center and lfe are ignored.
    -
    - FMOD_SPEAKERMODE_SURROUND
    - ------------------------
    - This mode is for 5 speaker arrangements that have a left/right/center/surround left/surround right.
    -
  • Mono sounds default to the center speaker. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input. -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but rear left / rear right are ignored.
    -
    - FMOD_SPEAKERMODE_5POINT1
    - ---------------------------------------------------------
    - This mode is for 5.1 speaker arrangements that have a left/right/center/surround left/surround right and a subwoofer speaker.
    -
  • Mono sounds default to the center speaker. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input. -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works but rear left / rear right are ignored.
    -
    - FMOD_SPEAKERMODE_7POINT1
    - ------------------------
    - This mode is for 7.1 speaker arrangements that have a left/right/center/surround left/surround right/rear left/rear right - and a subwoofer speaker.
    -
  • Mono sounds default to the center speaker. They can be panned with Channel::setPan.
    -
  • Stereo sounds default to the left sound channel played on the front left, and the right sound channel played on the front right. -
  • They can be cross faded with Channel::setPan.
    -
  • Multichannel sounds default to all of their sound channels being played on each speaker in order of input. -
  • Mix behavior for multichannel sounds can be set with Channel::setPanMatrix.
    -
  • Channel::setPanLevels works and every parameter is used to set the balance of a sound in any speaker.
    -
    - - [SEE_ALSO] - System::setSoftwareFormat - System::getSoftwareFormat - DSP::setChannelFormat -] -*/ -typedef enum -{ - FMOD_SPEAKERMODE_DEFAULT, /* Default speaker mode based on operating system/output mode. Windows = control panel setting, Xbox = 5.1, PS3 = 7.1 etc. */ - FMOD_SPEAKERMODE_RAW, /* There is no specific speakermode. Sound channels are mapped in order of input to output. Use System::setSoftwareFormat to specify speaker count. See remarks for more information. */ - FMOD_SPEAKERMODE_MONO, /* The speakers are monaural. */ - FMOD_SPEAKERMODE_STEREO, /* The speakers are stereo. */ - FMOD_SPEAKERMODE_QUAD, /* 4 speaker setup. This includes front left, front right, surround left, surround right. */ - FMOD_SPEAKERMODE_SURROUND, /* 5 speaker setup. This includes front left, front right, center, surround left, surround right. */ - FMOD_SPEAKERMODE_5POINT1, /* 5.1 speaker setup. This includes front left, front right, center, surround left, surround right and an LFE speaker. */ - FMOD_SPEAKERMODE_7POINT1, /* 7.1 speaker setup. This includes front left, front right, center, surround left, surround right, back left, back right and an LFE speaker. */ - - FMOD_SPEAKERMODE_MAX, /* Maximum number of speaker modes supported. */ - FMOD_SPEAKERMODE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SPEAKERMODE; - - -/* -[DEFINE] -[ - [NAME] - FMOD_MAX_CHANNEL_WIDTH - - [DESCRIPTION] - The maximum number of channels per frame of audio supported by audio files, buffers, connections and DSPs.
    - - [REMARKS] - - [SEE_ALSO] - FMOD_CHANNELORDER - FMOD_CREATESOUNDEXINFO - System::setSoftwareFormat - System::getDefaultMixMatrix - ChannelControl::setMixMatrix - ChannelControl::getMixMatrix - FMOD::DSP::setChannelFormat -] -*/ -#define FMOD_MAX_CHANNEL_WIDTH 32 -/* [DEFINE_END] */ - -/* -[DEFINE] -[ - [NAME] - FMOD_MAX_LISTENERS - - [DESCRIPTION] - The maximum number of listeners supported. - - [REMARKS] - - [SEE_ALSO] - System::set3DNumListeners - System::set3DListenerAttributes - System::get3DListenerAttributes -] -*/ -#define FMOD_MAX_LISTENERS 8 -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - Assigns an enumeration for a speaker index. - - [REMARKS] - - [SEE_ALSO] - System::setSpeakerPosition - System::getSpeakerPosition -] -*/ -typedef enum -{ - FMOD_SPEAKER_FRONT_LEFT, - FMOD_SPEAKER_FRONT_RIGHT, - FMOD_SPEAKER_FRONT_CENTER, - FMOD_SPEAKER_LOW_FREQUENCY, - FMOD_SPEAKER_SURROUND_LEFT, - FMOD_SPEAKER_SURROUND_RIGHT, - FMOD_SPEAKER_BACK_LEFT, - FMOD_SPEAKER_BACK_RIGHT, - - FMOD_SPEAKER_MAX, /* Maximum number of speaker types supported. */ - FMOD_SPEAKER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SPEAKER; - - -/* -[DEFINE] -[ - [NAME] - FMOD_CHANNELMASK - - [DESCRIPTION] - These are bitfields to describe for a certain number of channels in a signal, which channels are being represented.
    - For example, a signal could be 1 channel, but contain the LFE channel only.
    - - [REMARKS] - FMOD_CHANNELMASK_BACK_CENTER is not represented as an output speaker in fmod - but it is encountered in input formats and is down or upmixed appropriately to the nearest speakers.
    - - [SEE_ALSO] - DSP::setChannelFormat - DSP::getChannelFormat - FMOD_SPEAKERMODE -] -*/ -#define FMOD_CHANNELMASK_FRONT_LEFT 0x00000001 -#define FMOD_CHANNELMASK_FRONT_RIGHT 0x00000002 -#define FMOD_CHANNELMASK_FRONT_CENTER 0x00000004 -#define FMOD_CHANNELMASK_LOW_FREQUENCY 0x00000008 -#define FMOD_CHANNELMASK_SURROUND_LEFT 0x00000010 -#define FMOD_CHANNELMASK_SURROUND_RIGHT 0x00000020 -#define FMOD_CHANNELMASK_BACK_LEFT 0x00000040 -#define FMOD_CHANNELMASK_BACK_RIGHT 0x00000080 -#define FMOD_CHANNELMASK_BACK_CENTER 0x00000100 - -#define FMOD_CHANNELMASK_MONO (FMOD_CHANNELMASK_FRONT_LEFT) -#define FMOD_CHANNELMASK_STEREO (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT) -#define FMOD_CHANNELMASK_LRC (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER) -#define FMOD_CHANNELMASK_QUAD (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT) -#define FMOD_CHANNELMASK_SURROUND (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT) -#define 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) -#define 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) -#define FMOD_CHANNELMASK_7POINT0 (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT) -#define FMOD_CHANNELMASK_7POINT1 (FMOD_CHANNELMASK_FRONT_LEFT | FMOD_CHANNELMASK_FRONT_RIGHT | FMOD_CHANNELMASK_FRONT_CENTER | FMOD_CHANNELMASK_LOW_FREQUENCY | FMOD_CHANNELMASK_SURROUND_LEFT | FMOD_CHANNELMASK_SURROUND_RIGHT | FMOD_CHANNELMASK_BACK_LEFT | FMOD_CHANNELMASK_BACK_RIGHT) -/* [DEFINE_END] */ - -/* -[ENUM] -[ - [DESCRIPTION] - When creating a multichannel sound, FMOD will pan them to their default speaker locations, for example a 6 channel sound will default to one channel per 5.1 output speaker.
    - Another example is a stereo sound. It will default to left = front left, right = front right.
    -
    - This is for sounds that are not 'default'. For example you might have a sound that is 6 channels but actually made up of 3 stereo pairs, that should all be located in front left, front right only. - - [REMARKS] - - [SEE_ALSO] - FMOD_CREATESOUNDEXINFO - FMOD_MAX_CHANNEL_WIDTH -] -*/ -typedef enum FMOD_CHANNELORDER -{ - FMOD_CHANNELORDER_DEFAULT, /* Left, Right, Center, LFE, Surround Left, Surround Right, Back Left, Back Right (see FMOD_SPEAKER enumeration) */ - FMOD_CHANNELORDER_WAVEFORMAT, /* Left, Right, Center, LFE, Back Left, Back Right, Surround Left, Surround Right (as per Microsoft .wav WAVEFORMAT structure master order) */ - FMOD_CHANNELORDER_PROTOOLS, /* Left, Center, Right, Surround Left, Surround Right, LFE */ - FMOD_CHANNELORDER_ALLMONO, /* Mono, Mono, Mono, Mono, Mono, Mono, ... (each channel all the way up to FMOD_MAX_CHANNEL_WIDTH channels are treated as if they were mono) */ - FMOD_CHANNELORDER_ALLSTEREO, /* Left, Right, Left, Right, Left, Right, ... (each pair of channels is treated as stereo all the way up to FMOD_MAX_CHANNEL_WIDTH channels) */ - FMOD_CHANNELORDER_ALSA, /* Left, Right, Surround Left, Surround Right, Center, LFE (as per Linux ALSA channel order) */ - - FMOD_CHANNELORDER_MAX, /* Maximum number of channel orderings supported. */ - FMOD_CHANNELORDER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELORDER; - - -/* -[ENUM] -[ - [DESCRIPTION] - These are plugin types defined for use with the System::getNumPlugins, - System::getPluginInfo and System::unloadPlugin functions. - - [REMARKS] - - [SEE_ALSO] - System::getNumPlugins - System::getPluginInfo - System::unloadPlugin -] -*/ -typedef enum -{ - FMOD_PLUGINTYPE_OUTPUT, /* The plugin type is an output module. FMOD mixed audio will play through one of these devices */ - FMOD_PLUGINTYPE_CODEC, /* The plugin type is a file format codec. FMOD will use these codecs to load file formats for playback. */ - FMOD_PLUGINTYPE_DSP, /* The plugin type is a DSP unit. FMOD will use these plugins as part of its DSP network to apply effects to output or generate sound in realtime. */ - - FMOD_PLUGINTYPE_MAX, /* Maximum number of plugin types supported. */ - FMOD_PLUGINTYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_PLUGINTYPE; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Used to support lists of plugins within the one file. - - [REMARKS] - The description field is either a pointer to FMOD_DSP_DESCRIPTION, FMOD_OUTPUT_DESCRIPTION, FMOD_CODEC_DESCRIPTION. - - This structure is returned from a plugin as a pointer to a list where the last entry has FMOD_PLUGINTYPE_MAX and - a null description pointer. - - [SEE_ALSO] - System::getNumNestedPlugins - System::getNestedPlugin -] -*/ -typedef struct FMOD_PLUGINLIST -{ - FMOD_PLUGINTYPE type; /* The plugin type */ - void* description; /* One of FMOD_DSP_DESCRIPTION, FMOD_OUTPUT_DESCRIPTION, FMOD_CODEC_DESCRIPTION */ -} FMOD_PLUGINLIST; - - -/* -[DEFINE] -[ - [NAME] - FMOD_INITFLAGS - - [DESCRIPTION] - Initialization flags. Use them with System::init in the *flags* parameter to change various behavior. - - [REMARKS] - Use System::setAdvancedSettings to adjust settings for some of the features that are enabled by these flags. - - [SEE_ALSO] - System::init - System::update - System::setAdvancedSettings - Channel::set3DOcclusion -] -*/ -#define FMOD_INIT_NORMAL 0x00000000 /* Initialize normally */ -#define FMOD_INIT_STREAM_FROM_UPDATE 0x00000001 /* No stream thread is created internally. Streams are driven from System::update. Mainly used with non-realtime outputs. */ -#define FMOD_INIT_MIX_FROM_UPDATE 0x00000002 /* Win/PS3/Xbox 360 Only - FMOD Mixer thread is woken up to do a mix when System::update is called rather than waking periodically on its own timer. */ -#define FMOD_INIT_3D_RIGHTHANDED 0x00000004 /* FMOD will treat +X as right, +Y as up and +Z as backwards (towards you). */ -#define FMOD_INIT_CHANNEL_LOWPASS 0x00000100 /* All FMOD_3D based voices will add a software lowpass filter effect into the DSP chain which is automatically used when Channel::set3DOcclusion is used or the geometry API. This also causes sounds to sound duller when the sound goes behind the listener, as a fake HRTF style effect. Use System::setAdvancedSettings to disable or adjust cutoff frequency for this feature. */ -#define FMOD_INIT_CHANNEL_DISTANCEFILTER 0x00000200 /* All FMOD_3D based voices will add a software lowpass and highpass filter effect into the DSP chain which will act as a distance-automated bandpass filter. Use System::setAdvancedSettings to adjust the center frequency. */ -#define FMOD_INIT_PROFILE_ENABLE 0x00010000 /* Enable TCP/IP based host which allows FMOD Designer or FMOD Profiler to connect to it, and view memory, CPU and the DSP network graph in real-time. */ -#define FMOD_INIT_VOL0_BECOMES_VIRTUAL 0x00020000 /* Any sounds that are 0 volume will go virtual and not be processed except for having their positions updated virtually. Use System::setAdvancedSettings to adjust what volume besides zero to switch to virtual at. */ -#define FMOD_INIT_GEOMETRY_USECLOSEST 0x00040000 /* With the geometry engine, only process the closest polygon rather than accumulating all polygons the sound to listener line intersects. */ -#define FMOD_INIT_PREFER_DOLBY_DOWNMIX 0x00080000 /* When using FMOD_SPEAKERMODE_5POINT1 with a stereo output device, use the Dolby Pro Logic II downmix algorithm instead of the SRS Circle Surround algorithm. */ -#define FMOD_INIT_THREAD_UNSAFE 0x00100000 /* Disables thread safety for API calls. Only use this if FMOD low level is being called from a single thread, and if Studio API is not being used! */ -#define FMOD_INIT_PROFILE_METER_ALL 0x00200000 /* Slower, but adds level metering for every single DSP unit in the graph. Use DSP::setMeteringEnabled to turn meters off individually. */ -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - These definitions describe the type of song being played. - - [REMARKS] - - [SEE_ALSO] - Sound::getFormat -] -*/ -typedef enum -{ - FMOD_SOUND_TYPE_UNKNOWN, /* 3rd party / unknown plugin format. */ - FMOD_SOUND_TYPE_AIFF, /* AIFF. */ - FMOD_SOUND_TYPE_ASF, /* Microsoft Advanced Systems Format (ie WMA/ASF/WMV). */ - FMOD_SOUND_TYPE_DLS, /* Sound font / downloadable sound bank. */ - FMOD_SOUND_TYPE_FLAC, /* FLAC lossless codec. */ - FMOD_SOUND_TYPE_FSB, /* FMOD Sample Bank. */ - FMOD_SOUND_TYPE_IT, /* Impulse Tracker. */ - FMOD_SOUND_TYPE_MIDI, /* MIDI. */ - FMOD_SOUND_TYPE_MOD, /* Protracker / Fasttracker MOD. */ - FMOD_SOUND_TYPE_MPEG, /* MP2/MP3 MPEG. */ - FMOD_SOUND_TYPE_OGGVORBIS, /* Ogg vorbis. */ - FMOD_SOUND_TYPE_PLAYLIST, /* Information only from ASX/PLS/M3U/WAX playlists */ - FMOD_SOUND_TYPE_RAW, /* Raw PCM data. */ - FMOD_SOUND_TYPE_S3M, /* ScreamTracker 3. */ - FMOD_SOUND_TYPE_USER, /* User created sound. */ - FMOD_SOUND_TYPE_WAV, /* Microsoft WAV. */ - FMOD_SOUND_TYPE_XM, /* FastTracker 2 XM. */ - FMOD_SOUND_TYPE_XMA, /* Xbox360 XMA */ - FMOD_SOUND_TYPE_AUDIOQUEUE, /* iPhone hardware decoder, supports AAC, ALAC and MP3. */ - FMOD_SOUND_TYPE_AT9, /* PS4 / PSVita ATRAC 9 format */ - FMOD_SOUND_TYPE_VORBIS, /* Vorbis */ - FMOD_SOUND_TYPE_MEDIA_FOUNDATION,/* Windows Store Application built in system codecs */ - FMOD_SOUND_TYPE_MEDIACODEC, /* Android MediaCodec */ - FMOD_SOUND_TYPE_FADPCM, /* FMOD Adaptive Differential Pulse Code Modulation */ - - FMOD_SOUND_TYPE_MAX, /* Maximum number of sound types supported. */ - FMOD_SOUND_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SOUND_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - These definitions describe the native format of the hardware or software buffer that will be used. - - [REMARKS] - This is the format the native hardware or software buffer will be or is created in. - - [SEE_ALSO] - System::createSound - Sound::getFormat -] -*/ -typedef enum -{ - FMOD_SOUND_FORMAT_NONE, /* Unitialized / unknown. */ - FMOD_SOUND_FORMAT_PCM8, /* 8bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCM16, /* 16bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCM24, /* 24bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCM32, /* 32bit integer PCM data. */ - FMOD_SOUND_FORMAT_PCMFLOAT, /* 32bit floating point PCM data. */ - FMOD_SOUND_FORMAT_BITSTREAM, /* Sound data is in its native compressed format. */ - - FMOD_SOUND_FORMAT_MAX, /* Maximum number of sound formats supported. */ - FMOD_SOUND_FORMAT_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SOUND_FORMAT; - - -/* -[DEFINE] -[ - [NAME] - FMOD_MODE - - [DESCRIPTION] - Sound description bitfields, bitwise OR them together for loading and describing sounds. - - [REMARKS] - By default a sound will open as a static sound that is decompressed fully into memory to PCM. (ie equivalent of FMOD_CREATESAMPLE)
    - To have a sound stream instead, use FMOD_CREATESTREAM, or use the wrapper function System::createStream.
    - Some opening modes (ie FMOD_OPENUSER, FMOD_OPENMEMORY, FMOD_OPENMEMORY_POINT, FMOD_OPENRAW) will need extra information.
    - This can be provided using the FMOD_CREATESOUNDEXINFO structure. -
    - Specifying FMOD_OPENMEMORY_POINT will POINT to your memory rather allocating its own sound buffers and duplicating it internally.
    - This means you cannot free the memory while FMOD is using it, until after Sound::release is called. - With FMOD_OPENMEMORY_POINT, for PCM formats, only WAV, FSB, and RAW are supported. For compressed formats, only those formats supported by FMOD_CREATECOMPRESSEDSAMPLE are supported.
    - With FMOD_OPENMEMORY_POINT and FMOD_OPENRAW or PCM, if using them together, note that you must pad the data on each side by 16 bytes. This is so fmod can modify the ends of the data for looping/interpolation/mixing purposes. If a wav file, you will need to insert silence, and then reset loop points to stop the playback from playing that silence.
    -
    - Xbox 360 memory On Xbox 360 Specifying FMOD_OPENMEMORY_POINT to a virtual memory address will cause FMOD_ERR_INVALID_ADDRESS - to be returned. Use physical memory only for this functionality.
    -
    - FMOD_LOWMEM is used on a sound if you want to minimize the memory overhead, by having FMOD not allocate memory for certain - features that are not likely to be used in a game environment. These are :
    - 1. Sound::getName functionality is removed. 256 bytes per sound is saved.
    - - [SEE_ALSO] - System::createSound - System::createStream - Sound::setMode - Sound::getMode - Channel::setMode - Channel::getMode - Sound::set3DCustomRolloff - Channel::set3DCustomRolloff - Sound::getOpenState -] -*/ -#define FMOD_DEFAULT 0x00000000 /* Default for all modes listed below. FMOD_LOOP_OFF, FMOD_2D, FMOD_3D_WORLDRELATIVE, FMOD_3D_INVERSEROLLOFF */ -#define FMOD_LOOP_OFF 0x00000001 /* For non looping sounds. (DEFAULT). Overrides FMOD_LOOP_NORMAL / FMOD_LOOP_BIDI. */ -#define FMOD_LOOP_NORMAL 0x00000002 /* For forward looping sounds. */ -#define FMOD_LOOP_BIDI 0x00000004 /* For bidirectional looping sounds. (only works on software mixed static sounds). */ -#define FMOD_2D 0x00000008 /* Ignores any 3d processing. (DEFAULT). */ -#define FMOD_3D 0x00000010 /* Makes the sound positionable in 3D. Overrides FMOD_2D. */ -#define FMOD_CREATESTREAM 0x00000080 /* Decompress at runtime, streaming from the source provided (ie from disk). Overrides FMOD_CREATESAMPLE and FMOD_CREATECOMPRESSEDSAMPLE. Note a stream can only be played once at a time due to a stream only having 1 stream buffer and file handle. Open multiple streams to have them play concurrently. */ -#define FMOD_CREATESAMPLE 0x00000100 /* Decompress at loadtime, decompressing or decoding whole file into memory as the target sample format (ie PCM). Fastest for playback and most flexible. */ -#define FMOD_CREATECOMPRESSEDSAMPLE 0x00000200 /* Load MP2/MP3/IMAADPCM/Vorbis/AT9 or XMA into memory and leave it compressed. Vorbis/AT9 encoding only supported in the FSB file format. During playback the FMOD software mixer will decode it in realtime as a 'compressed sample'. Overrides FMOD_CREATESAMPLE. If the sound data is not one of the supported formats, it will behave as if it was created with FMOD_CREATESAMPLE and decode the sound into PCM. */ -#define FMOD_OPENUSER 0x00000400 /* Opens a user created static sample or stream. Use FMOD_CREATESOUNDEXINFO to specify format and/or read callbacks. If a user created 'sample' is created with no read callback, the sample will be empty. Use Sound::lock and Sound::unlock to place sound data into the sound if this is the case. */ -#define FMOD_OPENMEMORY 0x00000800 /* "name_or_data" will be interpreted as a pointer to memory instead of filename for creating sounds. Use FMOD_CREATESOUNDEXINFO to specify length. If used with FMOD_CREATESAMPLE or FMOD_CREATECOMPRESSEDSAMPLE, FMOD duplicates the memory into its own buffers. Your own buffer can be freed after open. If used with FMOD_CREATESTREAM, FMOD will stream out of the buffer whose pointer you passed in. In this case, your own buffer should not be freed until you have finished with and released the stream.*/ -#define FMOD_OPENMEMORY_POINT 0x10000000 /* "name_or_data" will be interpreted as a pointer to memory instead of filename for creating sounds. Use FMOD_CREATESOUNDEXINFO to specify length. This differs to FMOD_OPENMEMORY in that it uses the memory as is, without duplicating the memory into its own buffers. Cannot be freed after open, only after Sound::release. Will not work if the data is compressed and FMOD_CREATECOMPRESSEDSAMPLE is not used. */ -#define FMOD_OPENRAW 0x00001000 /* Will ignore file format and treat as raw pcm. Use FMOD_CREATESOUNDEXINFO to specify format. Requires at least defaultfrequency, numchannels and format to be specified before it will open. Must be little endian data. */ -#define FMOD_OPENONLY 0x00002000 /* Just open the file, dont prebuffer or read. Good for fast opens for info, or when sound::readData is to be used. */ -#define FMOD_ACCURATETIME 0x00004000 /* For System::createSound - for accurate Sound::getLength/Channel::setPosition on VBR MP3, and MOD/S3M/XM/IT/MIDI files. Scans file first, so takes longer to open. FMOD_OPENONLY does not affect this. */ -#define FMOD_MPEGSEARCH 0x00008000 /* For corrupted / bad MP3 files. This will search all the way through the file until it hits a valid MPEG header. Normally only searches for 4k. */ -#define FMOD_NONBLOCKING 0x00010000 /* For opening sounds and getting streamed subsounds (seeking) asyncronously. Use Sound::getOpenState to poll the state of the sound as it opens or retrieves the subsound in the background. */ -#define FMOD_UNIQUE 0x00020000 /* Unique sound, can only be played one at a time */ -#define FMOD_3D_HEADRELATIVE 0x00040000 /* Make the sound's position, velocity and orientation relative to the listener. */ -#define FMOD_3D_WORLDRELATIVE 0x00080000 /* Make the sound's position, velocity and orientation absolute (relative to the world). (DEFAULT) */ -#define FMOD_3D_INVERSEROLLOFF 0x00100000 /* This sound will follow the inverse rolloff model where mindistance = full volume, maxdistance = where sound stops attenuating, and rolloff is fixed according to the global rolloff factor. (DEFAULT) */ -#define FMOD_3D_LINEARROLLOFF 0x00200000 /* This sound will follow a linear rolloff model where mindistance = full volume, maxdistance = silence. */ -#define FMOD_3D_LINEARSQUAREROLLOFF 0x00400000 /* This sound will follow a linear-square rolloff model where mindistance = full volume, maxdistance = silence. */ -#define FMOD_3D_INVERSETAPEREDROLLOFF 0x00800000 /* This sound will follow the inverse rolloff model at distances close to mindistance and a linear-square rolloff close to maxdistance. */ -#define FMOD_3D_CUSTOMROLLOFF 0x04000000 /* This sound will follow a rolloff model defined by Sound::set3DCustomRolloff / Channel::set3DCustomRolloff. */ -#define FMOD_3D_IGNOREGEOMETRY 0x40000000 /* Is not affect by geometry occlusion. If not specified in Sound::setMode, or Channel::setMode, the flag is cleared and it is affected by geometry again. */ -/* Unused 0x01000000 Used to be FMOD_UNICODE */ -#define FMOD_IGNORETAGS 0x02000000 /* Skips id3v2/asf/etc tag checks when opening a sound, to reduce seek/read overhead when opening files (helps with CD performance). */ -#define FMOD_LOWMEM 0x08000000 /* Removes some features from samples to give a lower memory overhead, like Sound::getName. See remarks. */ -#define FMOD_LOADSECONDARYRAM 0x20000000 /* Load sound into the secondary RAM of supported platform. On PS3, sounds will be loaded into RSX/VRAM. */ -#define FMOD_VIRTUAL_PLAYFROMSTART 0x80000000 /* For sounds that start virtual (due to being quiet or low importance), instead of swapping back to audible, and playing at the correct offset according to time, this flag makes the sound play from the start. */ -/* [DEFINE_END] */ - - -/* -[ENUM] -[ - [DESCRIPTION] - These values describe what state a sound is in after FMOD_NONBLOCKING has been used to open it. - - [REMARKS] - With streams, if you are using FMOD_NONBLOCKING, note that if the user calls Sound::getSubSound, a stream will go into FMOD_OPENSTATE_SEEKING state and sound related commands will return FMOD_ERR_NOTREADY.
    - With streams, if you are using FMOD_NONBLOCKING, note that if the user calls Channel::getPosition, a stream will go into FMOD_OPENSTATE_SETPOSITION state and sound related commands will return FMOD_ERR_NOTREADY.
    - - [SEE_ALSO] - Sound::getOpenState - FMOD_MODE -] -*/ -typedef enum -{ - FMOD_OPENSTATE_READY = 0, /* Opened and ready to play. */ - FMOD_OPENSTATE_LOADING, /* Initial load in progress. */ - FMOD_OPENSTATE_ERROR, /* Failed to open - file not found, out of memory etc. See return value of Sound::getOpenState for what happened. */ - FMOD_OPENSTATE_CONNECTING, /* Connecting to remote host (internet sounds only). */ - FMOD_OPENSTATE_BUFFERING, /* Buffering data. */ - FMOD_OPENSTATE_SEEKING, /* Seeking to subsound and re-flushing stream buffer. */ - FMOD_OPENSTATE_PLAYING, /* Ready and playing, but not possible to release at this time without stalling the main thread. */ - FMOD_OPENSTATE_SETPOSITION, /* Seeking within a stream to a different position. */ - - FMOD_OPENSTATE_MAX, /* Maximum number of open state types. */ - FMOD_OPENSTATE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_OPENSTATE; - - -/* -[ENUM] -[ - [DESCRIPTION] - These values are used with SoundGroup::setMaxAudibleBehavior to determine what happens when more sounds - are played than are specified with SoundGroup::setMaxAudible. - - [REMARKS] - When using FMOD_SOUNDGROUP_BEHAVIOR_MUTE, SoundGroup::setMuteFadeSpeed can be used to stop a sudden transition. - Instead, the time specified will be used to cross fade between the sounds that go silent and the ones that become audible. - - [SEE_ALSO] - SoundGroup::setMaxAudibleBehavior - SoundGroup::getMaxAudibleBehavior - SoundGroup::setMaxAudible - SoundGroup::getMaxAudible - SoundGroup::setMuteFadeSpeed - SoundGroup::getMuteFadeSpeed -] -*/ -typedef enum -{ - FMOD_SOUNDGROUP_BEHAVIOR_FAIL, /* Any sound played that puts the sound count over the SoundGroup::setMaxAudible setting, will simply fail during System::playSound. */ - FMOD_SOUNDGROUP_BEHAVIOR_MUTE, /* Any sound played that puts the sound count over the SoundGroup::setMaxAudible setting, will be silent, then if another sound in the group stops the sound that was silent before becomes audible again. */ - FMOD_SOUNDGROUP_BEHAVIOR_STEALLOWEST, /* Any sound played that puts the sound count over the SoundGroup::setMaxAudible setting, will steal the quietest / least important sound playing in the group. */ - - FMOD_SOUNDGROUP_BEHAVIOR_MAX, /* Maximum number of sound group behaviors. */ - FMOD_SOUNDGROUP_BEHAVIOR_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_SOUNDGROUP_BEHAVIOR; - - -/* -[ENUM] -[ - [DESCRIPTION] - These callback types are used with Channel::setCallback. - - [REMARKS] - Each callback has commanddata parameters passed as int unique to the type of callback.
    - See reference to FMOD_CHANNELCONTROL_CALLBACK to determine what they might mean for each type of callback.
    -
    - Note! Currently the user must call System::update for these callbacks to trigger! - - [SEE_ALSO] - Channel::setCallback - ChannelGroup::setCallback - FMOD_CHANNELCONTROL_CALLBACK - System::update -] -*/ -typedef enum -{ - FMOD_CHANNELCONTROL_CALLBACK_END, /* Called when a sound ends. */ - FMOD_CHANNELCONTROL_CALLBACK_VIRTUALVOICE, /* Called when a voice is swapped out or swapped in. */ - FMOD_CHANNELCONTROL_CALLBACK_SYNCPOINT, /* Called when a syncpoint is encountered. Can be from wav file markers. */ - FMOD_CHANNELCONTROL_CALLBACK_OCCLUSION, /* Called when the channel has its geometry occlusion value calculated. Can be used to clamp or change the value. */ - - FMOD_CHANNELCONTROL_CALLBACK_MAX, /* Maximum number of callback types supported. */ - FMOD_CHANNELCONTROL_CALLBACK_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELCONTROL_CALLBACK_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - These enums denote special types of node within a DSP chain. - - [REMARKS] - - [SEE_ALSO] - Channel::getDSP - ChannelGroup::getDSP - ChannelControl::getNumDSPs -] -*/ -typedef enum -{ - FMOD_CHANNELCONTROL_DSP_HEAD = -1, /* Head of the DSP chain. Equivalent of index 0. */ - FMOD_CHANNELCONTROL_DSP_FADER = -2, /* Built in fader DSP. */ - FMOD_CHANNELCONTROL_DSP_PANNER = -3, /* Built in panner DSP. */ - FMOD_CHANNELCONTROL_DSP_TAIL = -4, /* Tail of the DSP chain. Equivalent of the number of dsps minus 1. */ - - FMOD_CHANNELCONTROL_DSP_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_CHANNELCONTROL_DSP_INDEX; - -/* -[ENUM] -[ - [DESCRIPTION] - Used to distinguish the instance type passed into FMOD_ERROR_CALLBACK. - - [REMARKS] - Cast the instance of FMOD_ERROR_CALLBACK to the appropriate class indicated by this enum. - - [SEE_ALSO] -] -*/ -typedef enum -{ - FMOD_ERRORCALLBACK_INSTANCETYPE_NONE, - FMOD_ERRORCALLBACK_INSTANCETYPE_SYSTEM, - FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNEL, - FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELGROUP, - FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELCONTROL, - FMOD_ERRORCALLBACK_INSTANCETYPE_SOUND, - FMOD_ERRORCALLBACK_INSTANCETYPE_SOUNDGROUP, - FMOD_ERRORCALLBACK_INSTANCETYPE_DSP, - FMOD_ERRORCALLBACK_INSTANCETYPE_DSPCONNECTION, - FMOD_ERRORCALLBACK_INSTANCETYPE_GEOMETRY, - FMOD_ERRORCALLBACK_INSTANCETYPE_REVERB3D, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_SYSTEM, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_EVENTDESCRIPTION, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_EVENTINSTANCE, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_PARAMETERINSTANCE, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_BUS, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_VCA, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_BANK, - FMOD_ERRORCALLBACK_INSTANCETYPE_STUDIO_COMMANDREPLAY, - - FMOD_ERRORCALLBACK_INSTANCETYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_ERRORCALLBACK_INSTANCETYPE; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure that is passed into FMOD_SYSTEM_CALLBACK for the FMOD_SYSTEM_CALLBACK_ERROR callback type. - - [REMARKS] - The instance pointer will be a type corresponding to the instanceType enum. - - [SEE_ALSO] - FMOD_ERRORCALLBACK_INSTANCETYPE -] -*/ -typedef struct -{ - FMOD_RESULT result; /* Error code result */ - FMOD_ERRORCALLBACK_INSTANCETYPE instancetype; /* Type of instance the error occurred on */ - void *instance; /* Instance pointer */ - const char *functionname; /* Function that the error occurred on */ - const char *functionparams; /* Function parameters that the error ocurred on */ -} FMOD_ERRORCALLBACK_INFO; - -/* -[DEFINE] -[ - [NAME] - FMOD_SYSTEM_CALLBACK_TYPE - - [DESCRIPTION] - These callback types are used with System::setCallback. - - [REMARKS] - Each callback has commanddata parameters passed as void* unique to the type of callback.
    - See reference to FMOD_SYSTEM_CALLBACK to determine what they might mean for each type of callback.
    -
    - Note! Using FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED (Windows only) will disable any automated device ejection/insertion handling by FMOD. Use this callback to control the behaviour yourself.
    -
    - Note! Using FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED (on Mac only) requires the application to be running an event loop which will allow external changes to device list to be detected by FMOD.
    -
    - Note! The 'system' object pointer will be null for FMOD_SYSTEM_CALLBACK_MEMORYALLOCATIONFAILED callback. - - [SEE_ALSO] - System::setCallback - System::update - DSP::addInput -] -*/ -#define FMOD_SYSTEM_CALLBACK_DEVICELISTCHANGED 0x00000001 /* Called from System::update when the enumerated list of devices has changed. */ -#define FMOD_SYSTEM_CALLBACK_DEVICELOST 0x00000002 /* Called from System::update when an output device has been lost due to control panel parameter changes and FMOD cannot automatically recover. */ -#define FMOD_SYSTEM_CALLBACK_MEMORYALLOCATIONFAILED 0x00000004 /* Called directly when a memory allocation fails somewhere in FMOD. (NOTE - 'system' will be NULL in this callback type.)*/ -#define FMOD_SYSTEM_CALLBACK_THREADCREATED 0x00000008 /* Called directly when a thread is created. */ -#define FMOD_SYSTEM_CALLBACK_BADDSPCONNECTION 0x00000010 /* Called when a bad connection was made with DSP::addInput. Usually called from mixer thread because that is where the connections are made. */ -#define FMOD_SYSTEM_CALLBACK_PREMIX 0x00000020 /* Called each tick before a mix update happens. */ -#define FMOD_SYSTEM_CALLBACK_POSTMIX 0x00000040 /* Called each tick after a mix update happens. */ -#define FMOD_SYSTEM_CALLBACK_ERROR 0x00000080 /* Called when each API function returns an error code, including delayed async functions. */ -#define FMOD_SYSTEM_CALLBACK_MIDMIX 0x00000100 /* Called each tick in mix update after clocks have been updated before the main mix occurs. */ -#define FMOD_SYSTEM_CALLBACK_THREADDESTROYED 0x00000200 /* Called directly when a thread is destroyed. */ -#define FMOD_SYSTEM_CALLBACK_PREUPDATE 0x00000400 /* Called at start of System::update function. */ -#define FMOD_SYSTEM_CALLBACK_POSTUPDATE 0x00000800 /* Called at end of System::update function. */ -#define FMOD_SYSTEM_CALLBACK_RECORDLISTCHANGED 0x00001000 /* Called from System::update when the enumerated list of recording devices has changed. */ -#define FMOD_SYSTEM_CALLBACK_ALL 0xFFFFFFFF /* Pass this mask to System::setCallback to receive all callback types. */ - -/* [DEFINE_END] */ - - -/* - FMOD Callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_DEBUG_CALLBACK) (FMOD_DEBUG_FLAGS flags, const char *file, int line, const char *func, const char *message); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_SYSTEM_CALLBACK) (FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK_TYPE type, void *commanddata1, void *commanddata2, void *userdata); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_CHANNELCONTROL_CALLBACK) (FMOD_CHANNELCONTROL *channelcontrol, FMOD_CHANNELCONTROL_TYPE controltype, FMOD_CHANNELCONTROL_CALLBACK_TYPE callbacktype, void *commanddata1, void *commanddata2); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_SOUND_NONBLOCK_CALLBACK) (FMOD_SOUND *sound, FMOD_RESULT result); -typedef FMOD_RESULT (F_CALLBACK *FMOD_SOUND_PCMREAD_CALLBACK) (FMOD_SOUND *sound, void *data, unsigned int datalen); -typedef FMOD_RESULT (F_CALLBACK *FMOD_SOUND_PCMSETPOS_CALLBACK) (FMOD_SOUND *sound, int subsound, unsigned int position, FMOD_TIMEUNIT postype); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_OPEN_CALLBACK) (const char *name, unsigned int *filesize, void **handle, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_CLOSE_CALLBACK) (void *handle, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_READ_CALLBACK) (void *handle, void *buffer, unsigned int sizebytes, unsigned int *bytesread, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_SEEK_CALLBACK) (void *handle, unsigned int pos, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_ASYNCREAD_CALLBACK) (FMOD_ASYNCREADINFO *info, void *userdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_FILE_ASYNCCANCEL_CALLBACK)(FMOD_ASYNCREADINFO *info, void *userdata); - -typedef void * (F_CALLBACK *FMOD_MEMORY_ALLOC_CALLBACK) (unsigned int size, FMOD_MEMORY_TYPE type, const char *sourcestr); -typedef void * (F_CALLBACK *FMOD_MEMORY_REALLOC_CALLBACK) (void *ptr, unsigned int size, FMOD_MEMORY_TYPE type, const char *sourcestr); -typedef void (F_CALLBACK *FMOD_MEMORY_FREE_CALLBACK) (void *ptr, FMOD_MEMORY_TYPE type, const char *sourcestr); - -typedef float (F_CALLBACK *FMOD_3D_ROLLOFF_CALLBACK) (FMOD_CHANNELCONTROL *channelcontrol, float distance); - - - - -/* -[ENUM] -[ - [DESCRIPTION] - List of interpolation types that the FMOD Studio software mixer supports. - - [REMARKS] - The default resampler type is FMOD_DSP_RESAMPLER_LINEAR.
    - Use System::setAdvancedSettings and the resamplerMethod member to tell FMOD the resampling quality you require for sample rate conversion during sound playback. - - [SEE_ALSO] - System::setAdvancedSettings - System::setAdvancedSettings - FMOD_ADVANCEDSETINGS -] -*/ -typedef enum -{ - FMOD_DSP_RESAMPLER_DEFAULT, /* Default interpolation method. Currently equal to FMOD_DSP_RESAMPLER_LINEAR. */ - FMOD_DSP_RESAMPLER_NOINTERP, /* No interpolation. High frequency aliasing hiss will be audible depending on the sample rate of the sound. */ - FMOD_DSP_RESAMPLER_LINEAR, /* Linear interpolation (default method). Fast and good quality, causes very slight lowpass effect on low frequency sounds. */ - FMOD_DSP_RESAMPLER_CUBIC, /* Cubic interpolation. Slower than linear interpolation but better quality. */ - FMOD_DSP_RESAMPLER_SPLINE, /* 5 point spline interpolation. Slowest resampling method but best quality. */ - - FMOD_DSP_RESAMPLER_MAX, /* Maximum number of resample methods supported. */ - FMOD_DSP_RESAMPLER_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_RESAMPLER; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of connection types between 2 DSP nodes. - - [REMARKS] - FMOD_DSP_CONNECTION_TYPE_STANDARD
    - ----------------------------------
    - Default DSPConnection type. Audio is mixed from the input to the output DSP's audible buffer, meaning it will be part of the audible signal. A standard connection will execute its input DSP if it has not been executed before.
    -
    - FMOD_DSP_CONNECTION_TYPE_SIDECHAIN
    - ----------------------------------
    - Sidechain DSPConnection type. Audio is mixed from the input to the output DSP's sidechain buffer, meaning it will NOT be part of the audible signal. A sidechain connection will execute its input DSP if it has not been executed before.
    - The purpose of the seperate sidechain buffer in a DSP, is so that the DSP effect can privately access for analysis purposes. An example of use in this case, could be a compressor which analyzes the signal, to control its own effect parameters (ie a compression level or gain).
    -
    - For the effect developer, to accept sidechain data, the sidechain data will appear in the FMOD_DSP_STATE struct which is passed into the read callback of a DSP unit.
    - FMOD_DSP_STATE::sidechaindata and FMOD_DSP::sidechainchannels will hold the mixed result of any sidechain data flowing into it.
    -
    - FMOD_DSP_CONNECTION_TYPE_SEND
    - -----------------------------
    - Send DSPConnection type. Audio is mixed from the input to the output DSP's audible buffer, meaning it will be part of the audible signal. A send connection will NOT execute its input DSP if it has not been executed before.
    - A send connection will only read what exists at the input's buffer at the time of executing the output DSP unit (which can be considered the 'return')
    -
    - FMOD_DSP_CONNECTION_TYPE_SEND_SIDECHAIN
    - ---------------------------------------
    - Send sidechain DSPConnection type. Audio is mixed from the input to the output DSP's sidechain buffer, meaning it will NOT be part of the audible signal. A send sidechain connection will NOT execute its input DSP if it has not been executed before.
    - A send sidechain connection will only read what exists at the input's buffer at the time of executing the output DSP unit (which can be considered the 'sidechain return'). -
    - For the effect developer, to accept sidechain data, the sidechain data will appear in the FMOD_DSP_STATE struct which is passed into the read callback of a DSP unit.
    - FMOD_DSP_STATE::sidechaindata and FMOD_DSP::sidechainchannels will hold the mixed result of any sidechain data flowing into it. - - [SEE_ALSO] - DSP::addInput - DSPConnection::getType -] -*/ -typedef enum -{ - FMOD_DSPCONNECTION_TYPE_STANDARD, /* Default connection type. Audio is mixed from the input to the output DSP's audible buffer. */ - FMOD_DSPCONNECTION_TYPE_SIDECHAIN, /* Sidechain connection type. Audio is mixed from the input to the output DSP's sidechain buffer. */ - FMOD_DSPCONNECTION_TYPE_SEND, /* Send connection type. Audio is mixed from the input to the output DSP's audible buffer, but the input is NOT executed, only copied from. A standard connection or sidechain needs to make an input execute to generate data. */ - FMOD_DSPCONNECTION_TYPE_SEND_SIDECHAIN, /* Send sidechain connection type. Audio is mixed from the input to the output DSP's sidechain buffer, but the input is NOT executed, only copied from. A standard connection or sidechain needs to make an input execute to generate data. */ - - FMOD_DSPCONNECTION_TYPE_MAX, /* Maximum number of DSP connection types supported. */ - FMOD_DSPCONNECTION_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSPCONNECTION_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of tag types that could be stored within a sound. These include id3 tags, metadata from netstreams and vorbis/asf data. - - [REMARKS] - - [SEE_ALSO] - Sound::getTag -] -*/ -typedef enum -{ - FMOD_TAGTYPE_UNKNOWN = 0, - FMOD_TAGTYPE_ID3V1, - FMOD_TAGTYPE_ID3V2, - FMOD_TAGTYPE_VORBISCOMMENT, - FMOD_TAGTYPE_SHOUTCAST, - FMOD_TAGTYPE_ICECAST, - FMOD_TAGTYPE_ASF, - FMOD_TAGTYPE_MIDI, - FMOD_TAGTYPE_PLAYLIST, - FMOD_TAGTYPE_FMOD, - FMOD_TAGTYPE_USER, - - FMOD_TAGTYPE_MAX, /* Maximum number of tag types supported. */ - FMOD_TAGTYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_TAGTYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of data types that can be returned by Sound::getTag - - [REMARKS] - - [SEE_ALSO] - Sound::getTag -] -*/ -typedef enum -{ - FMOD_TAGDATATYPE_BINARY = 0, - FMOD_TAGDATATYPE_INT, - FMOD_TAGDATATYPE_FLOAT, - FMOD_TAGDATATYPE_STRING, - FMOD_TAGDATATYPE_STRING_UTF16, - FMOD_TAGDATATYPE_STRING_UTF16BE, - FMOD_TAGDATATYPE_STRING_UTF8, - FMOD_TAGDATATYPE_CDTOC, - - FMOD_TAGDATATYPE_MAX, /* Maximum number of tag datatypes supported. */ - FMOD_TAGDATATYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_TAGDATATYPE; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure describing a piece of tag data. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - Sound::getTag - FMOD_TAGTYPE - FMOD_TAGDATATYPE -] -*/ -typedef struct FMOD_TAG -{ - FMOD_TAGTYPE type; /* [r] The type of this tag. */ - FMOD_TAGDATATYPE datatype; /* [r] The type of data that this tag contains */ - char *name; /* [r] The name of this tag i.e. "TITLE", "ARTIST" etc. */ - void *data; /* [r] Pointer to the tag data - its format is determined by the datatype member */ - unsigned int datalen; /* [r] Length of the data contained in this tag */ - FMOD_BOOL updated; /* [r] True if this tag has been updated since last being accessed with Sound::getTag */ -} FMOD_TAG; - - -/* -[DEFINE] -[ - [NAME] - FMOD_TIMEUNIT - - [DESCRIPTION] - List of time types that can be returned by Sound::getLength and used with Channel::setPosition or Channel::getPosition. - - [REMARKS] - Do not combine flags except FMOD_TIMEUNIT_BUFFERED. - - [SEE_ALSO] - Sound::getLength - Channel::setPosition - Channel::getPosition -] -*/ -#define FMOD_TIMEUNIT_MS 0x00000001 /* Milliseconds. */ -#define FMOD_TIMEUNIT_PCM 0x00000002 /* PCM samples, related to milliseconds * samplerate / 1000. */ -#define FMOD_TIMEUNIT_PCMBYTES 0x00000004 /* Bytes, related to PCM samples * channels * datawidth (ie 16bit = 2 bytes). */ -#define FMOD_TIMEUNIT_RAWBYTES 0x00000008 /* Raw file bytes of (compressed) sound data (does not include headers). Only used by Sound::getLength and Channel::getPosition. */ -#define FMOD_TIMEUNIT_PCMFRACTION 0x00000010 /* Fractions of 1 PCM sample. Unsigned int range 0 to 0xFFFFFFFF. Used for sub-sample granularity for DSP purposes. */ -#define FMOD_TIMEUNIT_MODORDER 0x00000100 /* MOD/S3M/XM/IT. Order in a sequenced module format. Use Sound::getFormat to determine the PCM format being decoded to. */ -#define FMOD_TIMEUNIT_MODROW 0x00000200 /* MOD/S3M/XM/IT. Current row in a sequenced module format. Sound::getLength will return the number of rows in the currently playing or seeked to pattern. */ -#define FMOD_TIMEUNIT_MODPATTERN 0x00000400 /* MOD/S3M/XM/IT. Current pattern in a sequenced module format. Sound::getLength will return the number of patterns in the song and Channel::getPosition will return the currently playing pattern. */ -#define FMOD_TIMEUNIT_BUFFERED 0x10000000 /* Time value as seen by buffered stream. This is always ahead of audible time, and is only used for processing. */ -/* [DEFINE_END] */ - -/* -[DEFINE] -[ - [NAME] - FMOD_PORT_INDEX - - [DESCRIPTION] - - [REMARKS] - - [SEE_ALSO] - System::AttachChannelGroupToPort -] -*/ -#define FMOD_PORT_INDEX_NONE -1ull /* Use when a port index is not required */ -/* [DEFINE_END] */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Use this structure with System::createSound when more control is needed over loading. - The possible reasons to use this with System::createSound are: - - - Loading a file from memory. - - Loading a file from within another larger (possibly wad/pak) file, by giving the loader an offset and length. - - To create a user created / non file based sound. - - To specify a starting subsound to seek to within a multi-sample sounds (ie FSB/DLS) when created as a stream. - - To specify which subsounds to load for multi-sample sounds (ie FSB/DLS) so that memory is saved and only a subset is actually loaded/read from disk. - - To specify 'piggyback' read and seek callbacks for capture of sound data as fmod reads and decodes it. Useful for ripping decoded PCM data from sounds as they are loaded / played. - - To specify a MIDI DLS sample set file to load when opening a MIDI file. - - See below on what members to fill for each of the above types of sound you want to create. - - [REMARKS] - This structure is optional! Specify 0 or NULL in System::createSound if you don't need it! - - Loading a file from memory. - - - Create the sound using the FMOD_OPENMEMORY flag. - - Mandatory. Specify 'length' for the size of the memory block in bytes. - - Other flags are optional. - - Loading a file from within another larger (possibly wad/pak) file, by giving the loader an offset and length. - - - Mandatory. Specify 'fileoffset' and 'length'. - - Other flags are optional. - - To create a user created / non file based sound. - - - Create the sound using the FMOD_OPENUSER flag. - - Mandatory. Specify 'defaultfrequency, 'numchannels' and 'format'. - - Other flags are optional. - - To specify a starting subsound to seek to and flush with, within a multi-sample stream (ie FSB/DLS). - - - Mandatory. Specify 'initialsubsound'. - - To specify which subsounds to load for multi-sample sounds (ie FSB/DLS) so that memory is saved and only a subset is actually loaded/read from disk. - - - Mandatory. Specify 'inclusionlist' and 'inclusionlistnum'. - - To specify 'piggyback' read and seek callbacks for capture of sound data as fmod reads and decodes it. Useful for ripping decoded PCM data from sounds as they are loaded / played. - - - Mandatory. Specify 'pcmreadcallback' and 'pcmseekcallback'. - - To specify a MIDI DLS sample set file to load when opening a MIDI file. - - - Mandatory. Specify 'dlsname'. - - Setting the 'decodebuffersize' is for cpu intensive codecs that may be causing stuttering, not file intensive codecs (ie those from CD or netstreams) which are normally - altered with System::setStreamBufferSize. As an example of cpu intensive codecs, an mp3 file will take more cpu to decode than a PCM wav file. - - If you have a stuttering effect, then it is using more cpu than the decode buffer playback rate can keep up with. Increasing the decode buffersize will most likely solve this problem. - - FSB codec. If inclusionlist and numsubsounds are used together, this will trigger a special mode where subsounds are shuffled down to save memory. (useful for large FSB - files where you only want to load 1 sound). There will be no gaps, ie no null subsounds. As an example, if there are 10,000 subsounds and there is an inclusionlist with only 1 entry, - and numsubsounds = 1, then subsound 0 will be that entry, and there will only be the memory allocated for 1 subsound. Previously there would still be 10,000 subsound pointers and other - associated codec entries allocated along with it multiplied by 10,000. - - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value. - - [SEE_ALSO] - System::createSound - System::setStreamBufferSize - FMOD_MODE - FMOD_SOUND_FORMAT - FMOD_SOUND_TYPE - FMOD_CHANNELMASK - FMOD_CHANNELORDER - FMOD_MAX_CHANNEL_WIDTH -] -*/ -typedef struct FMOD_CREATESOUNDEXINFO -{ - int cbsize; /* [w] Size of this structure. This is used so the structure can be expanded in the future and still work on older versions of FMOD Studio. */ - unsigned int length; /* [w] Optional. Specify 0 to ignore. Number of bytes to load starting at 'fileoffset', or size of sound to create (if FMOD_OPENUSER is used). Required if loading from memory. If 0 is specified, then it will use the size of the file (unless loading from memory then an error will be returned). */ - unsigned int fileoffset; /* [w] Optional. Specify 0 to ignore. Offset from start of the file to start loading from. This is useful for loading files from inside big data files. */ - int numchannels; /* [w] Optional. Specify 0 to ignore. Number of channels in a sound mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Can be specified up to FMOD_MAX_CHANNEL_WIDTH. */ - int defaultfrequency; /* [w] Optional. Specify 0 to ignore. Default frequency of sound in Hz, mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Other formats use the frequency determined by the file format. */ - FMOD_SOUND_FORMAT format; /* [w] Optional. Specify 0 or FMOD_SOUND_FORMAT_NONE to ignore. Format of the sound, mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Other formats use the format determined by the file format. */ - unsigned int decodebuffersize; /* [w] Optional. Specify 0 to ignore. For streams. This determines the size of the double buffer (in PCM samples) that a stream uses. Use this for user created streams if you want to determine the size of the callback buffer passed to you. Specify 0 to use FMOD's default size which is currently equivalent to 400ms of the sound format created/loaded. */ - int initialsubsound; /* [w] Optional. Specify 0 to ignore. In a multi-sample file format such as .FSB/.DLS, specify the initial subsound to seek to, only if FMOD_CREATESTREAM is used. */ - int numsubsounds; /* [w] Optional. Specify 0 to ignore or have no subsounds. In a sound created with FMOD_OPENUSER, specify the number of subsounds that are accessable with Sound::getSubSound. If not created with FMOD_OPENUSER, this will limit the number of subsounds loaded within a multi-subsound file. If using FSB, then if FMOD_CREATESOUNDEXINFO::inclusionlist is used, this will shuffle subsounds down so that there are not any gaps. It will mean that the indices of the sounds will be different. */ - int *inclusionlist; /* [w] Optional. Specify 0 to ignore. In a multi-sample format such as .FSB/.DLS it may be desirable to specify only a subset of sounds to be loaded out of the whole file. This is an array of subsound indices to load into memory when created. */ - int inclusionlistnum; /* [w] Optional. Specify 0 to ignore. This is the number of integers contained within the inclusionlist array. */ - FMOD_SOUND_PCMREAD_CALLBACK pcmreadcallback; /* [w] Optional. Specify 0 to ignore. Callback to 'piggyback' on FMOD's read functions and accept or even write PCM data while FMOD is opening the sound. Used for user sounds created with FMOD_OPENUSER or for capturing decoded data as FMOD reads it. */ - FMOD_SOUND_PCMSETPOS_CALLBACK pcmsetposcallback; /* [w] Optional. Specify 0 to ignore. Callback for when the user calls a seeking function such as Channel::setTime or Channel::setPosition within a multi-sample sound, and for when it is opened.*/ - FMOD_SOUND_NONBLOCK_CALLBACK nonblockcallback; /* [w] Optional. Specify 0 to ignore. Callback for successful completion, or error while loading a sound that used the FMOD_NONBLOCKING flag. Also called duing seeking, when setPosition is called or a stream is restarted. */ - const char *dlsname; /* [w] Optional. Specify 0 to ignore. Filename for a DLS sample set when loading a MIDI file. If not specified, on Windows it will attempt to open /windows/system32/drivers/gm.dls or /windows/system32/drivers/etc/gm.dls, on Mac it will attempt to load /System/Library/Components/CoreAudio.component/Contents/Resources/gs_instruments.dls, otherwise the MIDI will fail to open. Current DLS support is for level 1 of the specification. */ - const char *encryptionkey; /* [w] Optional. Specify 0 to ignore. Key for encrypted FSB file. Without this key an encrypted FSB file will not load. */ - int maxpolyphony; /* [w] Optional. Specify 0 to ignore. For sequenced formats with dynamic channel allocation such as .MID and .IT, this specifies the maximum voice count allowed while playing. .IT defaults to 64. .MID defaults to 32. */ - void *userdata; /* [w] Optional. Specify 0 to ignore. This is user data to be attached to the sound during creation. Access via Sound::getUserData. Note: This is not passed to FMOD_FILE_OPEN_CALLBACK - use fileuserdata for that. */ - FMOD_SOUND_TYPE suggestedsoundtype; /* [w] Optional. Specify 0 or FMOD_SOUND_TYPE_UNKNOWN to ignore. Instead of scanning all codec types, use this to speed up loading by making it jump straight to this codec. */ - FMOD_FILE_OPEN_CALLBACK fileuseropen; /* [w] Optional. Specify 0 to ignore. Callback for opening this file. */ - FMOD_FILE_CLOSE_CALLBACK fileuserclose; /* [w] Optional. Specify 0 to ignore. Callback for closing this file. */ - FMOD_FILE_READ_CALLBACK fileuserread; /* [w] Optional. Specify 0 to ignore. Callback for reading from this file. */ - FMOD_FILE_SEEK_CALLBACK fileuserseek; /* [w] Optional. Specify 0 to ignore. Callback for seeking within this file. */ - FMOD_FILE_ASYNCREAD_CALLBACK fileuserasyncread; /* [w] Optional. Specify 0 to ignore. Callback for seeking within this file. */ - FMOD_FILE_ASYNCCANCEL_CALLBACK fileuserasynccancel;/* [w] Optional. Specify 0 to ignore. Callback for seeking within this file. */ - void *fileuserdata; /* [w] Optional. Specify 0 to ignore. User data to be passed into the file callbacks. */ - int filebuffersize; /* [w] Optional. Specify 0 to ignore. Buffer size for reading the file, -1 to disable buffering, or 0 for system default. */ - FMOD_CHANNELORDER channelorder; /* [w] Optional. Specify 0 to ignore. Use this to differ the way fmod maps multichannel sounds to speakers. See FMOD_CHANNELORDER for more. */ - FMOD_CHANNELMASK channelmask; /* [w] Optional. Specify 0 to ignore. Use this to specify which channels map to which speakers. See FMOD_CHANNELMASK for more. */ - FMOD_SOUNDGROUP *initialsoundgroup; /* [w] Optional. Specify 0 to ignore. Specify a sound group if required, to put sound in as it is created. */ - unsigned int initialseekposition;/* [w] Optional. Specify 0 to ignore. For streams. Specify an initial position to seek the stream to. */ - FMOD_TIMEUNIT initialseekpostype; /* [w] Optional. Specify 0 to ignore. For streams. Specify the time unit for the position set in initialseekposition. */ - int ignoresetfilesystem;/* [w] Optional. Specify 0 to ignore. Set to 1 to use fmod's built in file system. Ignores setFileSystem callbacks and also FMOD_CREATESOUNEXINFO file callbacks. Useful for specific cases where you don't want to use your own file system but want to use fmod's file system (ie net streaming). */ - unsigned int audioqueuepolicy; /* [w] Optional. Specify 0 or FMOD_AUDIOQUEUE_CODECPOLICY_DEFAULT to ignore. Policy used to determine whether hardware or software is used for decoding, see FMOD_AUDIOQUEUE_CODECPOLICY for options (iOS >= 3.0 required, otherwise only hardware is available) */ - unsigned int minmidigranularity; /* [w] Optional. Specify 0 to ignore. Allows you to set a minimum desired MIDI mixer granularity. Values smaller than 512 give greater than default accuracy at the cost of more CPU and vice versa. Specify 0 for default (512 samples). */ - int nonblockthreadid; /* [w] Optional. Specify 0 to ignore. Specifies a thread index to execute non blocking load on. Allows for up to 5 threads to be used for loading at once. This is to avoid one load blocking another. Maximum value = 4. */ - FMOD_GUID *fsbguid; /* [r/w] Optional. Specify 0 to ignore. Allows you to provide the GUID lookup for cached FSB header info. Once loaded the GUID will be written back to the pointer. This is to avoid seeking and reading the FSB header. */ -} FMOD_CREATESOUNDEXINFO; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure defining a reverb environment.
    - - [REMARKS] - Note the default reverb properties are the same as the FMOD_PRESET_GENERIC preset.
    - Note that integer values that typically range from -10,000 to 1000 are represented in decibels, - and are of a logarithmic scale, not linear, wheras float values are always linear.
    -
    - The numerical values listed below are the maximum, minimum and default values for each variable respectively.
    -
    - Hardware voice / Platform Specific reverb support.
    - WII See FMODWII.H for hardware specific reverb functionality.
    - 3DS See FMOD3DS.H for hardware specific reverb functionality.
    - PSP See FMODWII.H for hardware specific reverb functionality.
    -
    - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - Members marked with [r/w] are either read or write depending on if you are using System::setReverbProperties (w) or System::getReverbProperties (r). - - [SEE_ALSO] - System::setReverbProperties - System::getReverbProperties - FMOD_REVERB_PRESETS -] -*/ -typedef struct FMOD_REVERB_PROPERTIES -{ /* MIN MAX DEFAULT DESCRIPTION */ - float DecayTime; /* [r/w] 0.0 20000.0 1500.0 Reverberation decay time in ms */ - float EarlyDelay; /* [r/w] 0.0 300.0 7.0 Initial reflection delay time */ - float LateDelay; /* [r/w] 0.0 100 11.0 Late reverberation delay time relative to initial reflection */ - float HFReference; /* [r/w] 20.0 20000.0 5000 Reference high frequency (hz) */ - float HFDecayRatio; /* [r/w] 10.0 100.0 50.0 High-frequency to mid-frequency decay time ratio */ - float Diffusion; /* [r/w] 0.0 100.0 100.0 Value that controls the echo density in the late reverberation decay. */ - float Density; /* [r/w] 0.0 100.0 100.0 Value that controls the modal density in the late reverberation decay */ - float LowShelfFrequency; /* [r/w] 20.0 1000.0 250.0 Reference low frequency (hz) */ - float LowShelfGain; /* [r/w] -36.0 12.0 0.0 Relative room effect level at low frequencies */ - float HighCut; /* [r/w] 20.0 20000.0 20000.0 Relative room effect level at high frequencies */ - float EarlyLateMix; /* [r/w] 0.0 100.0 50.0 Early reflections level relative to room effect */ - float WetLevel; /* [r/w] -80.0 20.0 -6.0 Room effect level (at mid frequencies) */ -} FMOD_REVERB_PROPERTIES; - - -/* -[DEFINE] -[ - [NAME] - FMOD_REVERB_PRESETS - - [DESCRIPTION] - A set of predefined environment PARAMETERS.
    - These are used to initialize an FMOD_REVERB_PROPERTIES structure statically.
    - i.e.
    - FMOD_REVERB_PROPERTIES prop = FMOD_PRESET_GENERIC; - - [REMARKS] - - [SEE_ALSO] - System::setReverbProperties - System::getReverbProperties -] -*/ -/* Decay LateDly HFDecay Densty LoGain E/L-Mix - EarlyDly HFRef Diffus LoFreq HiCut WetLvl */ -#define FMOD_PRESET_OFF { 1000, 7, 11, 5000, 100, 100, 100, 250, 0, 20, 96, -80.0f } -#define FMOD_PRESET_GENERIC { 1500, 7, 11, 5000, 83, 100, 100, 250, 0, 14500, 96, -8.0f } -#define FMOD_PRESET_PADDEDCELL { 170, 1, 2, 5000, 10, 100, 100, 250, 0, 160, 84, -7.8f } -#define FMOD_PRESET_ROOM { 400, 2, 3, 5000, 83, 100, 100, 250, 0, 6050, 88, -9.4f } -#define FMOD_PRESET_BATHROOM { 1500, 7, 11, 5000, 54, 100, 60, 250, 0, 2900, 83, 0.5f } -#define FMOD_PRESET_LIVINGROOM { 500, 3, 4, 5000, 10, 100, 100, 250, 0, 160, 58, -19.0f } -#define FMOD_PRESET_STONEROOM { 2300, 12, 17, 5000, 64, 100, 100, 250, 0, 7800, 71, -8.5f } -#define FMOD_PRESET_AUDITORIUM { 4300, 20, 30, 5000, 59, 100, 100, 250, 0, 5850, 64, -11.7f } -#define FMOD_PRESET_CONCERTHALL { 3900, 20, 29, 5000, 70, 100, 100, 250, 0, 5650, 80, -9.8f } -#define FMOD_PRESET_CAVE { 2900, 15, 22, 5000, 100, 100, 100, 250, 0, 20000, 59, -11.3f } -#define FMOD_PRESET_ARENA { 7200, 20, 30, 5000, 33, 100, 100, 250, 0, 4500, 80, -9.6f } -#define FMOD_PRESET_HANGAR { 10000, 20, 30, 5000, 23, 100, 100, 250, 0, 3400, 72, -7.4f } -#define FMOD_PRESET_CARPETTEDHALLWAY { 300, 2, 30, 5000, 10, 100, 100, 250, 0, 500, 56, -24.0f } -#define FMOD_PRESET_HALLWAY { 1500, 7, 11, 5000, 59, 100, 100, 250, 0, 7800, 87, -5.5f } -#define FMOD_PRESET_STONECORRIDOR { 270, 13, 20, 5000, 79, 100, 100, 250, 0, 9000, 86, -6.0f } -#define FMOD_PRESET_ALLEY { 1500, 7, 11, 5000, 86, 100, 100, 250, 0, 8300, 80, -9.8f } -#define FMOD_PRESET_FOREST { 1500, 162, 88, 5000, 54, 79, 100, 250, 0, 760, 94, -12.3f } -#define FMOD_PRESET_CITY { 1500, 7, 11, 5000, 67, 50, 100, 250, 0, 4050, 66, -26.0f } -#define FMOD_PRESET_MOUNTAINS { 1500, 300, 100, 5000, 21, 27, 100, 250, 0, 1220, 82, -24.0f } -#define FMOD_PRESET_QUARRY { 1500, 61, 25, 5000, 83, 100, 100, 250, 0, 3400, 100, -5.0f } -#define FMOD_PRESET_PLAIN { 1500, 179, 100, 5000, 50, 21, 100, 250, 0, 1670, 65, -28.0f } -#define FMOD_PRESET_PARKINGLOT { 1700, 8, 12, 5000, 100, 100, 100, 250, 0, 20000, 56, -19.5f } -#define FMOD_PRESET_SEWERPIPE { 2800, 14, 21, 5000, 14, 80, 60, 250, 0, 3400, 66, 1.2f } -#define FMOD_PRESET_UNDERWATER { 1500, 7, 11, 5000, 10, 100, 100, 250, 0, 500, 92, 7.0f } -/* [DEFINE_END] */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Settings for advanced features like configuring memory and cpu usage for the FMOD_CREATECOMPRESSEDSAMPLE feature. - - [REMARKS] - maxMPEGCodecs / maxADPCMCodecs / maxXMACodecs will determine the maximum cpu usage of playing realtime samples. Use this to lower potential excess cpu usage and also control memory usage.
    -
    - maxPCMCodecs is for use with PS3 only. It will determine the maximum number of PCM voices that can be played at once. This includes streams of any format and all sounds created - *without* the FMOD_CREATECOMPRESSEDSAMPLE flag. -
    - Memory will be allocated for codecs 'up front' (during System::init) if these values are specified as non zero. If any are zero, it allocates memory for the codec whenever a file of the type in question is loaded. So if maxMPEGCodecs is 0 for example, it will allocate memory for the mpeg codecs the first time an mp3 is loaded or an mp3 based .FSB file is loaded.
    -
    - Due to inefficient encoding techniques on certain .wav based ADPCM files, FMOD can can need an extra 29720 bytes per codec. This means for lowest memory consumption. Use FSB as it uses an optimal/small ADPCM block size.
    -
    - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - Members marked with [r/w] are either read or write depending on if you are using System::setAdvancedSettings (w) or System::getAdvancedSettings (r). - - [SEE_ALSO] - System::setAdvancedSettings - System::getAdvancedSettings - System::init - FMOD_MODE -] -*/ -typedef struct FMOD_ADVANCEDSETTINGS -{ - int cbSize; /* [w] Size of this structure. Use sizeof(FMOD_ADVANCEDSETTINGS) NOTE: This must be set before calling System::getAdvancedSettings or System::setAdvancedSettings! */ - int maxMPEGCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. MPEG codecs consume 22,216 bytes per instance and this number will determine how many MPEG channels can be played simultaneously. Default = 32. */ - int maxADPCMCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. ADPCM codecs consume 2,480 bytes per instance and this number will determine how many ADPCM channels can be played simultaneously. Default = 32. */ - int maxXMACodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. XMA codecs consume 6,263 bytes per instance and this number will determine how many XMA channels can be played simultaneously. Default = 32. */ - int maxVorbisCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. Vorbis codecs consume 16,512 bytes per instance and this number will determine how many Vorbis channels can be played simultaneously. Default = 32. */ - int maxAT9Codecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. AT9 codecs consume 20,664 bytes per instance and this number will determine how many AT9 channels can be played simultaneously. Default = 32. */ - int maxFADPCMCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_CREATECOMPRESSEDSAMPLE only. FADPCM codecs consume 2,232 bytes per instance and this number will determine how many FADPCM channels can be played simultaneously. Default = 32. */ - int maxPCMCodecs; /* [r/w] Optional. Specify 0 to ignore. For use with PS3 only. PCM codecs consume 2,536 bytes per instance and this number will determine how many streams and PCM voices can be played simultaneously. Default = 32. */ - int ASIONumChannels; /* [r/w] Optional. Specify 0 to ignore. Number of channels available on the ASIO device. */ - char **ASIOChannelList; /* [r/w] Optional. Specify 0 to ignore. Pointer to an array of strings (number of entries defined by ASIONumChannels) with ASIO channel names. */ - FMOD_SPEAKER *ASIOSpeakerList; /* [r/w] Optional. Specify 0 to ignore. Pointer to a list of speakers that the ASIO channels map to. This can be called after System::init to remap ASIO output. */ - float HRTFMinAngle; /* [r/w] Optional. For use with FMOD_INIT_HRTF_LOWPASS. The angle range (0-360) of a 3D sound in relation to the listener, at which the HRTF function begins to have an effect. 0 = in front of the listener. 180 = from 90 degrees to the left of the listener to 90 degrees to the right. 360 = behind the listener. Default = 180.0. */ - float HRTFMaxAngle; /* [r/w] Optional. For use with FMOD_INIT_HRTF_LOWPASS. The angle range (0-360) of a 3D sound in relation to the listener, at which the HRTF function has maximum effect. 0 = front of the listener. 180 = from 90 degrees to the left of the listener to 90 degrees to the right. 360 = behind the listener. Default = 360.0. */ - float HRTFFreq; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_HRTF_LOWPASS. The cutoff frequency of the HRTF's lowpass filter function when at maximum effect. (i.e. at HRTFMaxAngle). Default = 4000.0. */ - float vol0virtualvol; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_VOL0_BECOMES_VIRTUAL. If this flag is used, and the volume is below this, then the sound will become virtual. Use this value to raise the threshold to a different point where a sound goes virtual. */ - unsigned int defaultDecodeBufferSize; /* [r/w] Optional. Specify 0 to ignore. For streams. This determines the default size of the double buffer (in milliseconds) that a stream uses. Default = 400ms */ - unsigned short profilePort; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_PROFILE_ENABLE. Specify the port to listen on for connections by the profiler application. */ - unsigned int geometryMaxFadeTime; /* [r/w] Optional. Specify 0 to ignore. The maximum time in miliseconds it takes for a channel to fade to the new level when its occlusion changes. */ - float distanceFilterCenterFreq; /* [r/w] Optional. Specify 0 to ignore. For use with FMOD_INIT_DISTANCE_FILTERING. The default center frequency in Hz for the distance filtering effect. Default = 1500.0. */ - int reverb3Dinstance; /* [r/w] Optional. Specify 0 to ignore. Out of 0 to 3, 3d reverb spheres will create a phyical reverb unit on this instance slot. See FMOD_REVERB_PROPERTIES. */ - int DSPBufferPoolSize; /* [r/w] Optional. Specify 0 to ignore. Number of buffers in DSP buffer pool. Each buffer will be DSPBlockSize * sizeof(float) * SpeakerModeChannelCount. ie 7.1 @ 1024 DSP block size = 8 * 1024 * 4 = 32kb. Default = 8. */ - unsigned int stackSizeStream; /* [r/w] Optional. Specify 0 to ignore. Specify the stack size for the FMOD Stream thread in bytes. Useful for custom codecs that use excess stack. Default 49,152 (48kb) */ - unsigned int stackSizeNonBlocking; /* [r/w] Optional. Specify 0 to ignore. Specify the stack size for the FMOD_NONBLOCKING loading thread. Useful for custom codecs that use excess stack. Default 65,536 (64kb) */ - unsigned int stackSizeMixer; /* [r/w] Optional. Specify 0 to ignore. Specify the stack size for the FMOD mixer thread. Useful for custom dsps that use excess stack. Default 49,152 (48kb) */ - FMOD_DSP_RESAMPLER resamplerMethod; /* [r/w] Optional. Specify 0 to ignore. Resampling method used with fmod's software mixer. See FMOD_DSP_RESAMPLER for details on methods. */ - unsigned int commandQueueSize; /* [r/w] Optional. Specify 0 to ignore. Specify the command queue size for thread safe processing. Default 2048 (2kb) */ - unsigned int randomSeed; /* [r/w] Optional. Specify 0 to ignore. Seed value that FMOD will use to initialize its internal random number generators. */ -} FMOD_ADVANCEDSETTINGS; - - -/* -[DEFINE] -[ - [NAME] - FMOD_DRIVER_STATE - - [DESCRIPTION] - Flags that provide additional information about a particular driver. - - [REMARKS] - - [SEE_ALSO] - System::getRecordDriverInfo -] -*/ -#define FMOD_DRIVER_STATE_CONNECTED 0x00000001 /* Device is currently plugged in. */ -#define FMOD_DRIVER_STATE_DEFAULT 0x00000002 /* Device is the users preferred choice. */ -/* [DEFINE_END] */ - - -/*$ preserve start $*/ - -#include "fmod_codec.h" -#include "fmod_dsp.h" -#include "fmod_output.h" - -#endif - -/*$ preserve end $*/ diff --git a/fmodstudio/inc/fmod_dsp.h b/fmodstudio/inc/fmod_dsp.h deleted file mode 100644 index 4307ee5a..00000000 --- a/fmodstudio/inc/fmod_dsp.h +++ /dev/null @@ -1,852 +0,0 @@ -/* ========================================================================================== */ -/* FMOD Studio - DSP header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2016. */ -/* */ -/* Use this header if you are interested in delving deeper into the FMOD software mixing / */ -/* DSP engine. */ -/* Also use this header if you are wanting to develop your own DSP plugin to use with FMOD's */ -/* dsp system. With this header you can make your own DSP plugin that FMOD can */ -/* register and use. See the documentation and examples on how to make a working plugin. */ -/* */ -/* ========================================================================================== */ - -#ifndef _FMOD_DSP_H -#define _FMOD_DSP_H - -#include "fmod_dsp_effects.h" - -typedef struct FMOD_DSP_STATE FMOD_DSP_STATE; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for FMOD_DSP_PROCESS_CALLBACK input and output buffers. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_DESCRIPTION -] -*/ -typedef struct FMOD_DSP_BUFFER_ARRAY -{ - int numbuffers; /* [r/w] number of buffers */ - int *buffernumchannels; /* [r/w] array of number of channels for each buffer */ - FMOD_CHANNELMASK *bufferchannelmask; /* [r/w] array of channel masks for each buffer */ - float **buffers; /* [r/w] array of buffers */ - FMOD_SPEAKERMODE speakermode; /* [r/w] speaker mode for all buffers in the array */ -} FMOD_DSP_BUFFER_ARRAY; - -/* -[ENUM] -[ - [DESCRIPTION] - Operation type for FMOD_DSP_PROCESS_CALLBACK. - - [REMARKS] - A process callback will be called twice per mix for a DSP unit. Once with the FMOD_DSP_PROCESS_QUERY command, then conditionally, FMOD_DSP_PROCESS_PERFORM.
    - FMOD_DSP_PROCESS_QUERY is to be handled only by filling out the outputarray information, and returning a relevant return code.
    - It should not really do any logic besides checking and returning one of the following codes:
    - - FMOD_OK - Meaning yes, it should execute the dsp process function with FMOD_DSP_PROCESS_PERFORM
    - - FMOD_ERR_DSP_DONTPROCESS - Meaning no, it should skip the process function and not call it with FMOD_DSP_PROCESS_PERFORM.
    - - FMOD_ERR_DSP_SILENCE - Meaning no, it should skip the process function and not call it with FMOD_DSP_PROCESS_PERFORM, AND, tell the signal chain to follow that it is now idle, so that no more processing happens down the chain.
    - If audio is to be processed, 'outbufferarray' must be filled with the expected output format, channel count and mask. Mask can be 0.
    -
    - FMOD_DSP_PROCESS_PROCESS is to be handled by reading the data from the input, processing it, and writing it to the output. Always write to the output buffer and fill it fully to avoid unpredictable audio output.
    - Always return FMOD_OK, the return value is ignored from the process stage. - - [SEE_ALSO] - FMOD_DSP_DESCRIPTION -] -*/ -typedef enum -{ - FMOD_DSP_PROCESS_PERFORM, /* Process the incoming audio in 'inbufferarray' and output to 'outbufferarray'. */ - FMOD_DSP_PROCESS_QUERY /* The DSP is being queried for the expected output format and whether it needs to process audio or should be bypassed. The function should return FMOD_OK, or FMOD_ERR_DSP_DONTPROCESS or FMOD_ERR_DSP_SILENCE if audio can pass through unprocessed. See remarks for more. If audio is to be processed, 'outbufferarray' must be filled with the expected output format, channel count and mask. */ -} FMOD_DSP_PROCESS_OPERATION; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Complex number structure used for holding FFT frequency domain-data for FMOD_FFTREAL and FMOD_IFFTREAL DSP callbacks. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_STATE_SYSTEMCALLBACKS -] -*/ -typedef struct FMOD_COMPLEX -{ - float real; /* Real component */ - float imag; /* Imaginary component */ -} FMOD_COMPLEX; - -/* -[ENUM] -[ - [DESCRIPTION] - Flags for the FMOD_DSP_PAN_SUM_SURROUND_MATRIX callback. - - [REMARKS] - This functionality is experimental, please contact support@fmod.org for more information. - - [SEE_ALSO] - FMOD_DSP_STATE_PAN_CALLBACKS -] -*/ -typedef enum -{ - FMOD_DSP_PAN_SURROUND_DEFAULT = 0, - FMOD_DSP_PAN_SURROUND_ROTATION_NOT_BIASED = 1, - - FMOD_DSP_PAN_SURROUND_FLAGS_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_PAN_SURROUND_FLAGS; - -/* - DSP callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_CREATE_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_RELEASE_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_RESET_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_READ_CALLBACK) (FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PROCESS_CALLBACK) (FMOD_DSP_STATE *dsp_state, unsigned int length, const FMOD_DSP_BUFFER_ARRAY *inbufferarray, FMOD_DSP_BUFFER_ARRAY *outbufferarray, FMOD_BOOL inputsidle, FMOD_DSP_PROCESS_OPERATION op); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPOSITION_CALLBACK) (FMOD_DSP_STATE *dsp_state, unsigned int pos); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SHOULDIPROCESS_CALLBACK) (FMOD_DSP_STATE *dsp_state, FMOD_BOOL inputsidle, unsigned int length, FMOD_CHANNELMASK inmask, int inchannels, FMOD_SPEAKERMODE speakermode); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_FLOAT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, float value); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_INT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, int value); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_BOOL_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, FMOD_BOOL value); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SETPARAM_DATA_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, void *data, unsigned int length); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_FLOAT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, float *value, char *valuestr); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_INT_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, int *value, char *valuestr); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_BOOL_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, FMOD_BOOL *value, char *valuestr); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_GETPARAM_DATA_CALLBACK) (FMOD_DSP_STATE *dsp_state, int index, void **data, unsigned int *length, char *valuestr); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_REGISTER_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK) (FMOD_DSP_STATE *dsp_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_MIX_CALLBACK) (FMOD_DSP_STATE *dsp_state, int stage); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_GETSAMPLERATE) (FMOD_DSP_STATE *dsp_state, int *rate); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_GETBLOCKSIZE) (FMOD_DSP_STATE *dsp_state, unsigned int *blocksize); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_SYSTEM_GETSPEAKERMODE) (FMOD_DSP_STATE *dsp_state, FMOD_SPEAKERMODE *speakermode_mixer, FMOD_SPEAKERMODE *speakermode_output); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_DFT_FFTREAL) (FMOD_DSP_STATE* thisdsp, int size, const float *signal, FMOD_COMPLEX* dft, const float *window, int signalhop); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_DFT_IFFTREAL) (FMOD_DSP_STATE* thisdsp, int size, const FMOD_COMPLEX *dft, float* signal, const float *window, int signalhop); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_MONO_MATRIX) (FMOD_DSP_STATE *dsp_state, int sourceSpeakerMode, float lowFrequencyGain, float overallGain, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_STEREO_MATRIX) (FMOD_DSP_STATE *dsp_state, int sourceSpeakerMode, float pan, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_SURROUND_MATRIX) (FMOD_DSP_STATE *dsp_state, int sourceSpeakerMode, int targetSpeakerMode, float direction, float extent, float rotation, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix, FMOD_DSP_PAN_SURROUND_FLAGS flags); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_MONO_TO_SURROUND_MATRIX) (FMOD_DSP_STATE *dsp_state, int targetSpeakerMode, float direction, float extent, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_SUM_STEREO_TO_SURROUND_MATRIX)(FMOD_DSP_STATE *dsp_state, int targetSpeakerMode, float direction, float extent, float rotation, float lowFrequencyGain, float overallGain, int matrixHop, float *matrix); -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_PAN_3D_GET_ROLLOFF_GAIN) (FMOD_DSP_STATE *dsp_state, FMOD_DSP_PAN_3D_ROLLOFF_TYPE rolloff, float distance, float mindistance, float maxdistance, float *gain); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_DSP_STATE_GETCLOCK) (FMOD_DSP_STATE *dsp_state, unsigned long long *clock, unsigned int *offset, unsigned int *length); - - -/* -[DEFINE] -[ - [NAME] - FMOD_DSP_GETPARAM_VALUESTR_LENGTH - - [DESCRIPTION] - Length in bytes of the buffer pointed to by the valuestr argument of FMOD_DSP_GETPARAM_XXXX_CALLBACK functions. - - [REMARKS] - DSP plugins should not copy more than this number of bytes into the buffer or memory corruption will occur. - - [SEE_ALSO] - FMOD_DSP_GETPARAM_FLOAT_CALLBACK - FMOD_DSP_GETPARAM_INT_CALLBACK - FMOD_DSP_GETPARAM_BOOL_CALLBACK - FMOD_DSP_GETPARAM_DATA_CALLBACK -] -*/ -#define FMOD_DSP_GETPARAM_VALUESTR_LENGTH 32 -/* [DEFINE_END] */ - -/* -[ENUM] -[ - [DESCRIPTION] - DSP parameter types. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef enum -{ - FMOD_DSP_PARAMETER_TYPE_FLOAT, - FMOD_DSP_PARAMETER_TYPE_INT, - FMOD_DSP_PARAMETER_TYPE_BOOL, - FMOD_DSP_PARAMETER_TYPE_DATA, - - FMOD_DSP_PARAMETER_TYPE_MAX, /* Maximum number of DSP parameter types. */ - FMOD_DSP_PARAMETER_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_PARAMETER_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - DSP float parameter mappings. These determine how values are mapped across dials and automation curves. - - [REMARKS] - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_AUTO generates a mapping based on range and units. For example, if the units are in Hertz and the range is with-in the audio spectrum, a Bark scale will be chosen. Logarithmic scales may also be generated for ranges above zero spanning several orders of magnitude. - - [SEE_ALSO] - FMOD_DSP_PARAMETER_FLOAT_MAPPING -] -*/ -typedef enum -{ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_LINEAR, /* Values mapped linearly across range. */ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_AUTO, /* A mapping is automatically chosen based on range and units. See remarks. */ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_PIECEWISE_LINEAR, /* Values mapped in a piecewise linear fashion defined by FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR. */ - - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a piecewise linear mapping. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE - FMOD_DSP_PARAMETER_FLOAT_MAPPING -] -*/ -typedef struct FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR -{ - int numpoints; /* [w] The number of pairs in the piecewise mapping (at least 2). */ - float *pointparamvalues; /* [w] The values in the parameter's units for each point */ - float *pointpositions; /* [w] The positions along the control's scale (e.g. dial angle) corresponding to each parameter value. The range of this scale is arbitrary and all positions will be relative to the minimum and maximum values (e.g. [0,1,3] is equivalent to [1,2,4] and [2,4,8]). If this array is zero, pointparamvalues will be distributed with equal spacing. */ -} FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a mapping for a DSP unit's float parameter. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE - FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR - FMOD_DSP_PARAMETER_DESC_FLOAT -] -*/ -typedef struct FMOD_DSP_PARAMETER_FLOAT_MAPPING -{ - FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE type; - FMOD_DSP_PARAMETER_FLOAT_MAPPING_PIECEWISE_LINEAR piecewiselinearmapping; /* [w] Only required for FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_PIECEWISE_LINEAR type mapping. */ -} FMOD_DSP_PARAMETER_FLOAT_MAPPING; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a float parameter for a DSP unit. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_PARAMETER_DESC - FMOD_DSP_PARAMETER_FLOAT_MAPPING -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_FLOAT -{ - float min; /* [w] Minimum parameter value. */ - float max; /* [w] Maximum parameter value. */ - float defaultval; /* [w] Default parameter value. */ - FMOD_DSP_PARAMETER_FLOAT_MAPPING mapping; /* [w] How the values are distributed across dials and automation curves (e.g. linearly, exponentially etc). */ -} FMOD_DSP_PARAMETER_DESC_FLOAT; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a int parameter for a DSP unit. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_INT -{ - int min; /* [w] Minimum parameter value. */ - int max; /* [w] Maximum parameter value. */ - int defaultval; /* [w] Default parameter value. */ - FMOD_BOOL goestoinf; /* [w] Whether the last value represents infiniy. */ - const char* const* valuenames; /* [w] Names for each value. There should be as many strings as there are possible values (max - min + 1). Optional. */ -} FMOD_DSP_PARAMETER_DESC_INT; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a boolean parameter for a DSP unit. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterBool - DSP::getParameterBool - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_BOOL -{ - FMOD_BOOL defaultval; /* [w] Default parameter value. */ - const char* const* valuenames; /* [w] Names for false and true, respectively. There should be two strings. Optional. */ -} FMOD_DSP_PARAMETER_DESC_BOOL; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure to define a data parameter for a DSP unit. Use 0 or above for custom types. This parameter will be treated specially by the system if set to one of the FMOD_DSP_PARAMETER_DATA_TYPE values. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC_DATA -{ - int datatype; /* [w] The type of data for this parameter. Use 0 or above for custom types or set to one of the FMOD_DSP_PARAMETER_DATA_TYPE values. */ -} FMOD_DSP_PARAMETER_DESC_DATA; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Base Structure for DSP parameter descriptions. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterBool - DSP::getParameterBool - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_PARAMETER_DESC_FLOAT - FMOD_DSP_PARAMETER_DESC_INT - FMOD_DSP_PARAMETER_DESC_BOOL - FMOD_DSP_PARAMETER_DESC_DATA -] -*/ -typedef struct FMOD_DSP_PARAMETER_DESC -{ - FMOD_DSP_PARAMETER_TYPE type; /* [w] Type of this parameter. */ - char name[16]; /* [w] Name of the parameter to be displayed (ie "Cutoff frequency"). */ - char label[16]; /* [w] Short string to be put next to value to denote the unit type (ie "hz"). */ - const char *description; /* [w] Description of the parameter to be displayed as a help item / tooltip for this parameter. */ - - union - { - FMOD_DSP_PARAMETER_DESC_FLOAT floatdesc; /* [w] Struct containing information about the parameter in floating point format. Use when type is FMOD_DSP_PARAMETER_TYPE_FLOAT. */ - FMOD_DSP_PARAMETER_DESC_INT intdesc; /* [w] Struct containing information about the parameter in integer format. Use when type is FMOD_DSP_PARAMETER_TYPE_INT. */ - FMOD_DSP_PARAMETER_DESC_BOOL booldesc; /* [w] Struct containing information about the parameter in boolean format. Use when type is FMOD_DSP_PARAMETER_TYPE_BOOL. */ - FMOD_DSP_PARAMETER_DESC_DATA datadesc; /* [w] Struct containing information about the parameter in data format. Use when type is FMOD_DSP_PARAMETER_TYPE_DATA. */ - }; -} FMOD_DSP_PARAMETER_DESC; - - -/* -[ENUM] -[ - [DESCRIPTION] - Built-in types for the 'datatype' member of FMOD_DSP_PARAMETER_DESC_DATA. Data parameters of type other than FMOD_DSP_PARAMETER_DATA_TYPE_USER will be treated specially by the system. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DESC_DATA - FMOD_DSP_PARAMETER_OVERALLGAIN - FMOD_DSP_PARAMETER_3DATTRIBUTES - FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI - FMOD_DSP_PARAMETER_SIDECHAIN -] -*/ -typedef enum -{ - FMOD_DSP_PARAMETER_DATA_TYPE_USER = 0, /* The default data type. All user data types should be 0 or above. */ - FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN = -1, /* The data type for FMOD_DSP_PARAMETER_OVERALLGAIN parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES = -2, /* The data type for FMOD_DSP_PARAMETER_3DATTRIBUTES parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_SIDECHAIN = -3, /* The data type for FMOD_DSP_PARAMETER_SIDECHAIN parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_FFT = -4, /* The data type for FMOD_DSP_PARAMETER_FFT parameters. There should a maximum of one per DSP. */ - FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES_MULTI = -5, /* The data type for FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI parameters. There should a maximum of one per DSP. */ -} FMOD_DSP_PARAMETER_DATA_TYPE; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN. - A parameter of this type is used in effects that affect the overgain of the signal in a predictable way. - This parameter is read by the system to determine the effect's gain for voice virtualization. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_OVERALLGAIN -{ - float linear_gain; /* [r] The overall linear gain of the effect on the direct signal path */ - float linear_gain_additive; /* [r] Additive gain, for parallel signal paths */ -} FMOD_DSP_PARAMETER_OVERALLGAIN; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES. - A parameter of this type is used in effects that respond to a sound's 3D position. - The system will set this parameter automatically if a sound's position changes. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_3DATTRIBUTES -{ - FMOD_3D_ATTRIBUTES relative; /* [w] The position of the sound relative to the listener. */ - FMOD_3D_ATTRIBUTES absolute; /* [w] The position of the sound in world coordinates. */ -} FMOD_DSP_PARAMETER_3DATTRIBUTES; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_3DATTRIBUTES_MULTI. - A parameter of this type is used in effects that respond to a sound's 3D position, and support multiple listeners. - The system will set this parameter automatically if a sound's position changes. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI -{ - int numlisteners; /* [w] The number of listeners. */ - FMOD_3D_ATTRIBUTES relative[FMOD_MAX_LISTENERS]; /* [w] The position of the sound relative to the listeners. */ - FMOD_3D_ATTRIBUTES absolute; /* [w] The position of the sound in world coordinates. */ -} FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_SIDECHAIN. - A parameter of this type is declared for effects which support sidechaining. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC -] -*/ -typedef struct FMOD_DSP_PARAMETER_SIDECHAIN -{ - FMOD_BOOL sidechainenable; /* [r/w] Whether sidechains are enabled. */ -} FMOD_DSP_PARAMETER_SIDECHAIN; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Structure for data parameters of type FMOD_DSP_PARAMETER_DATA_TYPE_FFT. - A parameter of this type is declared for the FMOD_DSP_TYPE_FFT effect. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    -
    - Notes on the spectrum data member. Values inside the float buffer are typically between 0 and 1.0.
    - Each top level array represents one PCM channel of data.
    - Address data as spectrum[channel][bin]. A bin is 1 fft window entry.
    - Only read/display half of the buffer typically for analysis as the 2nd half is usually the same data reversed due to the nature of the way FFT works.
    - - [SEE_ALSO] - FMOD_DSP_PARAMETER_DATA_TYPE - FMOD_DSP_PARAMETER_DESC - FMOD_DSP_PARAMETER_DATA_TYPE_FFT - FMOD_DSP_TYPE - FMOD_DSP_FFT -] -*/ -typedef struct FMOD_DSP_PARAMETER_FFT -{ - int length; /* [r] Number of entries in this spectrum window. Divide this by the output rate to get the hz per entry. */ - int numchannels; /* [r] Number of channels in spectrum. */ - float *spectrum[32]; /* [r] Per channel spectrum arrays. See remarks for more. */ -} FMOD_DSP_PARAMETER_FFT; - - -/* - Helpers for declaring parameters in custom DSPSs -*/ -#define FMOD_DSP_INIT_PARAMDESC_FLOAT(_paramstruct, _name, _label, _description, _min, _max, _defaultval) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_FLOAT; \ - strncpy((_paramstruct).name, _name, 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).floatdesc.min = _min; \ - (_paramstruct).floatdesc.max = _max; \ - (_paramstruct).floatdesc.defaultval = _defaultval; \ - (_paramstruct).floatdesc.mapping.type = FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_AUTO; - -#define FMOD_DSP_INIT_PARAMDESC_FLOAT_WITH_MAPPING(_paramstruct, _name, _label, _description, _defaultval, _values, _positions); \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_FLOAT; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).floatdesc.min = _values[0]; \ - (_paramstruct).floatdesc.max = _values[sizeof(_values) / sizeof(float) - 1]; \ - (_paramstruct).floatdesc.defaultval = _defaultval; \ - (_paramstruct).floatdesc.mapping.type = FMOD_DSP_PARAMETER_FLOAT_MAPPING_TYPE_PIECEWISE_LINEAR; \ - (_paramstruct).floatdesc.mapping.piecewiselinearmapping.numpoints = sizeof(_values) / sizeof(float); \ - (_paramstruct).floatdesc.mapping.piecewiselinearmapping.pointparamvalues = _values; \ - (_paramstruct).floatdesc.mapping.piecewiselinearmapping.pointpositions = _positions; - -#define FMOD_DSP_INIT_PARAMDESC_INT(_paramstruct, _name, _label, _description, _min, _max, _defaultval, _goestoinf, _valuenames) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_INT; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).intdesc.min = _min; \ - (_paramstruct).intdesc.max = _max; \ - (_paramstruct).intdesc.defaultval = _defaultval; \ - (_paramstruct).intdesc.goestoinf = _goestoinf; \ - (_paramstruct).intdesc.valuenames = _valuenames; - -#define FMOD_DSP_INIT_PARAMDESC_INT_ENUMERATED(_paramstruct, _name, _label, _description, _defaultval, _valuenames) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_INT; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).intdesc.min = 0; \ - (_paramstruct).intdesc.max = sizeof(_valuenames) / sizeof(char*) - 1; \ - (_paramstruct).intdesc.defaultval = _defaultval; \ - (_paramstruct).intdesc.goestoinf = false; \ - (_paramstruct).intdesc.valuenames = _valuenames; - -#define FMOD_DSP_INIT_PARAMDESC_BOOL(_paramstruct, _name, _label, _description, _defaultval, _valuenames) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_BOOL; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).booldesc.defaultval = _defaultval; \ - (_paramstruct).booldesc.valuenames = _valuenames; - -#define FMOD_DSP_INIT_PARAMDESC_DATA(_paramstruct, _name, _label, _description, _datatype) \ - memset(&(_paramstruct), 0, sizeof(_paramstruct)); \ - (_paramstruct).type = FMOD_DSP_PARAMETER_TYPE_DATA; \ - strncpy((_paramstruct).name, _name , 15); \ - strncpy((_paramstruct).label, _label, 15); \ - (_paramstruct).description = _description; \ - (_paramstruct).datadesc.datatype = _datatype; - -#define FMOD_PLUGIN_SDK_VERSION 108 - -/* -[STRUCTURE] -[ - [DESCRIPTION] - When creating a DSP unit, declare one of these and provide the relevant callbacks and name for FMOD to use when it creates and uses a DSP unit of this type. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    -
    - There are 2 different ways to change a parameter in this architecture.
    - One is to use DSP::setParameterFloat / DSP::setParameterInt / DSP::setParameterBool / DSP::setParameterData. This is platform independant and is dynamic, so new unknown plugins can have their parameters enumerated and used.
    - The other is to use DSP::showConfigDialog. This is platform specific and requires a GUI, and will display a dialog box to configure the plugin.
    - - [SEE_ALSO] - System::createDSP - DSP::setParameterFloat - DSP::setParameterInt - DSP::setParameterBool - DSP::setParameterData - FMOD_DSP_STATE - FMOD_DSP_CREATE_CALLBACK - FMOD_DSP_RELEASE_CALLBACK - FMOD_DSP_RESET_CALLBACK - FMOD_DSP_READ_CALLBACK - FMOD_DSP_PROCESS_CALLBACK - FMOD_DSP_SETPOSITION_CALLBACK - FMOD_DSP_PARAMETER_DESC - FMOD_DSP_SETPARAM_FLOAT_CALLBACK - FMOD_DSP_SETPARAM_INT_CALLBACK - FMOD_DSP_SETPARAM_BOOL_CALLBACK - FMOD_DSP_SETPARAM_DATA_CALLBACK - FMOD_DSP_GETPARAM_FLOAT_CALLBACK - FMOD_DSP_GETPARAM_INT_CALLBACK - FMOD_DSP_GETPARAM_BOOL_CALLBACK - FMOD_DSP_GETPARAM_DATA_CALLBACK - FMOD_DSP_SHOULDIPROCESS_CALLBACK - FMOD_DSP_SYSTEM_REGISTER_CALLBACK - FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK - FMOD_DSP_SYSTEM_MIX_CALLBACK -] -*/ -typedef struct FMOD_DSP_DESCRIPTION -{ - unsigned int pluginsdkversion; /* [w] The plugin SDK version this plugin is built for. set to this to FMOD_PLUGIN_SDK_VERSION defined above. */ - char name[32]; /* [w] The identifier of the DSP. This will also be used as the name of DSP and shouldn't change between versions. */ - unsigned int version; /* [w] Plugin writer's version number. */ - int numinputbuffers; /* [w] Number of input buffers to process. Use 0 for DSPs that only generate sound and 1 for effects that process incoming sound. */ - int numoutputbuffers; /* [w] Number of audio output buffers. Only one output buffer is currently supported. */ - FMOD_DSP_CREATE_CALLBACK create; /* [w] Create callback. This is called when DSP unit is created. Can be null. */ - FMOD_DSP_RELEASE_CALLBACK release; /* [w] Release callback. This is called just before the unit is freed so the user can do any cleanup needed for the unit. Can be null. */ - FMOD_DSP_RESET_CALLBACK reset; /* [w] Reset callback. This is called by the user to reset any history buffers that may need resetting for a filter, when it is to be used or re-used for the first time to its initial clean state. Use to avoid clicks or artifacts. */ - FMOD_DSP_READ_CALLBACK read; /* [w] Read callback. Processing is done here. Can be null. */ - FMOD_DSP_PROCESS_CALLBACK process; /* [w] Process callback. Can be specified instead of the read callback if any channel format changes occur between input and output. This also replaces shouldiprocess and should return an error if the effect is to be bypassed. Can be null. */ - FMOD_DSP_SETPOSITION_CALLBACK setposition; /* [w] Set position callback. This is called if the unit wants to update its position info but not process data, or reset a cursor position internally if it is reading data from a certain source. Can be null. */ - - int numparameters; /* [w] Number of parameters used in this filter. The user finds this with DSP::getNumParameters */ - FMOD_DSP_PARAMETER_DESC **paramdesc; /* [w] Variable number of parameter structures. */ - FMOD_DSP_SETPARAM_FLOAT_CALLBACK setparameterfloat; /* [w] This is called when the user calls DSP::setParameterFloat. Can be null. */ - FMOD_DSP_SETPARAM_INT_CALLBACK setparameterint; /* [w] This is called when the user calls DSP::setParameterInt. Can be null. */ - FMOD_DSP_SETPARAM_BOOL_CALLBACK setparameterbool; /* [w] This is called when the user calls DSP::setParameterBool. Can be null. */ - FMOD_DSP_SETPARAM_DATA_CALLBACK setparameterdata; /* [w] This is called when the user calls DSP::setParameterData. Can be null. */ - FMOD_DSP_GETPARAM_FLOAT_CALLBACK getparameterfloat; /* [w] This is called when the user calls DSP::getParameterFloat. Can be null. */ - FMOD_DSP_GETPARAM_INT_CALLBACK getparameterint; /* [w] This is called when the user calls DSP::getParameterInt. Can be null. */ - FMOD_DSP_GETPARAM_BOOL_CALLBACK getparameterbool; /* [w] This is called when the user calls DSP::getParameterBool. Can be null. */ - FMOD_DSP_GETPARAM_DATA_CALLBACK getparameterdata; /* [w] This is called when the user calls DSP::getParameterData. Can be null. */ - FMOD_DSP_SHOULDIPROCESS_CALLBACK shouldiprocess; /* [w] This is called before processing. You can detect if inputs are idle and return FMOD_OK to process, or any other error code to avoid processing the effect. Use a count down timer to allow effect tails to process before idling! */ - void *userdata; /* [w] Optional. Specify 0 to ignore. This is user data to be attached to the DSP unit during creation. Access via DSP::getUserData. */ - - FMOD_DSP_SYSTEM_REGISTER_CALLBACK sys_register; /* [w] Register callback. This is called when DSP unit is loaded/registered. Useful for 'global'/per system object init for plugin. Can be null. */ - FMOD_DSP_SYSTEM_DEREGISTER_CALLBACK sys_deregister; /* [w] Deregister callback. This is called when DSP unit is unloaded/deregistered. Useful as 'global'/per system object shutdown for plugin. Can be null. */ - FMOD_DSP_SYSTEM_MIX_CALLBACK sys_mix; /* [w] System mix stage callback. This is called when the mixer starts to execute or is just finishing executing. Useful for 'global'/per system object once a mix update calls for a plugin. Can be null. */ - -} FMOD_DSP_DESCRIPTION; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Struct containing DFT callbacks for plugins, to enable a plugin to perform optimized time-frequency domain conversion. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_STATE_SYSTEMCALLBACKS -] -*/ -typedef struct FMOD_DSP_STATE_DFTCALLBACKS -{ - FMOD_DSP_DFT_FFTREAL fftreal; /* [r] Callback for performing an FFT on a real signal. */ - FMOD_DSP_DFT_IFFTREAL inversefftreal; /* [r] Callback for performing an inverse FFT to get a real signal. */ -} FMOD_DSP_STATE_DFTCALLBACKS; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Struct containing panning helper callbacks for plugins. - - [REMARKS] - These are experimental, please contact support@fmod.org for more information. - - [SEE_ALSO] - FMOD_DSP_STATE_SYSTEMCALLBACKS - FMOD_DSP_PAN_SURROUND_FLAGS -] -*/ -typedef struct FMOD_DSP_STATE_PAN_CALLBACKS -{ - FMOD_DSP_PAN_SUM_MONO_MATRIX summonomatrix; - FMOD_DSP_PAN_SUM_STEREO_MATRIX sumstereomatrix; - FMOD_DSP_PAN_SUM_SURROUND_MATRIX sumsurroundmatrix; - FMOD_DSP_PAN_SUM_MONO_TO_SURROUND_MATRIX summonotosurroundmatrix; - FMOD_DSP_PAN_SUM_STEREO_TO_SURROUND_MATRIX sumstereotosurroundmatrix; - FMOD_DSP_PAN_3D_GET_ROLLOFF_GAIN getrolloffgain; -} FMOD_DSP_STATE_PAN_CALLBACKS; - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Struct containing System level callbacks for plugins, to enable a plugin to query information about the system or allocate memory using FMOD's (and therefore possibly the game's) allocators. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_DSP_STATE - FMOD_DSP_STATE_DFTCALLBACKS - FMOD_DSP_STATE_PAN_CALLBACKS -] -*/ -typedef struct FMOD_DSP_STATE_SYSTEMCALLBACKS -{ - FMOD_MEMORY_ALLOC_CALLBACK alloc; /* [r] Memory allocation callback. Use this for all dynamic memory allocation within the plugin. */ - FMOD_MEMORY_REALLOC_CALLBACK realloc; /* [r] Memory reallocation callback. */ - FMOD_MEMORY_FREE_CALLBACK free; /* [r] Memory free callback. */ - FMOD_DSP_SYSTEM_GETSAMPLERATE getsamplerate; /* [r] Callback for getting the system samplerate. */ - FMOD_DSP_SYSTEM_GETBLOCKSIZE getblocksize; /* [r] Callback for getting the system's block size. DSPs will be requested to process blocks of varying length up to this size.*/ - FMOD_DSP_STATE_DFTCALLBACKS *dft; /* [r] Struct containing callbacks for performing FFTs and inverse FFTs. */ - FMOD_DSP_STATE_PAN_CALLBACKS *pancallbacks; /* [r] Pointer to a structure of callbacks for calculating pan, up-mix and down-mix matrices. */ - FMOD_DSP_SYSTEM_GETSPEAKERMODE getspeakermode; /* [r] Callback for getting the system's speaker modes. One is the mixer's default speaker mode, the other is the output mode the system is downmixing or upmixing to.*/ - FMOD_DSP_STATE_GETCLOCK getclock; /* [r] Callback for getting the clock of the current DSP, as well as the subset of the input buffer that contains the signal */ -} FMOD_DSP_STATE_SYSTEMCALLBACKS; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - DSP plugin structure that is passed into each callback. - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    -
    - 'systemobject' is an integer that relates to the System object that created the DSP or registered the DSP plugin. If only 1 System object is created then it should be 0. A second object would be 1 and so on. - FMOD_DSP_STATE_SYSTEMCALLBACKS::getsamplerate/getblocksize/getspeakermode could return different results so it could be relevant to plugin developers to monitor which object is being used. - - [SEE_ALSO] - FMOD_DSP_DESCRIPTION - FMOD_DSP_STATE_SYSTEMCALLBACKS -] -*/ -struct FMOD_DSP_STATE -{ - FMOD_DSP *instance; /* [r] Handle to the FMOD_DSP object the callback is associated with. Not to be modified. C++ users cast to FMOD::DSP to use. */ - void *plugindata; /* [r/w] Plugin writer created data the output author wants to attach to this object. */ - FMOD_CHANNELMASK channelmask; /* [r] Specifies which speakers the DSP effect is active on */ - FMOD_SPEAKERMODE source_speakermode; /* [r] Specifies which speaker mode the signal originated for information purposes, ie in case panning needs to be done differently. */ - float *sidechaindata; /* [r] The mixed result of all incoming sidechains is stored at this pointer address. */ - int sidechainchannels; /* [r] The number of channels of pcm data stored within the sidechain buffer. */ - FMOD_DSP_STATE_SYSTEMCALLBACKS *callbacks; /* [r] Struct containing callbacks for system level functionality. */ - int systemobject; /* [r] FMOD::System object index, relating to the System object that created this DSP. */ -}; - - -/* - Macro helpers for accessing FMOD_DSP_STATE_SYSTEMCALLBACKS -*/ -#define FMOD_DSP_STATE_MEMALLOC(_state, _size, _type, _str) (_state)->callbacks->alloc (_size, _type, _str); /* Pass in the FMOD_DSP_STATE handle, size in bytes to alloc, FMOD_MEMORY_TYPE type and optional char * string to identify where the alloc came from. */ -#define FMOD_DSP_STATE_MEMREALLOC(_state, _ptr, _size, _type, _str) (_state)->callbacks->realloc (_ptr, _size, _type, _str); /* Pass in the FMOD_DSP_STATE handle, optional existing memory pointer, size in bytes to alloc, FMOD_MEMORY_TYPE type and optional char * string to identify where the alloc came from. */ -#define FMOD_DSP_STATE_MEMFREE(_state, _ptr, _type, _str) (_state)->callbacks->free (_ptr, _type, _str); /* Pass in the FMOD_DSP_STATE handle, existing memory pointer, FMOD_MEMORY_TYPE type and optional char * string to identify where the free came from. */ -#define FMOD_DSP_STATE_GETSAMPLERATE(_state, _rate) (_state)->callbacks->getsamplerate (_state, _rate); /* Pass in the FMOD_DSP_STATE handle, and the address of an int to receive the system DSP sample rate. */ -#define FMOD_DSP_STATE_GETBLOCKSIZE(_state, _blocksize) (_state)->callbacks->getblocksize (_state, _blocksize); /* Pass in the FMOD_DSP_STATE handle, and the address of an unsigned int to receive the system DSP block size. */ -#define FMOD_DSP_STATE_GETSPEAKERMODE(_state, _speakermode_mix, _speakermode_out) (_state)->callbacks->getspeakermode(_state, _speakermode_mix, _speakermode_out); /* Pass in the FMOD_DSP_STATE handle, and the address of an unsigned int to receive the FMOD_SPEAKERMODE for the mixer, and for the mode the system is set to. */ -#define FMOD_DSP_STATE_FFTREAL(_state, _size, _signal, _dft, _window, _signalhop) (_state)->callbacks->dft->fftreal (_state, _size, _signal, _dft, _window, _signalhop); /* Pass in the FMOD_DSP_STATE handle, size of the signal and its DFT, a float buffer containing the signal and an FMOD_COMPLEX buffer to store the calculated DFT. */ -#define FMOD_DSP_STATE_IFFTREAL(_state, _size, _dft, _signal, _window, _signalhop) (_state)->callbacks->dft->inversefftreal(_state, _size, _dft, _signal, _window, _signalhop); /* Pass in the FMOD_DSP_STATE handle, size of the DFT and its signal, an FMOD_COMPLEX buffer containing the DFT and a float buffer to store the calculated signal. */ - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - DSP metering info used for retrieving metering info with DSP::getMeteringInfo - - [REMARKS] - Members marked with [r] mean the variable is modified by FMOD and is for reading purposes only. Do not change this value.
    - Members marked with [w] mean the variable can be written to. The user can set the value.
    - - [SEE_ALSO] - FMOD_SPEAKER - DSP::getMeteringInfo -] -*/ -typedef struct FMOD_DSP_METERING_INFO -{ - int numsamples; /* [r] The number of samples considered for this metering info. */ - float peaklevel[32]; /* [r] The peak level per channel. */ - float rmslevel[32]; /* [r] The rms level per channel. */ - short numchannels; /* [r] Number of channels. */ -} FMOD_DSP_METERING_INFO; - -#endif - diff --git a/fmodstudio/inc/fmod_dsp_effects.h b/fmodstudio/inc/fmod_dsp_effects.h deleted file mode 100644 index 5d858184..00000000 --- a/fmodstudio/inc/fmod_dsp_effects.h +++ /dev/null @@ -1,1153 +0,0 @@ -/* ========================================================================================== */ -/* FMOD Studio - Built-in effects header file. */ -/* Copyright (c), Firelight Technologies Pty, Ltd. 2004-2016. */ -/* */ -/* In this header you can find parameter structures for FMOD system registered DSP effects */ -/* and generators. */ -/* */ -/* ========================================================================================== */ - -#ifndef _FMOD_DSP_EFFECTS_H -#define _FMOD_DSP_EFFECTS_H - -/* -[ENUM] -[ - [DESCRIPTION] - These definitions can be used for creating FMOD defined special effects or DSP units. - - [REMARKS] - To get them to be active, first create the unit, then add it somewhere into the DSP network, - either at the front of the network near the soundcard unit to affect the global output - (by using System::getDSPHead), or on a single channel (using Channel::getDSPHead). - - [SEE_ALSO] - System::createDSPByType -] -*/ -typedef enum -{ - FMOD_DSP_TYPE_UNKNOWN, /* This unit was created via a non FMOD plugin so has an unknown purpose. */ - FMOD_DSP_TYPE_MIXER, /* This unit does nothing but take inputs and mix them together then feed the result to the soundcard unit. */ - FMOD_DSP_TYPE_OSCILLATOR, /* This unit generates sine/square/saw/triangle or noise tones. */ - FMOD_DSP_TYPE_LOWPASS, /* This unit filters sound using a high quality, resonant lowpass filter algorithm but consumes more CPU time. */ - FMOD_DSP_TYPE_ITLOWPASS, /* This unit filters sound using a resonant lowpass filter algorithm that is used in Impulse Tracker, but with limited cutoff range (0 to 8060hz). */ - FMOD_DSP_TYPE_HIGHPASS, /* This unit filters sound using a resonant highpass filter algorithm. */ - FMOD_DSP_TYPE_ECHO, /* This unit produces an echo on the sound and fades out at the desired rate. */ - FMOD_DSP_TYPE_FADER, /* This unit pans and scales the volume of a unit. */ - FMOD_DSP_TYPE_FLANGE, /* This unit produces a flange effect on the sound. */ - FMOD_DSP_TYPE_DISTORTION, /* This unit distorts the sound. */ - FMOD_DSP_TYPE_NORMALIZE, /* This unit normalizes or amplifies the sound to a certain level. */ - FMOD_DSP_TYPE_LIMITER, /* This unit limits the sound to a certain level. */ - FMOD_DSP_TYPE_PARAMEQ, /* This unit attenuates or amplifies a selected frequency range. */ - FMOD_DSP_TYPE_PITCHSHIFT, /* This unit bends the pitch of a sound without changing the speed of playback. */ - FMOD_DSP_TYPE_CHORUS, /* This unit produces a chorus effect on the sound. */ - FMOD_DSP_TYPE_VSTPLUGIN, /* This unit allows the use of Steinberg VST plugins */ - FMOD_DSP_TYPE_WINAMPPLUGIN, /* This unit allows the use of Nullsoft Winamp plugins */ - FMOD_DSP_TYPE_ITECHO, /* This unit produces an echo on the sound and fades out at the desired rate as is used in Impulse Tracker. */ - FMOD_DSP_TYPE_COMPRESSOR, /* This unit implements dynamic compression (linked/unlinked multichannel, wideband) */ - FMOD_DSP_TYPE_SFXREVERB, /* This unit implements SFX reverb */ - FMOD_DSP_TYPE_LOWPASS_SIMPLE, /* This unit filters sound using a simple lowpass with no resonance, but has flexible cutoff and is fast. */ - FMOD_DSP_TYPE_DELAY, /* This unit produces different delays on individual channels of the sound. */ - FMOD_DSP_TYPE_TREMOLO, /* This unit produces a tremolo / chopper effect on the sound. */ - FMOD_DSP_TYPE_LADSPAPLUGIN, /* Unsupported / Deprecated. */ - FMOD_DSP_TYPE_SEND, /* This unit sends a copy of the signal to a return DSP anywhere in the DSP tree. */ - FMOD_DSP_TYPE_RETURN, /* This unit receives signals from a number of send DSPs. */ - FMOD_DSP_TYPE_HIGHPASS_SIMPLE, /* This unit filters sound using a simple highpass with no resonance, but has flexible cutoff and is fast. */ - FMOD_DSP_TYPE_PAN, /* This unit pans the signal, possibly upmixing or downmixing as well. */ - FMOD_DSP_TYPE_THREE_EQ, /* This unit is a three-band equalizer. */ - FMOD_DSP_TYPE_FFT, /* This unit simply analyzes the signal and provides spectrum information back through getParameter. */ - FMOD_DSP_TYPE_LOUDNESS_METER, /* This unit analyzes the loudness and true peak of the signal. */ - FMOD_DSP_TYPE_ENVELOPEFOLLOWER, /* This unit tracks the envelope of the input/sidechain signal. Format to be publicly disclosed soon. */ - FMOD_DSP_TYPE_CONVOLUTIONREVERB, /* This unit implements convolution reverb. */ - FMOD_DSP_TYPE_CHANNELMIX, /* This unit provides per signal channel gain, and output channel mapping to allow 1 multichannel signal made up of many groups of signals to map to a single output signal. */ - FMOD_DSP_TYPE_TRANSCEIVER, /* This unit 'sends' and 'receives' from a selection of up to 32 different slots. It is like a send/return but it uses global slots rather than returns as the destination. It also has other features. Multiple transceivers can receive from a single channel, or multiple transceivers can send to a single channel, or a combination of both. */ - FMOD_DSP_TYPE_OBJECTPAN, /* This unit sends the signal to a 3d object encoder like Dolby Atmos. Supports a subset of the FMOD_DSP_TYPE_PAN parameters. */ - - FMOD_DSP_TYPE_MAX, /* Maximum number of pre-defined DSP types. */ - FMOD_DSP_TYPE_FORCEINT = 65536 /* Makes sure this enum is signed 32bit. */ -} FMOD_DSP_TYPE; - -/* - =================================================================================================== - - FMOD built in effect parameters. - Use DSP::setParameter with these enums for the 'index' parameter. - - =================================================================================================== -*/ - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_OSCILLATOR filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::setParameterInt - DSP::getParameterFloat - DSP::getParameterInt - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_OSCILLATOR_TYPE, /* (Type:int) - Waveform type. 0 = sine. 1 = square. 2 = sawup. 3 = sawdown. 4 = triangle. 5 = noise. */ - FMOD_DSP_OSCILLATOR_RATE /* (Type:float) - Frequency of the sinewave in hz. 1.0 to 22000.0. Default = 220.0. */ -} FMOD_DSP_OSCILLATOR; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_LOWPASS filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_LOWPASS_CUTOFF, /* (Type:float) - Lowpass cutoff frequency in hz. 10.0 to 22000.0. Default = 5000.0. */ - FMOD_DSP_LOWPASS_RESONANCE /* (Type:float) - Lowpass resonance Q value. 1.0 to 10.0. Default = 1.0. */ -} FMOD_DSP_LOWPASS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ITLOWPASS filter.
    - This is different to the default FMOD_DSP_TYPE_ITLOWPASS filter in that it uses a different quality algorithm and is - the filter used to produce the correct sounding playback in .IT files.
    - FMOD Studio's .IT playback uses this filter.
    - - [REMARKS] - Note! This filter actually has a limited cutoff frequency below the specified maximum, due to its limited design, - so for a more open range filter use FMOD_DSP_LOWPASS or if you don't mind not having resonance, - FMOD_DSP_LOWPASS_SIMPLE.
    - The effective maximum cutoff is about 8060hz. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ITLOWPASS_CUTOFF, /* (Type:float) - Lowpass cutoff frequency in hz. 1.0 to 22000.0. Default = 5000.0/ */ - FMOD_DSP_ITLOWPASS_RESONANCE /* (Type:float) - Lowpass resonance Q value. 0.0 to 127.0. Default = 1.0. */ -} FMOD_DSP_ITLOWPASS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_HIGHPASS filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_HIGHPASS_CUTOFF, /* (Type:float) - Highpass cutoff frequency in hz. 1.0 to output 22000.0. Default = 5000.0. */ - FMOD_DSP_HIGHPASS_RESONANCE /* (Type:float) - Highpass resonance Q value. 1.0 to 10.0. Default = 1.0. */ -} FMOD_DSP_HIGHPASS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ECHO filter. - - [REMARKS] - Note. Every time the delay is changed, the plugin re-allocates the echo buffer. This means the echo will dissapear at that time while it refills its new buffer.
    - Larger echo delays result in larger amounts of memory allocated.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ECHO_DELAY, /* (Type:float) - Echo delay in ms. 10 to 5000. Default = 500. */ - FMOD_DSP_ECHO_FEEDBACK, /* (Type:float) - Echo decay per delay. 0 to 100. 100.0 = No decay, 0.0 = total decay (ie simple 1 line delay). Default = 50.0. */ - FMOD_DSP_ECHO_DRYLEVEL, /* (Type:float) - Original sound volume in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_ECHO_WETLEVEL /* (Type:float) - Volume of echo signal to pass to output in dB. -80.0 to 10.0. Default = 0. */ -} FMOD_DSP_ECHO; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_FLANGE filter. - - [REMARKS] - Flange is an effect where the signal is played twice at the same time, and one copy slides back and forth creating a whooshing or flanging effect.
    - As there are 2 copies of the same signal, by default each signal is given 50% mix, so that the total is not louder than the original unaffected signal.
    -
    - Flange depth is a percentage of a 10ms shift from the original signal. Anything above 10ms is not considered flange because to the ear it begins to 'echo' so 10ms is the highest value possible.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_FLANGE_MIX, /* (Type:float) - Percentage of wet signal in mix. 0 to 100. Default = 50. */ - FMOD_DSP_FLANGE_DEPTH, /* (Type:float) - Flange depth (percentage of 40ms delay). 0.01 to 1.0. Default = 1.0. */ - FMOD_DSP_FLANGE_RATE /* (Type:float) - Flange speed in hz. 0.0 to 20.0. Default = 0.1. */ -} FMOD_DSP_FLANGE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_DISTORTION filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_DISTORTION_LEVEL /* (Type:float) - Distortion value. 0.0 to 1.0. Default = 0.5. */ -} FMOD_DSP_DISTORTION; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_NORMALIZE filter. - - [REMARKS] - Normalize amplifies the sound based on the maximum peaks within the signal.
    - For example if the maximum peaks in the signal were 50% of the bandwidth, it would scale the whole sound by 2.
    - The lower threshold value makes the normalizer ignores peaks below a certain point, to avoid over-amplification if a loud signal suddenly came in, and also to avoid amplifying to maximum things like background hiss.
    -
    - Because FMOD is a realtime audio processor, it doesn't have the luxury of knowing the peak for the whole sound (ie it can't see into the future), so it has to process data as it comes in.
    - To avoid very sudden changes in volume level based on small samples of new data, fmod fades towards the desired amplification which makes for smooth gain control. The fadetime parameter can control this.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_NORMALIZE_FADETIME, /* (Type:float) - Time to ramp the silence to full in ms. 0.0 to 20000.0. Default = 5000.0. */ - FMOD_DSP_NORMALIZE_THRESHHOLD, /* (Type:float) - Lower volume range threshold to ignore. 0.0 to 1.0. Default = 0.1. Raise higher to stop amplification of very quiet signals. */ - FMOD_DSP_NORMALIZE_MAXAMP /* (Type:float) - Maximum amplification allowed. 1.0 to 100000.0. Default = 20.0. 1.0 = no amplifaction, higher values allow more boost. */ -} FMOD_DSP_NORMALIZE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_LIMITER filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_LIMITER_RELEASETIME, /* (Type:float) - Time to ramp the silence to full in ms. 1.0 to 1000.0. Default = 10.0. */ - FMOD_DSP_LIMITER_CEILING, /* (Type:float) - Maximum level of the output signal in dB. -12.0 to 0.0. Default = 0.0. */ - FMOD_DSP_LIMITER_MAXIMIZERGAIN, /* (Type:float) - Maximum amplification allowed in dB. 0.0 to 12.0. Default = 0.0. 0.0 = no amplifaction, higher values allow more boost. */ - FMOD_DSP_LIMITER_MODE, /* (Type:float) - Channel processing mode. 0 or 1. Default = 0. 0 = Independent (limiter per channel), 1 = Linked. */ -} FMOD_DSP_LIMITER; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_PARAMEQ filter. - - [REMARKS] - Parametric EQ is a bandpass filter that attenuates or amplifies a selected frequency and its neighbouring frequencies.
    -
    - To create a multi-band EQ create multiple FMOD_DSP_TYPE_PARAMEQ units and set each unit to different frequencies, for example 1000hz, 2000hz, 4000hz, 8000hz, 16000hz with a range of 1 octave each.
    -
    - When a frequency has its gain set to 1.0, the sound will be unaffected and represents the original signal exactly.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_PARAMEQ_CENTER, /* (Type:float) - Frequency center. 20.0 to 22000.0. Default = 8000.0. */ - FMOD_DSP_PARAMEQ_BANDWIDTH, /* (Type:float) - Octave range around the center frequency to filter. 0.2 to 5.0. Default = 1.0. */ - FMOD_DSP_PARAMEQ_GAIN /* (Type:float) - Frequency Gain in dB. -30 to 30. Default = 0. */ -} FMOD_DSP_PARAMEQ; - - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_PITCHSHIFT filter. - - [REMARKS] - This pitch shifting unit can be used to change the pitch of a sound without speeding it up or slowing it down.
    - It can also be used for time stretching or scaling, for example if the pitch was doubled, and the frequency of the sound was halved, the pitch of the sound would sound correct but it would be twice as slow.
    -
    - Warning! This filter is very computationally expensive! Similar to a vocoder, it requires several overlapping FFT and IFFT's to produce smooth output, and can require around 440mhz for 1 stereo 48khz signal using the default settings.
    - Reducing the signal to mono will half the cpu usage.
    - Reducing this will lower audio quality, but what settings to use are largely dependant on the sound being played. A noisy polyphonic signal will need higher fft size compared to a speaking voice for example.
    -
    - This pitch shifter is based on the pitch shifter code at http://www.dspdimension.com, written by Stephan M. Bernsee.
    - The original code is COPYRIGHT 1999-2003 Stephan M. Bernsee .
    -
    - 'maxchannels' dictates the amount of memory allocated. By default, the maxchannels value is 0. If FMOD is set to stereo, the pitch shift unit will allocate enough memory for 2 channels. If it is 5.1, it will allocate enough memory for a 6 channel pitch shift, etc.
    - If the pitch shift effect is only ever applied to the global mix (ie it was added with ChannelGroup::addDSP), then 0 is the value to set as it will be enough to handle all speaker modes.
    - When the pitch shift is added to a channel (ie Channel::addDSP) then the channel count that comes in could be anything from 1 to 8 possibly. It is only in this case where you might want to increase the channel count above the output's channel count.
    - If a channel pitch shift is set to a lower number than the sound's channel count that is coming in, it will not pitch shift the sound.
    -
    - NOTE! Not supported on PlayStation 3.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - ChannelGroup::addDSP - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_PITCHSHIFT_PITCH, /* (Type:float) - Pitch value. 0.5 to 2.0. Default = 1.0. 0.5 = one octave down, 2.0 = one octave up. 1.0 does not change the pitch. */ - FMOD_DSP_PITCHSHIFT_FFTSIZE, /* (Type:float) - FFT window size. 256, 512, 1024, 2048, 4096. Default = 1024. Increase this to reduce 'smearing'. This effect is a warbling sound similar to when an mp3 is encoded at very low bitrates. */ - FMOD_DSP_PITCHSHIFT_OVERLAP, /* (Type:float) - Removed. Do not use. FMOD now uses 4 overlaps and cannot be changed. */ - FMOD_DSP_PITCHSHIFT_MAXCHANNELS /* (Type:float) - Maximum channels supported. 0 to 16. 0 = same as fmod's default output polyphony, 1 = mono, 2 = stereo etc. See remarks for more. Default = 0. It is suggested to leave at 0! */ -} FMOD_DSP_PITCHSHIFT; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_CHORUS filter. - - [REMARKS] - Chorous is an effect where the sound is more 'spacious' due to 1 to 3 versions of the sound being played along side the original signal but with the pitch of each copy modulating on a sine wave.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_CHORUS_MIX, /* (Type:float) - Volume of original signal to pass to output. 0.0 to 100.0. Default = 50.0. */ - FMOD_DSP_CHORUS_RATE, /* (Type:float) - Chorus modulation rate in Hz. 0.0 to 20.0. Default = 0.8 Hz. */ - FMOD_DSP_CHORUS_DEPTH, /* (Type:float) - Chorus modulation depth. 0.0 to 100.0. Default = 3.0. */ -} FMOD_DSP_CHORUS; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ITECHO filter.
    - This is effectively a software based echo filter that emulates the DirectX DMO echo effect. Impulse tracker files can support this, and FMOD will produce the effect on ANY platform, not just those that support DirectX effects!
    - - [REMARKS] - Note. Every time the delay is changed, the plugin re-allocates the echo buffer. This means the echo will dissapear at that time while it refills its new buffer.
    - Larger echo delays result in larger amounts of memory allocated.
    -
    - As this is a stereo filter made mainly for IT playback, it is targeted for stereo signals.
    - With mono signals only the FMOD_DSP_ITECHO_LEFTDELAY is used.
    - For multichannel signals (>2) there will be no echo on those channels.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ITECHO_WETDRYMIX, /* (Type:float) - Ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from 0.0 through 100.0 (all wet). Default = 50. */ - FMOD_DSP_ITECHO_FEEDBACK, /* (Type:float) - Percentage of output fed back into input, in the range from 0.0 through 100.0. Default = 50. */ - FMOD_DSP_ITECHO_LEFTDELAY, /* (Type:float) - Delay for left channel, in milliseconds, in the range from 1.0 through 2000.0. Default = 500 ms. */ - FMOD_DSP_ITECHO_RIGHTDELAY, /* (Type:float) - Delay for right channel, in milliseconds, in the range from 1.0 through 2000.0. Default = 500 ms. */ - FMOD_DSP_ITECHO_PANDELAY /* (Type:float) - Value that specifies whether to swap left and right delays with each successive echo. Ranges from 0.0 (equivalent to FALSE) to 1.0 (equivalent to TRUE), meaning no swap. Default = 0. CURRENTLY NOT SUPPORTED. */ -} FMOD_DSP_ITECHO; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_COMPRESSOR unit. - This is a multichannel software limiter that is uniform across the whole spectrum. - - [REMARKS] - The limiter is not guaranteed to catch every peak above the threshold level, - because it cannot apply gain reduction instantaneously - the time delay is - determined by the attack time. However setting the attack time too short will - distort the sound, so it is a compromise. High level peaks can be avoided by - using a short attack time - but not too short, and setting the threshold a few - decibels below the critical level. -
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterBool - DSP::getParameterBool - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_COMPRESSOR_THRESHOLD, /* (Type:float) - Threshold level (dB) in the range from -80 through 0. Default = 0. */ - FMOD_DSP_COMPRESSOR_RATIO, /* (Type:float) - Compression Ratio (dB/dB) in the range from 1 to 50. Default = 2.5. */ - FMOD_DSP_COMPRESSOR_ATTACK, /* (Type:float) - Attack time (milliseconds), in the range from 0.1 through 1000. Default value is 20. */ - FMOD_DSP_COMPRESSOR_RELEASE, /* (Type:float) - Release time (milliseconds), in the range from 10 through 5000. Default value is 100 */ - FMOD_DSP_COMPRESSOR_GAINMAKEUP, /* (Type:float) - Make-up gain (dB) applied after limiting, in the range from 0 through 30. Default = 0. */ - FMOD_DSP_COMPRESSOR_USESIDECHAIN, /* (Type:data) - Data of type FMOD_DSP_PARAMETER_SIDECHAIN. Whether to analyse the sidechain signal instead of the input signal. Default is { false } */ - FMOD_DSP_COMPRESSOR_LINKED /* (Type:bool) - FALSE = Independent (compressor per channel), TRUE = Linked. Default = TRUE. */ -} FMOD_DSP_COMPRESSOR; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_SFXREVERB unit.
    - - [REMARKS] - This is a high quality I3DL2 based reverb.
    - On top of the I3DL2 property set, "Dry Level" is also included to allow the dry mix to be changed.
    -
    - These properties can be set with presets in FMOD_REVERB_PRESETS. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE - FMOD_REVERB_PRESETS -] -*/ -typedef enum -{ - FMOD_DSP_SFXREVERB_DECAYTIME, /* (Type:float) - Decay Time : Reverberation decay time at low-frequencies in milliseconds. Ranges from 100.0 to 20000.0. Default is 1500. */ - FMOD_DSP_SFXREVERB_EARLYDELAY, /* (Type:float) - Early Delay : Delay time of first reflection in milliseconds. Ranges from 0.0 to 300.0. Default is 20. */ - FMOD_DSP_SFXREVERB_LATEDELAY, /* (Type:float) - Reverb Delay : Late reverberation delay time relative to first reflection in milliseconds. Ranges from 0.0 to 100.0. Default is 40. */ - FMOD_DSP_SFXREVERB_HFREFERENCE, /* (Type:float) - HF Reference : Reference frequency for high-frequency decay in Hz. Ranges from 20.0 to 20000.0. Default is 5000. */ - FMOD_DSP_SFXREVERB_HFDECAYRATIO, /* (Type:float) - Decay HF Ratio : High-frequency decay time relative to decay time in percent. Ranges from 10.0 to 100.0. Default is 50. */ - FMOD_DSP_SFXREVERB_DIFFUSION, /* (Type:float) - Diffusion : Reverberation diffusion (echo density) in percent. Ranges from 0.0 to 100.0. Default is 100. */ - FMOD_DSP_SFXREVERB_DENSITY, /* (Type:float) - Density : Reverberation density (modal density) in percent. Ranges from 0.0 to 100.0. Default is 100. */ - FMOD_DSP_SFXREVERB_LOWSHELFFREQUENCY, /* (Type:float) - Low Shelf Frequency : Transition frequency of low-shelf filter in Hz. Ranges from 20.0 to 1000.0. Default is 250. */ - FMOD_DSP_SFXREVERB_LOWSHELFGAIN, /* (Type:float) - Low Shelf Gain : Gain of low-shelf filter in dB. Ranges from -36.0 to 12.0. Default is 0. */ - FMOD_DSP_SFXREVERB_HIGHCUT, /* (Type:float) - High Cut : Cutoff frequency of low-pass filter in Hz. Ranges from 20.0 to 20000.0. Default is 20000. */ - FMOD_DSP_SFXREVERB_EARLYLATEMIX, /* (Type:float) - Early/Late Mix : Blend ratio of late reverb to early reflections in percent. Ranges from 0.0 to 100.0. Default is 50. */ - FMOD_DSP_SFXREVERB_WETLEVEL, /* (Type:float) - Wet Level : Reverb signal level in dB. Ranges from -80.0 to 20.0. Default is -6. */ - FMOD_DSP_SFXREVERB_DRYLEVEL /* (Type:float) - Dry Level : Dry signal level in dB. Ranges from -80.0 to 20.0. Default is 0. */ -} FMOD_DSP_SFXREVERB; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_LOWPASS_SIMPLE filter.
    - This is a very simple low pass filter, based on two single-pole RC time-constant modules. - The emphasis is on speed rather than accuracy, so this should not be used for task requiring critical filtering.
    - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_LOWPASS_SIMPLE_CUTOFF /* (Type:float) - Lowpass cutoff frequency in hz. 10.0 to 22000.0. Default = 5000.0 */ -} FMOD_DSP_LOWPASS_SIMPLE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_DELAY filter. - - [REMARKS] - Note. Every time MaxDelay is changed, the plugin re-allocates the delay buffer. This means the delay will dissapear at that time while it refills its new buffer.
    - A larger MaxDelay results in larger amounts of memory allocated.
    - Channel delays above MaxDelay will be clipped to MaxDelay and the delay buffer will not be resized.
    -
    - NOTE! Not supported on PlayStation 3. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_DELAY_CH0, /* (Type:float) - Channel #0 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH1, /* (Type:float) - Channel #1 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH2, /* (Type:float) - Channel #2 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH3, /* (Type:float) - Channel #3 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH4, /* (Type:float) - Channel #4 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH5, /* (Type:float) - Channel #5 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH6, /* (Type:float) - Channel #6 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH7, /* (Type:float) - Channel #7 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH8, /* (Type:float) - Channel #8 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH9, /* (Type:float) - Channel #9 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH10, /* (Type:float) - Channel #10 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH11, /* (Type:float) - Channel #11 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH12, /* (Type:float) - Channel #12 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH13, /* (Type:float) - Channel #13 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH14, /* (Type:float) - Channel #14 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_CH15, /* (Type:float) - Channel #15 Delay in ms. 0 to 10000. Default = 0. */ - FMOD_DSP_DELAY_MAXDELAY /* (Type:float) - Maximum delay in ms. 0 to 10000. Default = 10. */ -} FMOD_DSP_DELAY; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_TREMOLO filter. - - [REMARKS] - The tremolo effect varies the amplitude of a sound. Depending on the settings, this unit can produce a tremolo, chopper or auto-pan effect.
    -
    - The shape of the LFO (low freq. oscillator) can morphed between sine, triangle and sawtooth waves using the FMOD_DSP_TREMOLO_SHAPE and FMOD_DSP_TREMOLO_SKEW parameters.
    - FMOD_DSP_TREMOLO_DUTY and FMOD_DSP_TREMOLO_SQUARE are useful for a chopper-type effect where the first controls the on-time duration and second controls the flatness of the envelope.
    - FMOD_DSP_TREMOLO_SPREAD varies the LFO phase between channels to get an auto-pan effect. This works best with a sine shape LFO.
    - The LFO can be synchronized using the FMOD_DSP_TREMOLO_PHASE parameter which sets its instantaneous phase.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_TREMOLO_FREQUENCY, /* (Type:float) - LFO frequency in Hz. 0.1 to 20. Default = 5. */ - FMOD_DSP_TREMOLO_DEPTH, /* (Type:float) - Tremolo depth. 0 to 1. Default = 1. */ - FMOD_DSP_TREMOLO_SHAPE, /* (Type:float) - LFO shape morph between triangle and sine. 0 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_SKEW, /* (Type:float) - Time-skewing of LFO cycle. -1 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_DUTY, /* (Type:float) - LFO on-time. 0 to 1. Default = 0.5. */ - FMOD_DSP_TREMOLO_SQUARE, /* (Type:float) - Flatness of the LFO shape. 0 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_PHASE, /* (Type:float) - Instantaneous LFO phase. 0 to 1. Default = 0. */ - FMOD_DSP_TREMOLO_SPREAD /* (Type:float) - Rotation / auto-pan effect. -1 to 1. Default = 0. */ -} FMOD_DSP_TREMOLO; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_SEND DSP. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_SEND_RETURNID, /* (Type:int) - ID of the Return DSP this send is connected to (integer values only). -1 indicates no connected Return DSP. Default = -1. */ - FMOD_DSP_SEND_LEVEL, /* (Type:float) - Send level. 0.0 to 1.0. Default = 1.0 */ -} FMOD_DSP_SEND; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_RETURN DSP. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_RETURN_ID, /* (Type:int) - [r] ID of this Return DSP. Read-only. Default = -1. */ - FMOD_DSP_RETURN_INPUT_SPEAKER_MODE /* (Type:int) - [r/w] Input speaker mode of this return. Default = FMOD_SPEAKERMODE_DEFAULT. */ -} FMOD_DSP_RETURN; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_HIGHPASS_SIMPLE filter.
    - This is a very simple single-order high pass filter. - The emphasis is on speed rather than accuracy, so this should not be used for task requiring critical filtering.
    - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_HIGHPASS_SIMPLE_CUTOFF /* (Type:float) - Highpass cutoff frequency in hz. 10.0 to 22000.0. Default = 1000.0 */ -} FMOD_DSP_HIGHPASS_SIMPLE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISTRIBUTED, /* The parts of a stereo sound are spread around desination speakers based on FMOD_DSP_PAN_SURROUND_EXTENT / FMOD_DSP_PAN_SURROUND_DIRECTION */ - FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE /* The L/R parts of a stereo sound are rotated around a circle based on FMOD_DSP_PAN_SURROUND_STEREO_AXIS / FMOD_DSP_PAN_SURROUND_STEREO_SEPARATION. */ -} FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_MODE parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_MODE_MONO, - FMOD_DSP_PAN_MODE_STEREO, - FMOD_DSP_PAN_MODE_SURROUND -} FMOD_DSP_PAN_MODE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_3D_ROLLOFF parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED, - FMOD_DSP_PAN_3D_ROLLOFF_LINEAR, - FMOD_DSP_PAN_3D_ROLLOFF_INVERSE, - FMOD_DSP_PAN_3D_ROLLOFF_INVERSETAPERED, - FMOD_DSP_PAN_3D_ROLLOFF_CUSTOM -} FMOD_DSP_PAN_3D_ROLLOFF_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_PAN_3D_EXTENT_MODE parameter of the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_PAN -] -*/ -typedef enum -{ - FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO, - FMOD_DSP_PAN_3D_EXTENT_MODE_USER, - FMOD_DSP_PAN_3D_EXTENT_MODE_OFF -} FMOD_DSP_PAN_3D_EXTENT_MODE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_PAN DSP. - - [REMARKS] - FMOD_DSP_PAN_3D_PAN_BLEND controls the percentage of the effect supplied by FMOD_DSP_PAN_SURROUND_DIRECTION and FMOD_DSP_PAN_SURROUND_EXTENT. - - For FMOD_DSP_PAN_3D_POSITION, the following members in the FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI struct should be non zero. - - numlisteners - This is typically 1, can be up to 8. Typically more than 1 is only used for split screen purposes. The FMOD Panner will average angles and produce the best compromise for panning and attenuation. - - relative[listenernum].position - This is the delta between the listener position and the sound position. Typically the listener position is subtracted from the sound position. - - relative[listenernum].forward - This is the sound's forward vector. Optional, set to 0,0,1 if not needed. This is only relevant for more than mono sounds in 3D, that are spread amongst the destination speakers at the time of panning. - If the sound rotates then the L/R part of a stereo sound will rotate amongst its destination speakers. - If the sound has moved and pinpointed into a single speaker, rotation of the sound will have no effect as at that point the channels are collapsed into a single point. - - For FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE, when it is set to FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE, only FMOD_DSP_PAN_SURROUND_STEREO_SEPARATION and FMOD_DSP_PAN_SURROUND_STEREO_AXIS are used. - When it is set to FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISTRIBUTED, then standard FMOD_DSP_PAN_SURROUND_DIRECTION/FMOD_DSP_PAN_SURROUND_EXTENT parameters are used. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_PAN_MODE, /* (Type:int) - Panner mode. FMOD_DSP_PAN_MODE_MONO for mono down-mix, FMOD_DSP_PAN_MODE_STEREO for stereo panning or FMOD_DSP_PAN_MODE_SURROUND for surround panning. Default = FMOD_DSP_PAN_MODE_SURROUND */ - FMOD_DSP_PAN_STEREO_POSITION, /* (Type:float) - 2D Stereo pan position. -100.0 to 100.0. Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_DIRECTION, /* (Type:float) - 2D Surround pan direction. Direction from center point of panning circle. -180.0 (degrees) to 180.0 (degrees). 0 = front center, -180 or +180 = rear speakers center point. Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_EXTENT, /* (Type:float) - 2D Surround pan extent. Distance from center point of panning circle. 0.0 (degrees) to 360.0 (degrees). Default = 360.0. */ - FMOD_DSP_PAN_SURROUND_ROTATION, /* (Type:float) - 2D Surround pan rotation. -180.0 (degrees) to 180.0 (degrees). Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_LFE_LEVEL, /* (Type:float) - 2D Surround pan LFE level. 2D LFE level in dB. -80.0 (db) to 20.0 (db). Default = 0.0. */ - FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE, /* (Type:int) - Stereo-To-Surround Mode. FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISTRIBUTED to FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE. Default = FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE.*/ - FMOD_DSP_PAN_SURROUND_STEREO_SEPARATION, /* (Type:float) - Stereo-To-Surround Stereo For FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE mode. Separation/width of L/R parts of stereo sound. -180.0 (degrees) to +180.0 (degrees). Default = 60.0. */ - FMOD_DSP_PAN_SURROUND_STEREO_AXIS, /* (Type:float) - Stereo-To-Surround Stereo For FMOD_DSP_PAN_SURROUND_FROM_STEREO_MODE_DISCRETE mode. Axis/rotation of L/R parts of stereo sound. -180.0 (degrees) to +180.0 (degrees). Default = 0.0. */ - FMOD_DSP_PAN_ENABLED_SURROUND_SPEAKERS, /* (Type:int) - Speakers Enabled. Bitmask for each speaker from 0 to 32 to be considered by panner. Use to disable speakers from being panned to. 0 to 0xFFF. Default = 0xFFF (All on). */ - FMOD_DSP_PAN_3D_POSITION, /* (Type:data) - 3D Position. Data of type FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI. See remarks on what to fill out. */ - FMOD_DSP_PAN_3D_ROLLOFF, /* (Type:int) - 3D Rolloff. FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED to FMOD_DSP_PAN_3D_ROLLOFF_CUSTOM. Default = FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED. */ - FMOD_DSP_PAN_3D_MIN_DISTANCE, /* (Type:float) - 3D Min Distance. 0.0 to 1e+18f. Default = 1.0. */ - FMOD_DSP_PAN_3D_MAX_DISTANCE, /* (Type:float) - 3D Max Distance. 0.0 to 1e+18f. Default = 20.0. */ - FMOD_DSP_PAN_3D_EXTENT_MODE, /* (Type:int) - 3D Extent Mode. FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO to FMOD_DSP_PAN_3D_EXTENT_MODE_OFF. Default = FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO. */ - FMOD_DSP_PAN_3D_SOUND_SIZE, /* (Type:float) - 3D Sound Size. 0.0 to 1e+18f. Default = 0.0. */ - FMOD_DSP_PAN_3D_MIN_EXTENT, /* (Type:float) - 3D Min Extent. 0.0 (degrees) to 360.0 (degrees). Default = 0.0. */ - FMOD_DSP_PAN_3D_PAN_BLEND, /* (Type:float) - 3D Pan Blend. 0.0 (fully 2D) to 1.0 (fully 3D). Default = 0.0. */ - FMOD_DSP_PAN_LFE_UPMIX_ENABLED, /* (Type:int) - LFE Upmix Enabled. Determines whether non-LFE source channels should mix to the LFE or leave it alone. 0 (off) to 1 (on). Default = 0 (off). */ - FMOD_DSP_PAN_OVERALL_GAIN, /* (Type:data) - Overall gain. For information only, not set by user. Data of type FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN to provide to FMOD, to allow FMOD to know the DSP is scaling the signal for virtualization purposes. */ - FMOD_DSP_PAN_SURROUND_SPEAKER_MODE /* (Type:int) - Surround speaker mode. Target speaker mode for surround panning. Default = FMOD_SPEAKERMODE_DEFAULT. */ -} FMOD_DSP_PAN; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter values for the FMOD_DSP_THREE_EQ_CROSSOVERSLOPE parameter of the FMOD_DSP_TYPE_THREE_EQ DSP. - - [REMARKS] - - [SEE_ALSO] - FMOD_DSP_THREE_EQ -] -*/ -typedef enum -{ - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_12DB, - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_24DB, - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_48DB -} FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_TYPE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_THREE_EQ filter. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_TYPE - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_THREE_EQ_LOWGAIN, /* (Type:float) - Low frequency gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_THREE_EQ_MIDGAIN, /* (Type:float) - Mid frequency gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_THREE_EQ_HIGHGAIN, /* (Type:float) - High frequency gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_THREE_EQ_LOWCROSSOVER, /* (Type:float) - Low-to-mid crossover frequency in Hz. 10.0 to 22000.0. Default = 400.0. */ - FMOD_DSP_THREE_EQ_HIGHCROSSOVER, /* (Type:float) - Mid-to-high crossover frequency in Hz. 10.0 to 22000.0. Default = 4000.0. */ - FMOD_DSP_THREE_EQ_CROSSOVERSLOPE /* (Type:int) - Crossover Slope. 0 = 12dB/Octave, 1 = 24dB/Octave, 2 = 48dB/Octave. Default = 1 (24dB/Octave). */ -} FMOD_DSP_THREE_EQ; - - -/* -[ENUM] -[ - [DESCRIPTION] - List of windowing methods for the FMOD_DSP_TYPE_FFT unit. Used in spectrum analysis to reduce leakage / transient signals intefering with the analysis.
    - This is a problem with analysis of continuous signals that only have a small portion of the signal sample (the fft window size).
    - Windowing the signal with a curve or triangle tapers the sides of the fft window to help alleviate this problem. - - [REMARKS] - Cyclic signals such as a sine wave that repeat their cycle in a multiple of the window size do not need windowing.
    - I.e. If the sine wave repeats every 1024, 512, 256 etc samples and the FMOD fft window is 1024, then the signal would not need windowing.
    - Not windowing is the same as FMOD_DSP_FFT_WINDOW_RECT, which is the default.
    - If the cycle of the signal (ie the sine wave) is not a multiple of the window size, it will cause frequency abnormalities, so a different windowing method is needed.
    - -
    - FMOD_DSP_FFT_WINDOW_RECT.
    -
    -
    - FMOD_DSP_FFT_WINDOW_TRIANGLE.
    -
    -
    - FMOD_DSP_FFT_WINDOW_HAMMING.
    -
    -
    - FMOD_DSP_FFT_WINDOW_HANNING.
    -
    -
    - FMOD_DSP_FFT_WINDOW_BLACKMAN.
    -
    -
    - FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS.
    - -
    - - [SEE_ALSO] - FMOD_DSP_FFT -] -*/ -typedef enum -{ - FMOD_DSP_FFT_WINDOW_RECT, /* w[n] = 1.0 */ - FMOD_DSP_FFT_WINDOW_TRIANGLE, /* w[n] = TRI(2n/N) */ - FMOD_DSP_FFT_WINDOW_HAMMING, /* w[n] = 0.54 - (0.46 * COS(n/N) ) */ - FMOD_DSP_FFT_WINDOW_HANNING, /* w[n] = 0.5 * (1.0 - COS(n/N) ) */ - FMOD_DSP_FFT_WINDOW_BLACKMAN, /* w[n] = 0.42 - (0.5 * COS(n/N) ) + (0.08 * COS(2.0 * n/N) ) */ - FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS /* w[n] = 0.35875 - (0.48829 * COS(1.0 * n/N)) + (0.14128 * COS(2.0 * n/N)) - (0.01168 * COS(3.0 * n/N)) */ -} FMOD_DSP_FFT_WINDOW; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_FFT dsp effect. - - [REMARKS] - Set the attributes for the spectrum analysis with FMOD_DSP_FFT_WINDOWSIZE and FMOD_DSP_FFT_WINDOWTYPE, and retrieve the results with FMOD_DSP_FFT_SPECTRUM and FMOD_DSP_FFT_DOMINANT_FREQ. - FMOD_DSP_FFT_SPECTRUM stores its data in the FMOD_DSP_PARAMETER_DATA_TYPE_FFT. You will need to cast to this structure to get the right data. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE - FMOD_DSP_FFT_WINDOW -] -*/ -typedef enum -{ - FMOD_DSP_FFT_WINDOWSIZE, /* (Type:int) - [r/w] Must be a power of 2 between 128 and 16384. 128, 256, 512, 1024, 2048, 4096, 8192, 16384 are accepted. Default = 2048. */ - FMOD_DSP_FFT_WINDOWTYPE, /* (Type:int) - [r/w] Refer to FMOD_DSP_FFT_WINDOW enumeration. Default = FMOD_DSP_FFT_WINDOW_HAMMING. */ - FMOD_DSP_FFT_SPECTRUMDATA, /* (Type:data) - [r] Returns the current spectrum values between 0 and 1 for each 'fft bin'. Cast data to FMOD_DSP_PARAMETER_DATA_TYPE_FFT. Divide the niquist rate by the window size to get the hz value per entry. */ - FMOD_DSP_FFT_DOMINANT_FREQ /* (Type:float) - [r] Returns the dominant frequencies for each channel. */ -} FMOD_DSP_FFT; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_ENVELOPEFOLLOWER unit. - This is a simple envelope follower for tracking the signal level.
    - - [REMARKS] - This unit does not affect the incoming signal -
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_ENVELOPEFOLLOWER_ATTACK, /* (Type:float) [r/w] - Attack time (milliseconds), in the range from 0.1 through 1000. Default = 20. */ - FMOD_DSP_ENVELOPEFOLLOWER_RELEASE, /* (Type:float) [r/w] - Release time (milliseconds), in the range from 10 through 5000. Default = 100 */ - FMOD_DSP_ENVELOPEFOLLOWER_ENVELOPE, /* (Type:float) [r] - Current value of the envelope, in the range 0 to 1. Read-only. */ - FMOD_DSP_ENVELOPEFOLLOWER_USESIDECHAIN /* (Type:data) [r/w] - Data of type FMOD_DSP_PARAMETER_SIDECHAIN. Whether to analyse the sidechain signal instead of the input signal. Default is { false } */ -} FMOD_DSP_ENVELOPEFOLLOWER; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_CONVOLUTIONREVERB filter. - - [REMARKS] - Convolution Reverb reverb IR.
    - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_CONVOLUTION_REVERB_PARAM_IR, /* (Type:data) - [w] 16-bit reverb IR (short*) with an extra sample prepended to the start which specifies the number of channels. */ - FMOD_DSP_CONVOLUTION_REVERB_PARAM_WET, /* (Type:float) - [r/w] Volume of echo signal to pass to output in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CONVOLUTION_REVERB_PARAM_DRY /* (Type:float) - [r/w] Original sound volume in dB. -80.0 to 10.0. Default = 0. */ -} FMOD_DSP_CONVOLUTION_REVERB; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_CHANNELMIX_OUTPUTGROUPING parameter for FMOD_DSP_TYPE_CHANNELMIX effect. - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_CHANNELMIX_OUTPUT_DEFAULT, /* Output channel count = input channel count. Mapping: See FMOD_SPEAKER enumeration. */ - FMOD_DSP_CHANNELMIX_OUTPUT_ALLMONO, /* Output channel count = 1. Mapping: Mono, Mono, Mono, Mono, Mono, Mono, ... (each channel all the way up to FMOD_MAX_CHANNEL_WIDTH channels are treated as if they were mono) */ - FMOD_DSP_CHANNELMIX_OUTPUT_ALLSTEREO, /* Output channel count = 2. Mapping: Left, Right, Left, Right, Left, Right, ... (each pair of channels is treated as stereo all the way up to FMOD_MAX_CHANNEL_WIDTH channels) */ - FMOD_DSP_CHANNELMIX_OUTPUT_ALLQUAD, /* Output channel count = 4. Mapping: Repeating pattern of Front Left, Front Right, Surround Left, Surround Right. */ - FMOD_DSP_CHANNELMIX_OUTPUT_ALL5POINT1, /* Output channel count = 6. Mapping: Repeating pattern of Front Left, Front Right, Center, LFE, Surround Left, Surround Right. */ - FMOD_DSP_CHANNELMIX_OUTPUT_ALL7POINT1, /* Output channel count = 8. Mapping: Repeating pattern of Front Left, Front Right, Center, LFE, Surround Left, Surround Right, Back Left, Back Right. */ - FMOD_DSP_CHANNELMIX_OUTPUT_ALLLFE /* Output channel count = 6. Mapping: Repeating pattern of LFE in a 5.1 output signal. */ -} FMOD_DSP_CHANNELMIX_OUTPUT; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_CHANNELMIX filter. - - [REMARKS] - For FMOD_DSP_CHANNELMIX_OUTPUTGROUPING, this value will set the output speaker format for the DSP, and also map the incoming channels to the - outgoing channels in a round-robin fashion. Use this for example play a 32 channel input signal as if it were a repeating group of output signals. - Ie. - FMOD_DSP_CHANNELMIX_OUTPUT_ALLMONO = all incoming channels are mixed to a mono output. - FMOD_DSP_CHANNELMIX_OUTPUT_ALLSTEREO = all incoming channels are mixed to a stereo output, ie even incoming channels 0,2,4,6,etc are mixed to left, and odd incoming channels 1,3,5,7,etc are mixed to right. - FMOD_DSP_CHANNELMIX_OUTPUT_ALL5POINT1 = all incoming channels are mixed to a 5.1 output. If there are less than 6 coming in, it will just fill the first n channels in the 6 output channels. - If there are more, then it will repeat the input pattern to the output like it did with the stereo case, ie 12 incoming channels are mapped as 0-5 mixed to the - 5.1 output and 6 to 11 mapped to the 5.1 output. - FMOD_DSP_CHANNELMIX_OUTPUT_ALLLFE = all incoming channels are mixed to a 5.1 output but via the LFE channel only. - - [SEE_ALSO] - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterFloat - DSP::getParameterFloat - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_CHANNELMIX_OUTPUTGROUPING, /* (Type:int) - Refer to FMOD_DSP_CHANNELMIX_OUTPUT enumeration. Default = FMOD_DSP_CHANNELMIX_OUTPUT_DEFAULT. See remarks. */ - FMOD_DSP_CHANNELMIX_GAIN_CH0, /* (Type:float) - Channel #0 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH1, /* (Type:float) - Channel #1 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH2, /* (Type:float) - Channel #2 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH3, /* (Type:float) - Channel #3 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH4, /* (Type:float) - Channel #4 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH5, /* (Type:float) - Channel #5 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH6, /* (Type:float) - Channel #6 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH7, /* (Type:float) - Channel #7 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH8, /* (Type:float) - Channel #8 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH9, /* (Type:float) - Channel #9 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH10, /* (Type:float) - Channel #10 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH11, /* (Type:float) - Channel #11 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH12, /* (Type:float) - Channel #12 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH13, /* (Type:float) - Channel #13 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH14, /* (Type:float) - Channel #14 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH15, /* (Type:float) - Channel #15 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH16, /* (Type:float) - Channel #16 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH17, /* (Type:float) - Channel #17 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH18, /* (Type:float) - Channel #18 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH19, /* (Type:float) - Channel #19 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH20, /* (Type:float) - Channel #20 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH21, /* (Type:float) - Channel #21 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH22, /* (Type:float) - Channel #22 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH23, /* (Type:float) - Channel #23 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH24, /* (Type:float) - Channel #24 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH25, /* (Type:float) - Channel #25 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH26, /* (Type:float) - Channel #26 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH27, /* (Type:float) - Channel #27 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH28, /* (Type:float) - Channel #28 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH29, /* (Type:float) - Channel #29 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH30, /* (Type:float) - Channel #30 gain in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_CHANNELMIX_GAIN_CH31 /* (Type:float) - Channel #31 gain in dB. -80.0 to 10.0. Default = 0. */ -} FMOD_DSP_CHANNELMIX; - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TRANSCEIVER_SPEAKERMODE parameter for FMOD_DSP_TYPE_TRANSCEIVER effect. - - [REMARKS] - The speaker mode of a transceiver buffer (of which there are up to 32 of) is determined automatically depending on the signal flowing through the transceiver effect, or it can be forced. - Use a smaller fixed speaker mode buffer to save memory. - - Only relevant for transmitter dsps, as they control the format of the transceiver channel's buffer. - - If multiple transceivers transmit to a single buffer in different speaker modes, it will allocate memory for each speaker mode. This uses more memory than a single speaker mode. - If there are multiple receivers reading from a channel with multiple speaker modes, it will read them all and mix them together. - - If the system's speaker mode is stereo or mono, it will not create a 3rd buffer, it will just use the mono/stereo speaker mode buffer. - - [SEE_ALSO] - DSP::setParameterInt - DSP::getParameterInt - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_TRANSCEIVER_SPEAKERMODE_AUTO = -1, /* A transmitter will use whatever signal channel count coming in to the transmitter, to determine which speaker mode is allocated for the transceiver channel. */ - FMOD_DSP_TRANSCEIVER_SPEAKERMODE_MONO = 0, /* A transmitter will always downmix to a mono channel buffer. */ - FMOD_DSP_TRANSCEIVER_SPEAKERMODE_STEREO, /* A transmitter will always upmix or downmix to a stereo channel buffer. */ - FMOD_DSP_TRANSCEIVER_SPEAKERMODE_SURROUND, /* A transmitter will always upmix or downmix to a surround channel buffer. Surround is the speaker mode of the system above stereo, so could be quad/surround/5.1/7.1. */ -} FMOD_DSP_TRANSCEIVER_SPEAKERMODE; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_TRANSCEIVER filter. - - [REMARKS] - The transceiver only transmits and receives to a global array of 32 channels. The transceiver can be set to receiver mode (like a return) and can receive the signal at a variable gain (FMOD_DSP_TRANSCEIVER_GAIN). - The transceiver can also be set to transmit to a chnnel (like a send) and can transmit the signal with a variable gain (FMOD_DSP_TRANSCEIVER_GAIN). - - The FMOD_DSP_TRANSCEIVER_TRANSMITSPEAKERMODE is only applicable to the transmission format, not the receive format. This means this parameter is ignored in 'receive mode'. This allows receivers to receive at - the speaker mode of the user's choice. Receiving from a mono channel, is cheaper than receiving from a surround channel for example. - The 3 speaker modes FMOD_DSP_TRANSCEIVER_SPEAKERMODE_MONO, FMOD_DSP_TRANSCEIVER_SPEAKERMODE_STEREO, FMOD_DSP_TRANSCEIVER_SPEAKERMODE_SURROUND are stored as seperate buffers in memory for a tranmitter channel. - To save memory, use 1 common speaker mode for a transmitter. - - The transceiver is double buffered to avoid desyncing of transmitters and receivers. This means there will be a 1 block delay on a receiver, compared to the data sent from a transmitter. - - Multiple transmitters sending to the same channel will be mixed together. - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterBool - DSP::getParameterBool - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_TRANSCEIVER_TRANSMIT, /* (Type:bool) - [r/w] - FALSE = Transceiver is a 'receiver' (like a return) and accepts data from a channel. TRUE = Transceiver is a 'transmitter' (like a send). Default = FALSE. */ - FMOD_DSP_TRANSCEIVER_GAIN, /* (Type:float) - [r/w] - Gain to receive or transmit at in dB. -80.0 to 10.0. Default = 0. */ - FMOD_DSP_TRANSCEIVER_CHANNEL, /* (Type:int) - [r/w] - Integer to select current global slot, shared by all Transceivers, that can be transmitted to or received from. 0 to 31. Default = 0.*/ - FMOD_DSP_TRANSCEIVER_TRANSMITSPEAKERMODE /* (Type:int) - [r/w] - Speaker mode (transmitter mode only). Specifies either 0 (Auto) Default = 0.*/ -} FMOD_DSP_TRANSCEIVER; - - -/* -[ENUM] -[ - [DESCRIPTION] - Parameter types for the FMOD_DSP_TYPE_OBJECTPAN DSP. 3D Object panners are meant for hardware 3d object systems like Dolby Atmos or Sony Morpheus. - These object panners take input in, and send it to the 7.1 bed, but do not send the signal further down the DSP chain (the output of the dsp is silence). - - [REMARKS] - - [SEE_ALSO] - DSP::setParameterFloat - DSP::getParameterFloat - DSP::setParameterInt - DSP::getParameterInt - DSP::setParameterData - DSP::getParameterData - FMOD_DSP_TYPE -] -*/ -typedef enum -{ - FMOD_DSP_OBJECTPAN_3D_POSITION, /* (Type:data) - 3D Position. data of type FMOD_DSP_PARAMETER_3DATTRIBUTES_MULTI */ - FMOD_DSP_OBJECTPAN_3D_ROLLOFF, /* (Type:int) - 3D Rolloff. FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED to FMOD_DSP_PAN_3D_ROLLOFF_CUSTOM. Default = FMOD_DSP_PAN_3D_ROLLOFF_LINEARSQUARED. */ - FMOD_DSP_OBJECTPAN_3D_MIN_DISTANCE, /* (Type:float) - 3D Min Distance. 0.0 to 1e+18f. Default = 1.0. */ - FMOD_DSP_OBJECTPAN_3D_MAX_DISTANCE, /* (Type:float) - 3D Max Distance. 0.0 to 1e+18f. Default = 20.0. */ - FMOD_DSP_OBJECTPAN_3D_EXTENT_MODE, /* (Type:int) - 3D Extent Mode. FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO to FMOD_DSP_PAN_3D_EXTENT_MODE_OFF. Default = FMOD_DSP_PAN_3D_EXTENT_MODE_AUTO. */ - FMOD_DSP_OBJECTPAN_3D_SOUND_SIZE, /* (Type:float) - 3D Sound Size. 0.0 to 1e+18f. Default = 0.0. */ - FMOD_DSP_OBJECTPAN_3D_MIN_EXTENT, /* (Type:float) - 3D Min Extent. 0.0 (degrees) to 360.0 (degrees). Default = 0.0. */ - FMOD_DSP_OBJECTPAN_OVERALL_GAIN, /* (Type:data) - Overall gain. For information only, not set by user. Data of type FMOD_DSP_PARAMETER_DATA_TYPE_OVERALLGAIN to provide to FMOD, to allow FMOD to know the DSP is scaling the signal for virtualization purposes. */ - FMOD_DSP_OBJECTPAN_OUTPUTGAIN /* (Type:float) - Output gain level. 0.0 to 1.0 linear scale. For the user to scale the output of the object panner's signal. */ -} FMOD_DSP_OBJECTPAN; - -#endif - diff --git a/fmodstudio/inc/fmod_errors.h b/fmodstudio/inc/fmod_errors.h deleted file mode 100644 index fff5448e..00000000 --- a/fmodstudio/inc/fmod_errors.h +++ /dev/null @@ -1,113 +0,0 @@ -/*$ preserve start $*/ - -/* ================================================================================================== */ -/* FMOD Studio - Error string header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2016. */ -/* */ -/* Use this header if you want to store or display a string version / english explanation of */ -/* the FMOD error codes. */ -/* */ -/* ================================================================================================== */ - -#ifndef _FMOD_ERRORS_H -#define _FMOD_ERRORS_H - -#include "fmod.h" - -#ifdef __GNUC__ -static const char *FMOD_ErrorString(FMOD_RESULT errcode) __attribute__((unused)); -#endif - -static const char *FMOD_ErrorString(FMOD_RESULT errcode) -{ - switch (errcode) - { -/*$ preserve end $*/ - case FMOD_OK: return "No errors."; - case FMOD_ERR_BADCOMMAND: return "Tried to call a function on a data type that does not allow this type of functionality (ie calling Sound::lock on a streaming sound)."; - case FMOD_ERR_CHANNEL_ALLOC: return "Error trying to allocate a channel."; - case FMOD_ERR_CHANNEL_STOLEN: return "The specified channel has been reused to play another sound."; - case FMOD_ERR_DMA: return "DMA Failure. See debug output for more information."; - case FMOD_ERR_DSP_CONNECTION: return "DSP connection error. Connection possibly caused a cyclic dependency or connected dsps with incompatible buffer counts."; - case FMOD_ERR_DSP_DONTPROCESS: return "DSP return code from a DSP process query callback. Tells mixer not to call the process callback and therefore not consume CPU. Use this to optimize the DSP graph."; - case FMOD_ERR_DSP_FORMAT: return "DSP Format error. A DSP unit may have attempted to connect to this network with the wrong format, or a matrix may have been set with the wrong size if the target unit has a specified channel map."; - case FMOD_ERR_DSP_INUSE: return "DSP is already in the mixer's DSP network. It must be removed before being reinserted or released."; - case FMOD_ERR_DSP_NOTFOUND: return "DSP connection error. Couldn't find the DSP unit specified."; - case FMOD_ERR_DSP_RESERVED: return "DSP operation error. Cannot perform operation on this DSP as it is reserved by the system."; - case FMOD_ERR_DSP_SILENCE: return "DSP return code from a DSP process query callback. Tells mixer silence would be produced from read, so go idle and not consume CPU. Use this to optimize the DSP graph."; - case FMOD_ERR_DSP_TYPE: return "DSP operation cannot be performed on a DSP of this type."; - case FMOD_ERR_FILE_BAD: return "Error loading file."; - case FMOD_ERR_FILE_COULDNOTSEEK: return "Couldn't perform seek operation. This is a limitation of the medium (ie netstreams) or the file format."; - case FMOD_ERR_FILE_DISKEJECTED: return "Media was ejected while reading."; - case FMOD_ERR_FILE_EOF: return "End of file unexpectedly reached while trying to read essential data (truncated?)."; - case FMOD_ERR_FILE_ENDOFDATA: return "End of current chunk reached while trying to read data."; - case FMOD_ERR_FILE_NOTFOUND: return "File not found."; - case FMOD_ERR_FORMAT: return "Unsupported file or audio format."; - case FMOD_ERR_HEADER_MISMATCH: return "There is a version mismatch between the FMOD header and either the FMOD Studio library or the FMOD Low Level library."; - case FMOD_ERR_HTTP: return "A HTTP error occurred. This is a catch-all for HTTP errors not listed elsewhere."; - case FMOD_ERR_HTTP_ACCESS: return "The specified resource requires authentication or is forbidden."; - case FMOD_ERR_HTTP_PROXY_AUTH: return "Proxy authentication is required to access the specified resource."; - case FMOD_ERR_HTTP_SERVER_ERROR: return "A HTTP server error occurred."; - case FMOD_ERR_HTTP_TIMEOUT: return "The HTTP request timed out."; - case FMOD_ERR_INITIALIZATION: return "FMOD was not initialized correctly to support this function."; - case FMOD_ERR_INITIALIZED: return "Cannot call this command after System::init."; - case FMOD_ERR_INTERNAL: return "An error occurred that wasn't supposed to. Contact support."; - case FMOD_ERR_INVALID_FLOAT: return "Value passed in was a NaN, Inf or denormalized float."; - case FMOD_ERR_INVALID_HANDLE: return "An invalid object handle was used."; - case FMOD_ERR_INVALID_PARAM: return "An invalid parameter was passed to this function."; - case FMOD_ERR_INVALID_POSITION: return "An invalid seek position was passed to this function."; - case FMOD_ERR_INVALID_SPEAKER: return "An invalid speaker was passed to this function based on the current speaker mode."; - case FMOD_ERR_INVALID_SYNCPOINT: return "The syncpoint did not come from this sound handle."; - case FMOD_ERR_INVALID_THREAD: return "Tried to call a function on a thread that is not supported."; - case FMOD_ERR_INVALID_VECTOR: return "The vectors passed in are not unit length, or perpendicular."; - case FMOD_ERR_MAXAUDIBLE: return "Reached maximum audible playback count for this sound's soundgroup."; - case FMOD_ERR_MEMORY: return "Not enough memory or resources."; - case FMOD_ERR_MEMORY_CANTPOINT: return "Can't use FMOD_OPENMEMORY_POINT on non PCM source data, or non mp3/xma/adpcm data if FMOD_CREATECOMPRESSEDSAMPLE was used."; - case FMOD_ERR_NEEDS3D: return "Tried to call a command on a 2d sound when the command was meant for 3d sound."; - case FMOD_ERR_NEEDSHARDWARE: return "Tried to use a feature that requires hardware support."; - case FMOD_ERR_NET_CONNECT: return "Couldn't connect to the specified host."; - case FMOD_ERR_NET_SOCKET_ERROR: return "A socket error occurred. This is a catch-all for socket-related errors not listed elsewhere."; - case FMOD_ERR_NET_URL: return "The specified URL couldn't be resolved."; - case FMOD_ERR_NET_WOULD_BLOCK: return "Operation on a non-blocking socket could not complete immediately."; - case FMOD_ERR_NOTREADY: return "Operation could not be performed because specified sound/DSP connection is not ready."; - case FMOD_ERR_OUTPUT_ALLOCATED: return "Error initializing output device, but more specifically, the output device is already in use and cannot be reused."; - case FMOD_ERR_OUTPUT_CREATEBUFFER: return "Error creating hardware sound buffer."; - case FMOD_ERR_OUTPUT_DRIVERCALL: return "A call to a standard soundcard driver failed, which could possibly mean a bug in the driver or resources were missing or exhausted."; - case FMOD_ERR_OUTPUT_FORMAT: return "Soundcard does not support the specified format."; - case FMOD_ERR_OUTPUT_INIT: return "Error initializing output device."; - case FMOD_ERR_OUTPUT_NODRIVERS: return "The output device has no drivers installed. If pre-init, FMOD_OUTPUT_NOSOUND is selected as the output mode. If post-init, the function just fails."; - case FMOD_ERR_PLUGIN: return "An unspecified error has been returned from a plugin."; - case FMOD_ERR_PLUGIN_MISSING: return "A requested output, dsp unit type or codec was not available."; - case FMOD_ERR_PLUGIN_RESOURCE: return "A resource that the plugin requires cannot be found. (ie the DLS file for MIDI playback)"; - case FMOD_ERR_PLUGIN_VERSION: return "A plugin was built with an unsupported SDK version."; - case FMOD_ERR_RECORD: return "An error occurred trying to initialize the recording device."; - case FMOD_ERR_REVERB_CHANNELGROUP: return "Reverb properties cannot be set on this channel because a parent channelgroup owns the reverb connection."; - case FMOD_ERR_REVERB_INSTANCE: return "Specified instance in FMOD_REVERB_PROPERTIES couldn't be set. Most likely because it is an invalid instance number or the reverb doesn't exist."; - case FMOD_ERR_SUBSOUNDS: return "The error occurred because the sound referenced contains subsounds when it shouldn't have, or it doesn't contain subsounds when it should have. The operation may also not be able to be performed on a parent sound."; - case FMOD_ERR_SUBSOUND_ALLOCATED: return "This subsound is already being used by another sound, you cannot have more than one parent to a sound. Null out the other parent's entry first."; - case FMOD_ERR_SUBSOUND_CANTMOVE: return "Shared subsounds cannot be replaced or moved from their parent stream, such as when the parent stream is an FSB file."; - case FMOD_ERR_TAGNOTFOUND: return "The specified tag could not be found or there are no tags."; - case FMOD_ERR_TOOMANYCHANNELS: return "The sound created exceeds the allowable input channel count. This can be increased using the 'maxinputchannels' parameter in System::setSoftwareFormat."; - case FMOD_ERR_TRUNCATED: return "The retrieved string is too long to fit in the supplied buffer and has been truncated."; - case FMOD_ERR_UNIMPLEMENTED: return "Something in FMOD hasn't been implemented when it should be! contact support!"; - case FMOD_ERR_UNINITIALIZED: return "This command failed because System::init or System::setDriver was not called."; - case FMOD_ERR_UNSUPPORTED: return "A command issued was not supported by this object. Possibly a plugin without certain callbacks specified."; - case FMOD_ERR_VERSION: return "The version number of this file format is not supported."; - case FMOD_ERR_EVENT_ALREADY_LOADED: return "The specified bank has already been loaded."; - case FMOD_ERR_EVENT_LIVEUPDATE_BUSY: return "The live update connection failed due to the game already being connected."; - case FMOD_ERR_EVENT_LIVEUPDATE_MISMATCH: return "The live update connection failed due to the game data being out of sync with the tool."; - case FMOD_ERR_EVENT_LIVEUPDATE_TIMEOUT: return "The live update connection timed out."; - case FMOD_ERR_EVENT_NOTFOUND: return "The requested event, bus or vca could not be found."; - case FMOD_ERR_STUDIO_UNINITIALIZED: return "The Studio::System object is not yet initialized."; - case FMOD_ERR_STUDIO_NOT_LOADED: return "The specified resource is not loaded, so it can't be unloaded."; - case FMOD_ERR_INVALID_STRING: return "An invalid string was passed to this function."; - case FMOD_ERR_ALREADY_LOCKED: return "The specified resource is already locked."; - case FMOD_ERR_NOT_LOCKED: return "The specified resource is not locked, so it can't be unlocked."; - case FMOD_ERR_RECORD_DISCONNECTED: return "The specified recording driver has been disconnected."; - case FMOD_ERR_TOOMANYSAMPLES: return "The length provided exceeds the allowable limit."; - default : return "Unknown error."; -/*$ preserve start $*/ - }; -} - -#endif -/*$ preserve end $*/ diff --git a/fmodstudio/inc/fmod_output.h b/fmodstudio/inc/fmod_output.h deleted file mode 100644 index 0faa8371..00000000 --- a/fmodstudio/inc/fmod_output.h +++ /dev/null @@ -1,174 +0,0 @@ -/* ======================================================================================================== */ -/* FMOD Studio - output development header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2016. */ -/* */ -/* Use this header if you are wanting to develop your own output plugin to use with */ -/* FMOD's output system. With this header you can make your own output plugin that FMOD */ -/* can register and use. See the documentation and examples on how to make a working plugin. */ -/* */ -/* ======================================================================================================== */ - -#ifndef _FMOD_OUTPUT_H -#define _FMOD_OUTPUT_H - -#define FMOD_OUTPUT_PLUGIN_VERSION 2 - -typedef struct FMOD_OUTPUT_STATE FMOD_OUTPUT_STATE; -typedef struct FMOD_OUTPUT_OBJECT3DINFO FMOD_OUTPUT_OBJECT3DINFO; - -/* - FMOD_OUTPUT_DESCRIPTION callbacks -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK) (FMOD_OUTPUT_STATE *output_state, int *numdrivers); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETDRIVERINFO_CALLBACK) (FMOD_OUTPUT_STATE *output_state, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_INIT_CALLBACK) (FMOD_OUTPUT_STATE *output_state, int selecteddriver, FMOD_INITFLAGS flags, int *outputrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels, FMOD_SOUND_FORMAT *outputformat, int dspbufferlength, int dspnumbuffers, void *extradriverdata); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_START_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_STOP_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_CLOSE_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_UPDATE_CALLBACK) (FMOD_OUTPUT_STATE *output_state); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETHANDLE_CALLBACK) (FMOD_OUTPUT_STATE *output_state, void **handle); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_GETPOSITION_CALLBACK) (FMOD_OUTPUT_STATE *output_state, unsigned int *pcm); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_LOCK_CALLBACK) (FMOD_OUTPUT_STATE *output_state, unsigned int offset, unsigned int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_UNLOCK_CALLBACK) (FMOD_OUTPUT_STATE *output_state, void *ptr1, void *ptr2, unsigned int len1, unsigned int len2); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_MIXER_CALLBACK) (FMOD_OUTPUT_STATE *output_state); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_OBJECT3DGETINFO_CALLBACK) (FMOD_OUTPUT_STATE *output_state, int *maxhardwareobjects); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_OBJECT3DALLOC_CALLBACK) (FMOD_OUTPUT_STATE *output_state, void **object3d); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_OBJECT3DFREE_CALLBACK) (FMOD_OUTPUT_STATE *output_state, void *object3d); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK) (FMOD_OUTPUT_STATE *output_state, void *object3d, const FMOD_OUTPUT_OBJECT3DINFO *info); - -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_OPENPORT_CALLBACK) (FMOD_OUTPUT_STATE *output, FMOD_PORT_TYPE portType, FMOD_PORT_INDEX portIndex, int *portId, int *portRate, int *portChannels, FMOD_SOUND_FORMAT *portFormat); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_CLOSEPORT_CALLBACK) (FMOD_OUTPUT_STATE *output, int portId); - - -/* - FMOD_OUTPUT_STATE functions -*/ -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_READFROMMIXER) (FMOD_OUTPUT_STATE *output_state, void *buffer, unsigned int length); -typedef FMOD_RESULT (F_CALLBACK *FMOD_OUTPUT_COPYPORT) (FMOD_OUTPUT_STATE *output, int portId, void *buffer, unsigned int length); -typedef void * (F_CALLBACK *FMOD_OUTPUT_ALLOC) (unsigned int size, unsigned int align, const char *file, int line); -typedef void (F_CALLBACK *FMOD_OUTPUT_FREE) (void *ptr, const char *file, int line); -typedef void (F_CALLBACK *FMOD_OUTPUT_LOG) (FMOD_DEBUG_FLAGS level, const char *file, int line, const char *function, const char *string, ...); - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - When creating an output, declare one of these and provide the relevant callbacks and name for FMOD to use when it creates and uses an output of this type. - - [REMARKS] - There are several methods for driving the FMOD mixer to service the audio hardware. - - * Polled: if the audio hardware must be polled regularly set 'polling' to TRUE, FMOD will create a mixer thread that calls back via FMOD_OUTPUT_GETPOSITION_CALLBACK. Once an entire block of samples have played FMOD will call FMOD_OUTPUT_LOCK_CALLBACK to allow you to provide a destination pointer to write the next mix. - * Callback: if the audio hardware provides a callback where you must provide a buffer of samples then set 'polling' to FALSE and directly call FMOD_OUTPUT_READFROMMIXER. - * Synchronization: if the audio hardware provides a synchronization primitive to wait on then set 'polling' to FALSE and give a FMOD_OUTPUT_MIXER_CALLBACK pointer. FMOD will create a mixer thread and call you repeatedly once FMOD_OUTPUT_START_CALLBACK has finished, you must wait on your primitive in this callback and upon wake call FMOD_OUTPUT_READFROMMIXER. - * Non-realtime: if you are writing a file or driving a non-realtime output call FMOD_OUTPUT_READFROMMIXER from FMOD_OUTPUT_UPDATE_CALLBACK. - - Callbacks marked with 'user thread' will be called in response to the user of the FMOD low level API, in the case of the Studio runtime API, the user is the Studio Update thread. - - Members marked with [r] mean read only for the developer, read/write for the FMOD system. - - Members marked with [w] mean read/write for the developer, read only for the FMOD system. - - [SEE_ALSO] - FMOD_OUTPUT_STATE - FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK - FMOD_OUTPUT_GETDRIVERINFO_CALLBACK - FMOD_OUTPUT_INIT_CALLBACK - FMOD_OUTPUT_START_CALLBACK - FMOD_OUTPUT_STOP_CALLBACK - FMOD_OUTPUT_CLOSE_CALLBACK - FMOD_OUTPUT_UPDATE_CALLBACK - FMOD_OUTPUT_GETHANDLE_CALLBACK - FMOD_OUTPUT_GETPOSITION_CALLBACK - FMOD_OUTPUT_LOCK_CALLBACK - FMOD_OUTPUT_UNLOCK_CALLBACK - FMOD_OUTPUT_MIXER_CALLBACK - FMOD_OUTPUT_OBJECT3DGETINFO_CALLBACK - FMOD_OUTPUT_OBJECT3DALLOC_CALLBACK - FMOD_OUTPUT_OBJECT3DFREE_CALLBACK - FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK -] -*/ -typedef struct FMOD_OUTPUT_DESCRIPTION -{ - unsigned int apiversion; /* [w] The output plugin API version this plugin is built for. Set to this to FMOD_OUTPUT_PLUGIN_VERSION. */ - const char *name; /* [w] Name of the output plugin. */ - unsigned int version; /* [w] Version of the output plugin. */ - int polling; /* [w] If TRUE (non-zero) a mixer thread is created that calls FMOD_OUTPUT_GETPOSITION_CALLBACK / FMOD_OUTPUT_LOCK_CALLBACK / FMOD_OUTPUT_UNLOCK_CALLBACK to drive the mixer. If FALSE (zero) you must call FMOD_OUTPUT_READFROMMIXER to drive the mixer yourself. */ - FMOD_OUTPUT_GETNUMDRIVERS_CALLBACK getnumdrivers; /* [w] Required user thread callback to provide the number of attached sound devices. Called from System::getNumDrivers. */ - FMOD_OUTPUT_GETDRIVERINFO_CALLBACK getdriverinfo; /* [w] Required user thread callback to provide information about a particular sound device. Called from System::getDriverInfo. */ - FMOD_OUTPUT_INIT_CALLBACK init; /* [w] Required user thread callback to allocate resources and provide information about hardware capabilities. Called from System::init. */ - FMOD_OUTPUT_START_CALLBACK start; /* [w] Optional user thread callback just before mixing should begin, calls to FMOD_OUTPUT_GETPOSITION_CALLBACK / FMOD_OUTPUT_LOCK_CALLBACK / FMOD_OUTPUT_UNLOCK_CALLBACK / FMOD_OUTPUT_MIXER_CALLBACK will start, you may call FMOD_OUTPUT_READFROMMIXER after this point. Called from System::init. */ - FMOD_OUTPUT_STOP_CALLBACK stop; /* [w] Optional user thread callback just after mixing has finished, calls to FMOD_OUTPUT_GETPOSITION_CALLBACK / FMOD_OUTPUT_LOCK_CALLBACK / FMOD_OUTPUT_UNLOCK_CALLBACK / FMOD_OUTPUT_MIXER_CALLBACK have stopped, you may not call FMOD_OUTPUT_READFROMMIXER after this point. Called from System::close. */ - FMOD_OUTPUT_CLOSE_CALLBACK close; /* [w] Required user thread callback to clean up resources allocated during FMOD_OUTPUT_INIT_CALLBACK. Called from System::init and System::close. */ - FMOD_OUTPUT_UPDATE_CALLBACK update; /* [w] Optional user thread callback once per frame to update internal state. Called from System::update. */ - FMOD_OUTPUT_GETHANDLE_CALLBACK gethandle; /* [w] Optional user thread callback to provide a pointer to the internal device object used to share with other audio systems. Called from System::getOutputHandle. */ - FMOD_OUTPUT_GETPOSITION_CALLBACK getposition; /* [w] Required mixer thread callback (if 'polling' is TRUE) to provide the hardware playback position in the output ring buffer. Called before a mix. */ - FMOD_OUTPUT_LOCK_CALLBACK lock; /* [w] Required mixer thread callback (if 'polling' is TRUE) to provide a pointer the mixer can write to for the next block of audio data. Called before a mix. */ - FMOD_OUTPUT_UNLOCK_CALLBACK unlock; /* [w] Optional mixer thread callback (if 'polling' is TRUE) to signify the mixer has finished writing to the pointer from FMOD_OUTPUT_LOCK_CALLBACK. Called after a mix. */ - FMOD_OUTPUT_MIXER_CALLBACK mixer; /* [w] Optional mixer thread callback (if 'polling' is FALSE) called repeatedly to give a thread for waiting on an audio hardware synchronization primitive (see remarks for details). Ensure you have a reasonable timeout (~200ms) on your synchronization primitive and allow this callback to return once per wakeup to avoid deadlocks. */ - FMOD_OUTPUT_OBJECT3DGETINFO_CALLBACK object3dgetinfo; /* [w] Optional mixer thread callback to provide information about the capabilities of 3D object hardware. Called during a mix. */ - FMOD_OUTPUT_OBJECT3DALLOC_CALLBACK object3dalloc; /* [w] Optional mixer thread callback to reserve a hardware resources for a single 3D object. Called during a mix. */ - FMOD_OUTPUT_OBJECT3DFREE_CALLBACK object3dfree; /* [w] Optional mixer thread callback to release a hardware resource previously acquired with FMOD_OUTPUT_OBJECT3DALLOC_CALLBACK. Called during a mix. */ - FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK object3dupdate; /* [w] Optional mixer thread callback once for every acquired 3D object every mix to provide 3D information and buffered audio. Called during a mix. */ - FMOD_OUTPUT_OPENPORT_CALLBACK openport; /* [w] Optional main thread callback to open an auxiliary output port on the device. */ - FMOD_OUTPUT_CLOSEPORT_CALLBACK closeport; /* [w] Optional main thread callback to close an auxiliary output port on the device. */ -} FMOD_OUTPUT_DESCRIPTION; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - Output object state passed into every callback provides access to plugin developers data and system functionality. - - [REMARKS] - Members marked with [r] mean read only for the developer, read/write for the FMOD system. - Members marked with [w] mean read/write for the developer, read only for the FMOD system. - - [SEE_ALSO] - FMOD_OUTPUT_DESCRIPTION -] -*/ -struct FMOD_OUTPUT_STATE -{ - void *plugindata; /* [w] Pointer used to store any plugin specific state so it's available in all callbacks. */ - FMOD_OUTPUT_READFROMMIXER readfrommixer; /* [r] Function to execute the mixer producing a buffer of audio. Used to control when the mix occurs manually as an alternative to FMOD_OUTPUT_DESCRIPTION::polling == TRUE. */ - FMOD_OUTPUT_ALLOC alloc; /* [r] Function to allocate memory using the FMOD memory system. */ - FMOD_OUTPUT_FREE free; /* [r] Function to free memory allocated with FMOD_OUTPUT_ALLOC. */ - FMOD_OUTPUT_LOG log; /* [r] Function to write to the FMOD logging system. */ - FMOD_OUTPUT_COPYPORT copyport; /* [r] Function to copy the output from the mixer for the given auxiliary port */ -}; - - -/* -[STRUCTURE] -[ - [DESCRIPTION] - This structure is passed to the plugin via FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK, so that whatever object based panning solution available can position it in the speakers correctly. - Object based panning is a 3D panning solution that sends a mono only signal to a hardware device, such as Dolby Atmos or other similar panning solutions. - - [REMARKS] - FMOD does not attenuate the buffer, but provides a 'gain' parameter that the user must use to scale the buffer by. Rather than pre-attenuating the buffer, the plugin developer - can access untouched data for other purposes, like reverb sending for example. - The 'gain' parameter is based on the user's 3D custom rolloff model. - - Members marked with [r] mean read only for the developer, read/write for the FMOD system. - Members marked with [w] mean read/write for the developer, read only for the FMOD system. - - [SEE_ALSO] - FMOD_OUTPUT_OBJECT3DUPDATE_CALLBACK -] -*/ -struct FMOD_OUTPUT_OBJECT3DINFO -{ - float *buffer; /* [r] Mono PCM floating point buffer. This buffer needs to be scaled by the gain value to get distance attenuation. */ - unsigned int bufferlength; /* [r] Length in PCM samples of buffer. */ - FMOD_VECTOR position; /* [r] Vector relative between object and listener. */ - float gain; /* [r] 0.0 to 1.0 - 1 = 'buffer' is not attenuated, 0 = 'buffer' is fully attenuated. */ - float spread; /* [r] 0 - 360 degrees. 0 = point source, 360 = sound is spread around all speakers */ - float priority; /* [r] 0.0 to 1.0 - 0 = most important, 1 = least important. Based on height and distance (height is more important). */ -}; - -#endif /* _FMOD_OUTPUT_H */ diff --git a/fmodstudio/lib/libfmod.dylib b/fmodstudio/lib/libfmod.dylib deleted file mode 100644 index fd3089c22d49b1662822b8da211228f93a82d969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1414224 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

    M#P>QBTc2Eo^?Rkd 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%0DKKZsFE(eq|?pZ6JJam)nGpYqo2 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

    Sl1BcK$d|Eq`2~-0v6Z^7l)W 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