load wav with SDL + fix building and linking
							parent
							
								
									6d8c80064c
								
							
						
					
					
						commit
						c6e3879a67
					
				
							
								
								
									
										
											BIN
										
									
								
								gamemaker/extensions/FAudioGMS/FAudioGMS.dll (Stored with Git LFS)
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								gamemaker/extensions/FAudioGMS/FAudioGMS.dll (Stored with Git LFS)
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										7954
									
								
								lib/dr_wav.h
								
								
								
								
							
							
						
						
									
										7954
									
								
								lib/dr_wav.h
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										139
									
								
								src/FAudioGMS.c
								
								
								
								
							
							
						
						
									
										139
									
								
								src/FAudioGMS.c
								
								
								
								
							|  | @ -26,8 +26,6 @@ | |||
| 
 | ||||
| #include "SDL.h" | ||||
| 
 | ||||
| #define DISABLE_XNASONG | ||||
| 
 | ||||
| #include "FAudioGMS.h" | ||||
| 
 | ||||
| #include "F3DAudio.h" | ||||
|  | @ -36,14 +34,6 @@ | |||
| 
 | ||||
| #include "FAudio.h" | ||||
| 
 | ||||
| #define DR_WAV_IMPLEMENTATION | ||||
| #define DRWAV_MALLOC(sz) SDL_malloc((sz)) | ||||
| #define DRWAV_REALLOC(p, sz) SDL_realloc((p), (sz)) | ||||
| #define DRWAV_FREE(p) SDL_free((p)) | ||||
| #define DRWAV_COPY_MEMORY(dst, src, sz) SDL_memcpy((dst), (src), (sz)) | ||||
| #define DRWAV_ZERO_MEMORY(p, sz) SDL_memset((p), 0, (sz)) | ||||
| #include "../lib/dr_wav.h" | ||||
| 
 | ||||
| /* stb vorbis defines. this is kind of a mess but oh well */ | ||||
| 
 | ||||
| #include "../lib/FAudio/src/FAudio_internal.h" | ||||
|  | @ -102,12 +92,9 @@ | |||
| #define STB_VORBIS_NO_INTEGER_CONVERSION 1 | ||||
| #include "../lib/FAudio/src/stb_vorbis.h" | ||||
| 
 | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| static inline void Log(char *string) | ||||
| { | ||||
|     printf("%s\n", string); | ||||
|     fflush(stdout); | ||||
|     SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "%s\n", string); | ||||
| } | ||||
| 
 | ||||
| typedef struct IdStack | ||||
|  | @ -182,9 +169,8 @@ typedef struct FAudioGMS_Voice | |||
| typedef struct FAudioGMS_StaticSound | ||||
| { | ||||
|     uint32_t id; | ||||
|     SDL_AudioSpec spec; | ||||
|     FAudioBuffer buffer; | ||||
|     uint32_t channels; | ||||
|     uint32_t samplesPerSecond; | ||||
|     uint32_t lengthInSeconds; | ||||
| } FAudioGMS_StaticSound; | ||||
| 
 | ||||
|  | @ -280,8 +266,14 @@ typedef struct FAudioGMS_Device | |||
| 
 | ||||
| static FAudioGMS_Device *device = NULL; | ||||
| 
 | ||||
| /* Game Maker doesn't let us control execution order on clean up so we have this
 | ||||
|  * stupid macro to help us not crash on exit */ | ||||
| /* Game Maker doesn't let us control execution order on clean up so we have these
 | ||||
|  * stupid macros to help us not crash on exit */ | ||||
| #define RETURN_ON_NULL_DEVICE_VOID      \ | ||||
|     if (device == NULL)                 \ | ||||
|     {                                   \ | ||||
|         return;                         \ | ||||
|     } | ||||
| 
 | ||||
| #define RETURN_ON_NULL_DEVICE(x)        \ | ||||
|     if (device == NULL)                 \ | ||||
|     {                                   \ | ||||
|  | @ -530,41 +522,30 @@ void FAudioGMS_Init(double spatialDistanceScale, double timestep) | |||
|     device->timestep = timestep; | ||||
| 
 | ||||
|     Log("FAudio initialized successfully!"); | ||||
|     printf("Device: %ls\n", device->deviceDetails.DisplayName); | ||||
|     fflush(stdout); | ||||
| } | ||||
| 
 | ||||
