2021-10-21 19:30:23 +00:00
/* FAudioGMS - Game Maker FAudio bindings in C
*
* Copyright ( c ) 2021 Evan Hemsley
*
* This software is provided ' as - is ' , without any express or implied warranty .
* In no event will the authors be held liable for any damages arising from
* the use of this software .
*
* Permission is granted to anyone to use this software for any purpose ,
* including commercial applications , and to alter it and redistribute it
* freely , subject to the following restrictions :
*
* 1. The origin of this software must not be misrepresented ; you must not
* claim that you wrote the original software . If you use this software in a
* product , an acknowledgment in the product documentation would be
* appreciated but is not required .
*
* 2. Altered source versions must be plainly marked as such , and must not be
* misrepresented as being the original software .
*
* 3. This notice may not be removed or altered from any source distribution .
*
* Evan " cosmonaut " Hemsley < evan @ moonside . games >
*
*/
# ifndef FAUDIOGMS_H
# define FAUDIOGMS_H
# ifdef _WIN32
# define FAUDIOGMSAPI __declspec(dllexport)
# define FAUDIOGMSCALL __cdecl
# else
# define FAUDIOGMSAPI
# define FAUDIOGMSCALL
# endif
# ifdef __cplusplus
extern " C " {
# endif /* __cplusplus */
2021-10-24 23:24:37 +00:00
FAUDIOGMSAPI void FAudioGMS_Init ( double spatialDistanceScale ) ; /* recommend about 50 for a 2D game, 1 for a 3D game */
2021-10-21 19:30:23 +00:00
2021-10-23 02:34:16 +00:00
FAUDIOGMSAPI double FAudioGMS_StaticSound_LoadWAV ( char * filePath ) ; /* returns a static sound ID */
FAUDIOGMSAPI void FAudioGMS_StaticSound_PlayOneOff ( double staticSoundID , double pan , double pitch , double volume , double reverb ) ; /* automatically frees itself when done! */
2021-10-24 23:12:42 +00:00
FAUDIOGMSAPI void FAudioGMS_StaticSound_PlayOneOffSpatial ( double staticSoundID , double x , double y , double z , double pitch , double volume , double reverb ) ; /* automatically frees itself when done! */
2021-10-23 02:34:16 +00:00
FAUDIOGMSAPI double FAudioGMS_StaticSound_Play ( double staticSoundID , double pan , double pitch , double volume , double reverb , double loop ) ; /* returns a sound instance ID. must be freed! */
2021-10-24 23:12:42 +00:00
FAUDIOGMSAPI double FAudioGMS_StaticSound_PlaySpatial ( double staticSoundID , double x , double y , double z , double pitch , double volume , double reverb , double loop ) ; /* returns a sound instance ID. must be freed! */
FAUDIOGMSAPI void FAudioGMS_StaticSound_Destroy ( double id ) ;
2021-10-22 00:09:24 +00:00
2021-10-23 02:34:16 +00:00
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Play ( double id ) ;
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Pause ( double id ) ;
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Stop ( double id ) ;
2021-10-24 23:12:42 +00:00
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Set3DPosition ( double soundInstanceID , double x , double y , double z ) ;
2021-10-22 00:09:24 +00:00
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Destroy ( double id ) ;
2021-10-23 02:34:16 +00:00
FAUDIOGMSAPI void FAudioGMS_SoundInstance_DestroyWhenFinished ( double id ) ;
2021-10-24 23:12:42 +00:00
FAUDIOGMSAPI void FAudioGMS_SetListenerPosition ( double x , double y , double z ) ;
FAUDIOGMSAPI void FAudioGMS_Update ( ) ;
2021-10-21 19:30:23 +00:00
FAUDIOGMSAPI void FAudioGMS_Destroy ( ) ;
# ifdef __cplusplus
}
# endif /* __cplusplus */
# endif /* FAUDIOGMS_H */