forked from MoonsideGames/FAudioGMS
PauseAll and ResumeAll + some linux stuff
parent
60b2775dee
commit
c73332c3a4
|
@ -38,6 +38,9 @@ I will not be supporting 32-bit Windows. Catch up to 2004 and switch to 64-bit.
|
|||
- Xbox One
|
||||
- iOS
|
||||
|
||||
## Kind of Supported
|
||||
- Android (nik provided android build scripts but I will not help you if it breaks, sorry, Android sucks)
|
||||
|
||||
### Not Supported
|
||||
- Windows (32-bit)
|
||||
- HTML5 (if someone wants to try this go ahead but I'm not touching that garbage with a 10 foot pole)
|
||||
|
|
|
@ -155,7 +155,12 @@
|
|||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SetListenerVelocity","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
],"constants":[],"ProxyFiles":[],"copyToTargets":64,"order":[
|
||||
{"externalName":"FAudioGMS_PauseAll","kind":1,"help":"FAudioGMS_PauseAll()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_PauseAll","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_ResumeAll","kind":1,"help":"FAudioGMS_ResumeAll()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_ResumeAll","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
],"constants":[],"ProxyFiles":[
|
||||
{"TargetMask":7,"resourceVersion":"1.0","name":"libFAudioGMS.so","tags":[],"resourceType":"GMProxyFile",},
|
||||
{"TargetMask":7,"resourceVersion":"1.0","name":"libSDL2.so","tags":[],"resourceType":"GMProxyFile",},
|
||||
],"copyToTargets":192,"order":[
|
||||
{"name":"FAudioGMS_Init","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_StaticSound_LoadWAV","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_StaticSound_CreateSoundInstance","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
|
@ -188,6 +193,8 @@
|
|||
{"name":"FAudioGMS_SoundInstance_SetEffectGain","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SetListenerPosition","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SetListenerVelocity","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_ResumeAll","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_PauseAll","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_StopAll","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_Update","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_Destroy","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
|
@ -221,7 +228,7 @@
|
|||
"tvosThirdPartyFrameworkEntries": [],
|
||||
"IncludedResources": [],
|
||||
"androidPermissions": [],
|
||||
"copyToTargets": 64,
|
||||
"copyToTargets": 192,
|
||||
"iosCocoaPods": "",
|
||||
"tvosCocoaPods": "",
|
||||
"iosCocoaPodDependencies": "",
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -3,7 +3,7 @@
|
|||
// Playing a StaticSound returns a SoundInstance.
|
||||
function LoadStaticSound(filename)
|
||||
{
|
||||
var filePath = "audio\\static\\" + filename;
|
||||
var filePath = working_directory + "audio/static/" + filename;
|
||||
var staticSoundID = FAudioGMS_StaticSound_LoadWAV(filePath);
|
||||
return new StaticSound(staticSoundID);
|
||||
}
|
||||
|
|
|
@ -200,6 +200,8 @@ typedef struct FAudioGMS_SoundInstance
|
|||
F3DAUDIO_EMITTER* emitter; /* must not be NULL if is3D */
|
||||
float stereoAzimuth[2];
|
||||
|
||||
uint8_t isGlobalPaused;
|
||||
|
||||
union
|
||||
{
|
||||
FAudioGMS_StaticSound *staticSound; /* static sounds are loaded separately, so they do not belong to the instance */
|
||||
|
@ -583,13 +585,6 @@ static void FAudioGMS_INTERNAL_SoundInstance_SetVolume(FAudioGMS_SoundInstance*
|
|||
FAudioVoice_SetVolume(instance->handle, volume, 0);
|
||||
}
|
||||
|
||||
static void FAudioGMS_INTERNAL_SoundInstance_SetProperties(FAudioGMS_SoundInstance* instance, double pan, double pitch, double volume)
|
||||
{
|
||||
FAudioGMS_INTERNAL_SoundInstance_SetPan(instance, pan);
|
||||
FAudioGMS_INTERNAL_SoundInstance_SetPitch(instance, pitch);
|
||||
FAudioGMS_INTERNAL_SoundInstance_SetVolume(instance, volume);
|
||||
}
|
||||
|
||||
static FAudioGMS_SoundInstance* FAudioGMS_INTERNAL_SoundInstance_Init(
|
||||
uint32_t channelCount,
|
||||
uint32_t samplesPerSecond,
|
||||
|
@ -602,6 +597,7 @@ static FAudioGMS_SoundInstance* FAudioGMS_INTERNAL_SoundInstance_Init(
|
|||
instance->isStatic = isStatic;
|
||||
instance->loop = 0;
|
||||
instance->destroyOnFinish = 0;
|
||||
instance->isGlobalPaused = 0;
|
||||
|
||||
instance->format.wFormatTag = FAUDIO_FORMAT_IEEE_FLOAT;
|
||||
instance->format.wBitsPerSample = 32;
|
||||
|
@ -966,11 +962,8 @@ void FAudioGMS_SoundInstance_Play(double soundInstanceID, double loop)
|
|||
}
|
||||
}
|
||||
|
||||
void FAudioGMS_SoundInstance_Pause(double soundInstanceID)
|
||||
static void FAudioGMS_INTERNAL_SoundInstance_Pause(FAudioGMS_SoundInstance* instance)
|
||||
{
|
||||
RETURN_ON_NULL_DEVICE()
|
||||
FAudioGMS_SoundInstance* instance = FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID);
|
||||
|
||||
if (instance != NULL)
|
||||
{
|
||||
if (instance->soundState == SoundState_Playing)
|
||||
|
@ -985,6 +978,13 @@ void FAudioGMS_SoundInstance_Pause(double soundInstanceID)
|
|||
}
|
||||
}
|
||||
|
||||
void FAudioGMS_SoundInstance_Pause(double soundInstanceID)
|
||||
{
|
||||
RETURN_ON_NULL_DEVICE()
|
||||
FAudioGMS_SoundInstance* instance = FAudioGMS_INTERNAL_LookupSoundInstance((uint32_t)soundInstanceID);
|
||||
FAudioGMS_INTERNAL_SoundInstance_Pause(instance);
|
||||
}
|
||||
|
||||
static void FAudioGMS_INTERNAL_SoundInstance_Stop(FAudioGMS_SoundInstance* instance)
|
||||
{
|
||||
if (instance != NULL)
|
||||
|
@ -1639,6 +1639,38 @@ void FAudioGMS_Update()
|
|||
}
|
||||
}
|
||||
|
||||
void FAudioGMS_PauseAll()
|
||||
{
|
||||
RETURN_ON_NULL_DEVICE()
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < device->soundInstanceCount; i += 1)
|
||||
{
|
||||
FAudioGMS_SoundInstance *instance = device->soundInstances[i];
|
||||
if (instance != NULL)
|
||||
{
|
||||
instance->isGlobalPaused = 1;
|
||||
FAudioGMS_INTERNAL_SoundInstance_Pause(instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FAudioGMS_ResumeAll()
|
||||
{
|
||||
RETURN_ON_NULL_DEVICE()
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < device->soundInstanceCount; i += 1)
|
||||
{
|
||||
FAudioGMS_SoundInstance *instance = device->soundInstances[i];
|
||||
if (instance != NULL && instance->isGlobalPaused)
|
||||
{
|
||||
instance->isGlobalPaused = 0;
|
||||
FAudioGMS_INTERNAL_SoundInstance_Play(instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FAudioGMS_StopAll()
|
||||
{
|
||||
RETURN_ON_NULL_DEVICE()
|
||||
|
|
|
@ -101,6 +101,8 @@ FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetEffectGain(double soundInstanceID,
|
|||
FAUDIOGMSAPI void FAudioGMS_SetListenerPosition(double x, double y, double z);
|
||||
FAUDIOGMSAPI void FAudioGMS_SetListenerVelocity(double xVelocity, double yVelocity, double zVelocity);
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_PauseAll(); /* useful for mobile platforms, etc */
|
||||
FAUDIOGMSAPI void FAudioGMS_ResumeAll(); /* same as above */
|
||||
FAUDIOGMSAPI void FAudioGMS_StopAll();
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_Update();
|
||||
|
|
Loading…
Reference in New Issue