| double FAudioGMS_StaticSound_LoadWAV(char *filePath) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE(-1.0) | ||||
|     drwav_uint64 frameCount; | ||||
| 
 | ||||
|     FAudioGMS_StaticSound *sound = SDL_malloc(sizeof(FAudioGMS_StaticSound)); | ||||
|     float *pSampleData = drwav_open_file_and_read_pcm_frames_f32( | ||||
|         filePath, | ||||
|         &sound->channels, | ||||
|         &sound->samplesPerSecond, | ||||
|         &frameCount, | ||||
|         NULL); | ||||
|     if (pSampleData == NULL) | ||||
| 
 | ||||
|     if (SDL_LoadWAV(filePath, &sound->spec, &sound->buffer.pAudioData, &sound->buffer.AudioBytes) == NULL) | ||||
|     { | ||||
|         Log("Error opening WAV file: "); | ||||
|         Log(filePath); | ||||
|         SDL_free(sound); | ||||
|         return -1; | ||||
|     } | ||||
| 
 | ||||
|     sound->buffer.AudioBytes = (uint32_t)(frameCount * sound->channels * sizeof(float)); | ||||
|     sound->buffer.Flags = 0; | ||||
|     sound->buffer.LoopBegin = 0; | ||||
|     sound->buffer.LoopCount = 0; | ||||
|     sound->buffer.LoopLength = 0; | ||||
|     sound->buffer.PlayBegin = 0; | ||||
|     sound->buffer.PlayLength = frameCount; | ||||
|     sound->buffer.pAudioData = (uint8_t *)pSampleData; | ||||
|     sound->buffer.PlayLength = sound->buffer.AudioBytes / (uint16_t)(sound->spec.channels * SDL_AUDIO_BITSIZE(sound->spec.format) / 8); | ||||
|     sound->buffer.pContext = NULL; | ||||
| 
 | ||||
|     sound->lengthInSeconds = frameCount / sound->samplesPerSecond; | ||||
|     sound->lengthInSeconds = sound->buffer.PlayLength / sound->spec.freq; | ||||
| 
 | ||||
|     if (device->staticSoundIndexStack.count > 0) | ||||
|     { | ||||
|  | @ -704,6 +685,7 @@ static void FAudioGMS_INTERNAL_SoundInstance_SetVolume( | |||
| static FAudioGMS_SoundInstance *FAudioGMS_INTERNAL_SoundInstance_Init( | ||||
|     uint32_t channelCount, | ||||
|     uint32_t samplesPerSecond, | ||||
|     uint16_t bitSize, | ||||
|     uint8_t isStatic) | ||||
| { | ||||
|     FAudioGMS_SoundInstance *instance = SDL_malloc(sizeof(FAudioGMS_SoundInstance)); | ||||
|  | @ -717,12 +699,24 @@ static FAudioGMS_SoundInstance *FAudioGMS_INTERNAL_SoundInstance_Init( | |||
|     instance->destroyTimerActive = 0; | ||||
|     instance->isGlobalPaused = 0; | ||||
| 
 | ||||
|     instance->format.wFormatTag = FAUDIO_FORMAT_IEEE_FLOAT; | ||||
|     instance->format.wBitsPerSample = 32; | ||||
|     if (isStatic) | ||||
|     { | ||||
|         instance->format.wFormatTag = FAUDIO_FORMAT_PCM; | ||||
|         instance->format.wBitsPerSample = bitSize; | ||||
|         instance->format.nChannels = channelCount; | ||||
|     instance->format.nBlockAlign = (uint16_t)(4 * channelCount); | ||||
|         instance->format.nBlockAlign = (uint16_t)(channelCount * instance->format.wBitsPerSample / 8); | ||||
|         instance->format.nSamplesPerSec = samplesPerSecond; | ||||
|         instance->format.nAvgBytesPerSec = instance->format.nBlockAlign * samplesPerSecond; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         instance->format.wFormatTag = FAUDIO_FORMAT_IEEE_FLOAT; | ||||
|         instance->format.wBitsPerSample = bitSize; | ||||
|         instance->format.nChannels = channelCount; | ||||
|         instance->format.nBlockAlign = (uint16_t)(channelCount * instance->format.wBitsPerSample / 8); | ||||
|         instance->format.nSamplesPerSec = samplesPerSecond; | ||||
|         instance->format.nAvgBytesPerSec = instance->format.nBlockAlign * samplesPerSecond; | ||||
|     } | ||||
| 
 | ||||
|     instance->voice.sends.SendCount = 1; | ||||
|     instance->voice.sends.pSends = SDL_malloc(sizeof(FAudioSendDescriptor)); | ||||
|  | @ -806,8 +800,9 @@ static FAudioGMS_SoundInstance *FAudioGMS_INTERNAL_SoundInstance_CreateFromStati | |||
|     FAudioGMS_StaticSound *staticSound) | ||||
| { | ||||
|     FAudioGMS_SoundInstance *instance = FAudioGMS_INTERNAL_SoundInstance_Init( | ||||
|         staticSound->channels, | ||||
|         staticSound->samplesPerSecond, | ||||
|         staticSound->spec.channels, | ||||
|         staticSound->spec.freq, | ||||
|         SDL_AUDIO_BITSIZE(staticSound->spec.format), | ||||
|         1); | ||||
| 
 | ||||
|     instance->isStatic = 1; | ||||
|  | @ -978,7 +973,7 @@ static void FAudioGMS_INTERNAL_Apply3D(FAudioGMS_SoundInstance *instance) | |||
| 
 | ||||
| static void FAudioGMS_INTERNAL_SoundInstance_AddBuffer(FAudioGMS_SoundInstance *instance) | ||||
| { | ||||
|     uint32_t defaultRequestedSampleCount = instance->format.nSamplesPerSec / 4; | ||||
|     uint32_t defaultRequestedSampleCount = instance->format.nSamplesPerSec / 10; /* FIXME: make this configurable */ | ||||
|     uint32_t requestedSampleCount = defaultRequestedSampleCount; | ||||
| 
 | ||||
|     if (instance->playLength != 0) | ||||
|  | @ -1053,7 +1048,7 @@ double FAudioGMS_StreamingSound_LoadOGG(char *filePath) | |||
|     stb_vorbis_info info = stb_vorbis_get_info(fileHandle); | ||||
| 
 | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_SoundInstance_Init(info.channels, info.sample_rate, 0); | ||||
|         FAudioGMS_INTERNAL_SoundInstance_Init(info.channels, info.sample_rate, 32, 0); | ||||
| 
 | ||||
|     instance->soundData.streamingSound.fileHandle = fileHandle; | ||||
|     instance->soundData.streamingSound.info = info; | ||||
|  | @ -1165,7 +1160,7 @@ static void FAudioGMS_INTERNAL_SoundInstance_Play(FAudioGMS_SoundInstance *insta | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_Play(double soundInstanceID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1197,7 +1192,7 @@ static void FAudioGMS_INTERNAL_SoundInstance_Pause(FAudioGMS_SoundInstance *inst | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_Pause(double soundInstanceID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
|     FAudioGMS_INTERNAL_SoundInstance_Pause(instance); | ||||
|  | @ -1233,7 +1228,7 @@ static void FAudioGMS_INTERNAL_SoundInstance_Stop(FAudioGMS_SoundInstance *insta | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_Stop(double soundInstanceID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
|     FAudioGMS_INTERNAL_SoundInstance_Stop(instance); | ||||
|  | @ -1241,7 +1236,7 @@ void FAudioGMS_SoundInstance_Stop(double soundInstanceID) | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_SetLoop(double soundInstanceID, double loop) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1261,7 +1256,7 @@ void FAudioGMS_SoundInstance_SetLoop(double soundInstanceID, double loop) | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_SetPan(double soundInstanceID, double pan) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1273,7 +1268,7 @@ void FAudioGMS_SoundInstance_SetPan(double soundInstanceID, double pan) | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_SetPitch(double soundInstanceID, double pitch) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1285,7 +1280,7 @@ void FAudioGMS_SoundInstance_SetPitch(double soundInstanceID, double pitch) | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_SetVolume(double soundInstanceID, double volume) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1298,7 +1293,7 @@ void FAudioGMS_SoundInstance_SetVolume(double soundInstanceID, double volume) | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_Set3DPosition(double soundInstanceID, double x, double y, double z) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1325,7 +1320,7 @@ void FAudioGMS_SoundInstance_Set3DVelocity( | |||
|     double yVelocity, | ||||
|     double zVelocity) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1348,17 +1343,17 @@ void FAudioGMS_SoundInstance_SetTrackPositionInSeconds( | |||
|     double soundInstanceID, | ||||
|     double trackPositionInSeconds) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|     if (instance != NULL) | ||||
|     { | ||||
|         uint32_t sampleFrame = | ||||
|             instance->soundData.staticSound->samplesPerSecond * trackPositionInSeconds; | ||||
|             instance->soundData.staticSound->spec.freq * trackPositionInSeconds; | ||||
| 
 | ||||
|         FAudioGMS_SoundState currentState = instance->soundState; | ||||
|         if (currentState == SoundState_Playing) | ||||
|         if (currentState == SoundState_Playing || !instance->isStatic) | ||||
|         { | ||||
|             FAudioSourceVoice_Stop(instance->voice.handle, 0, 0); | ||||
|             FAudioSourceVoice_FlushSourceBuffers(instance->voice.handle); | ||||
|  | @ -1406,7 +1401,7 @@ void FAudioGMS_SoundInstance_SetPlayRegion( | |||
|     double startInMilliseconds, | ||||
|     double endInMilliseconds) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1462,7 +1457,7 @@ void FAudioGMS_SoundInstance_SetVolumeOverTime( | |||
|     double volume, | ||||
|     double milliseconds) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1554,7 +1549,7 @@ double FAudioGMS_SoundInstance_GetTrackPositionInSeconds(double soundInstanceID) | |||
| 
 | ||||
| void FAudioGMS_SetListenerPosition(double x, double y, double z) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     device->listener.Position.x = x; | ||||
|     device->listener.Position.y = y; | ||||
|     device->listener.Position.z = z; | ||||
|  | @ -1562,7 +1557,7 @@ void FAudioGMS_SetListenerPosition(double x, double y, double z) | |||
| 
 | ||||
| void FAudioGMS_SetListenerVelocity(double xVelocity, double yVelocity, double zVelocity) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     device->listener.Velocity.x = xVelocity; | ||||
|     device->listener.Velocity.y = yVelocity; | ||||
|     device->listener.Velocity.z = zVelocity; | ||||
|  | @ -1595,7 +1590,7 @@ static void FAudioGMS_INTERNAL_SoundInstance_Destroy(FAudioGMS_SoundInstance *in | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_Destroy(double soundInstanceID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1607,7 +1602,7 @@ void FAudioGMS_SoundInstance_Destroy(double soundInstanceID) | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_DestroyWhenFinished(double soundInstanceID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1624,14 +1619,14 @@ static void FAudioGMS_INTERNAL_StaticSound_Destroy(FAudioGMS_StaticSound *sound) | |||
|     { | ||||
|         device->staticSounds[sound->id] = NULL; | ||||
|         IdStack_Push(&device->staticSoundIndexStack, sound->id); | ||||
|         SDL_free((void *)sound->buffer.pAudioData); | ||||
|         SDL_FreeWAV(sound->buffer.pAudioData); | ||||
|         SDL_free(sound); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void FAudioGMS_StaticSound_Destroy(double staticSoundID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_StaticSound *sound = FAudioGMS_INTERNAL_LookupStaticSound((uint32_t)staticSoundID); | ||||
|     FAudioGMS_INTERNAL_StaticSound_Destroy(sound); | ||||
| } | ||||
|  | @ -1737,7 +1732,7 @@ static void FAudioGMS_INTERNAL_EffectChain_AddReverb( | |||
| 
 | ||||
| void FAudioGMS_EffectChain_AddDefaultReverb(double effectChainID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_EffectChain *effectChain = | ||||
|         FAudioGMS_INTERNAL_LookupEffectChain((uint32_t)effectChainID); | ||||
| 
 | ||||
|  | @ -1790,7 +1785,7 @@ void FAudioGMS_EffectChain_AddReverb( | |||
|     double density, | ||||
|     double roomSize) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_EffectChain *effectChain = | ||||
|         FAudioGMS_INTERNAL_LookupEffectChain((uint32_t)effectChainID); | ||||
| 
 | ||||
|  | @ -1853,7 +1848,7 @@ static void FAudioGMS_INTERNAL_Voice_SetEffectGain(FAudioGMS_Voice *voice, float | |||
| 
 | ||||
| void FAudioGMS_SoundInstance_SetEffectGain(double soundInstanceID, double effectGain) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
| 
 | ||||
|  | @ -1900,7 +1895,7 @@ void FAudioGMS_SoundInstance_SetEffectChain( | |||
|     double effectChainID, | ||||
|     double effectGain) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_SoundInstance *instance = | ||||
|         FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID); | ||||
|     FAudioGMS_EffectChain *effectChain = | ||||
|  | @ -1916,7 +1911,7 @@ void FAudioGMS_SoundInstance_SetEffectChain( | |||
| 
 | ||||
| void FAudioGMS_SetMasteringEffectChain(double effectChainID, double effectGain) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_EffectChain *effectChain = | ||||
|         FAudioGMS_INTERNAL_LookupEffectChain((uint32_t)effectChainID); | ||||
| 
 | ||||
|  | @ -1928,7 +1923,7 @@ void FAudioGMS_SetMasteringEffectChain(double effectChainID, double effectGain) | |||
| 
 | ||||
| void FAudioGMS_SetMasteringEffectGain(double effectGain) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     if (device->fauxMasteringVoice.effectChainAttached) | ||||
|     { | ||||
|         FAudioGMS_INTERNAL_Voice_SetEffectGain(&device->fauxMasteringVoice, effectGain); | ||||
|  | @ -1951,7 +1946,7 @@ static void FAudioGMS_INTERNAL_EffectChain_Destroy(FAudioGMS_EffectChain *effect | |||
| 
 | ||||
| void FAudioGMS_EffectChain_Destroy(double effectChainID) | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     FAudioGMS_EffectChain *effectChain = | ||||
|         FAudioGMS_INTERNAL_LookupEffectChain((uint32_t)effectChainID); | ||||
| 
 | ||||
|  | @ -1963,7 +1958,7 @@ void FAudioGMS_EffectChain_Destroy(double effectChainID) | |||
| 
 | ||||
| void FAudioGMS_Update() | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     uint32_t i; | ||||
| 
 | ||||
|     for (i = 0; i < device->soundInstanceCount; i += 1) | ||||
|  | @ -2019,7 +2014,7 @@ void FAudioGMS_Update() | |||
| 
 | ||||
| void FAudioGMS_PauseAll() | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     uint32_t i; | ||||
| 
 | ||||
|     for (i = 0; i < device->soundInstanceCount; i += 1) | ||||
|  | @ -2035,7 +2030,7 @@ void FAudioGMS_PauseAll() | |||
| 
 | ||||
| void FAudioGMS_ResumeAll() | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     uint32_t i; | ||||
| 
 | ||||
|     for (i = 0; i < device->soundInstanceCount; i += 1) | ||||
|  | @ -2051,7 +2046,7 @@ void FAudioGMS_ResumeAll() | |||
| 
 | ||||
| void FAudioGMS_StopAll() | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     uint32_t i; | ||||
| 
 | ||||
|     for (i = 0; i < device->soundInstanceCount; i += 1) | ||||
|  | @ -2062,7 +2057,7 @@ void FAudioGMS_StopAll() | |||
| 
 | ||||
| void FAudioGMS_Destroy() | ||||
| { | ||||
|     RETURN_ON_NULL_DEVICE() | ||||
|     RETURN_ON_NULL_DEVICE_VOID | ||||
|     uint32_t i; | ||||
| 
 | ||||
|     for (i = 0; i < device->soundInstanceCount; i += 1) | ||||
|  |  | |||
|  | @ -46,6 +46,7 @@ | |||
|   </PropertyGroup> | ||||
|   <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | ||||
|     <PlatformToolset>v142</PlatformToolset> | ||||
|     <UseOfMfc>false</UseOfMfc> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | ||||
|   <ImportGroup Label="ExtensionSettings"> | ||||
|  | @ -89,20 +90,23 @@ | |||
|     <ClCompile> | ||||
|       <WarningLevel>Level3</WarningLevel> | ||||
|       <Optimization>MaxSpeed</Optimization> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MultiThreaded</RuntimeLibrary> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">SetupAPI.lib;Version.lib;Winmm.lib;Imm32.lib;libucrt.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||
|       <AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">libucrt.lib;SetupAPI.lib;Version.lib;Winmm.lib;Imm32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||
|     </Link> | ||||
|     <ProjectReference> | ||||
|       <UseLibraryDependencyInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</UseLibraryDependencyInputs> | ||||
|     </ProjectReference> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemGroup> | ||||
|     <ClCompile Include="..\src\FAudioGMS.c" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <ClInclude Include="..\lib\dr_wav.h" /> | ||||
|     <ClInclude Include="..\src\FAudioGMS.h" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue