forked from MoonsideGames/FAudioGMS
Compare commits
No commits in common. "mastering_effects" and "main" have entirely different histories.
mastering_
...
main
|
@ -0,0 +1,166 @@
|
|||
---
|
||||
Language: Cpp
|
||||
# BasedOnStyle: LLVM
|
||||
AccessModifierOffset: -2
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlignConsecutiveMacros: None
|
||||
AlignConsecutiveAssignments: None
|
||||
AlignConsecutiveBitFields: None
|
||||
AlignConsecutiveDeclarations: None
|
||||
AlignEscapedNewlines: Right
|
||||
AlignOperands: Align
|
||||
AlignTrailingComments: true
|
||||
AllowAllArgumentsOnNextLine: false
|
||||
AllowAllConstructorInitializersOnNextLine: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortEnumsOnASingleLine: true
|
||||
AllowShortBlocksOnASingleLine: Never
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: All
|
||||
AllowShortLambdasOnASingleLine: All
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: MultiLine
|
||||
AttributeMacros:
|
||||
- __capability
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: false
|
||||
AfterClass: false
|
||||
AfterControlStatement: Never
|
||||
AfterEnum: false
|
||||
AfterFunction: false
|
||||
AfterNamespace: false
|
||||
AfterObjCDeclaration: false
|
||||
AfterStruct: false
|
||||
AfterUnion: false
|
||||
AfterExternBlock: false
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
BeforeLambdaBody: false
|
||||
BeforeWhile: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: true
|
||||
SplitEmptyNamespace: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeConceptDeclarations: true
|
||||
BreakBeforeBraces: Allman
|
||||
BreakBeforeInheritanceComma: false
|
||||
BreakInheritanceList: BeforeColon
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
BreakConstructorInitializers: BeforeColon
|
||||
BreakAfterJavaFieldAnnotations: false
|
||||
BreakStringLiterals: true
|
||||
ColumnLimit: 100
|
||||
CommentPragmas: '^ IWYU pragma:'
|
||||
CompactNamespaces: false
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: true
|
||||
DeriveLineEnding: true
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
EmptyLineBeforeAccessModifier: LogicalBlock
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
FixNamespaceComments: true
|
||||
ForEachMacros:
|
||||
- foreach
|
||||
- Q_FOREACH
|
||||
- BOOST_FOREACH
|
||||
StatementAttributeLikeMacros:
|
||||
- Q_EMIT
|
||||
IncludeBlocks: Preserve
|
||||
IncludeCategories:
|
||||
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
||||
Priority: 2
|
||||
SortPriority: 0
|
||||
CaseSensitive: false
|
||||
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
|
||||
Priority: 3
|
||||
SortPriority: 0
|
||||
CaseSensitive: false
|
||||
- Regex: '.*'
|
||||
Priority: 1
|
||||
SortPriority: 0
|
||||
CaseSensitive: false
|
||||
IncludeIsMainRegex: '(Test)?$'
|
||||
IncludeIsMainSourceRegex: ''
|
||||
IndentCaseLabels: false
|
||||
IndentCaseBlocks: false
|
||||
IndentGotoLabels: true
|
||||
IndentPPDirectives: None
|
||||
IndentExternBlock: NoIndent
|
||||
IndentRequires: false
|
||||
IndentWidth: 4
|
||||
IndentWrappedFunctionNames: false
|
||||
InsertTrailingCommas: None
|
||||
JavaScriptQuotes: Leave
|
||||
JavaScriptWrapImports: true
|
||||
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: None
|
||||
ObjCBinPackProtocolList: Auto
|
||||
ObjCBlockIndentWidth: 4
|
||||
ObjCBreakBeforeNestedBlockParam: true
|
||||
ObjCSpaceAfterProperty: false
|
||||
ObjCSpaceBeforeProtocolList: true
|
||||
PenaltyBreakAssignment: 2
|
||||
PenaltyBreakBeforeFirstCallParameter: 19
|
||||
PenaltyBreakComment: 300
|
||||
PenaltyBreakFirstLessLess: 120
|
||||
PenaltyBreakString: 1000
|
||||
PenaltyBreakTemplateDeclaration: 10
|
||||
PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 1000000
|
||||
PenaltyIndentedWhitespace: 0
|
||||
PointerAlignment: Right
|
||||
ReflowComments: true
|
||||
SortIncludes: true
|
||||
SortJavaStaticImport: Before
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: false
|
||||
SpaceAfterLogicalNot: false
|
||||
SpaceAfterTemplateKeyword: true
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeCaseColon: false
|
||||
SpaceBeforeCpp11BracedList: false
|
||||
SpaceBeforeCtorInitializerColon: true
|
||||
SpaceBeforeInheritanceColon: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceAroundPointerQualifiers: Default
|
||||
SpaceBeforeRangeBasedForLoopColon: true
|
||||
SpaceInEmptyBlock: false
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: false
|
||||
SpacesInConditionalStatement: false
|
||||
SpacesInContainerLiterals: true
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
SpaceBeforeSquareBrackets: false
|
||||
BitFieldColonSpacing: Both
|
||||
Standard: Latest
|
||||
StatementMacros:
|
||||
- Q_UNUSED
|
||||
- QT_REQUIRE_VERSION
|
||||
TabWidth: 8
|
||||
UseCRLF: false
|
||||
UseTab: Never
|
||||
WhitespaceSensitiveMacros:
|
||||
- STRINGIZE
|
||||
- PP_STRINGIZE
|
||||
- BOOST_PP_STRINGIZE
|
||||
- NS_SWIFT_NAME
|
||||
- CF_SWIFT_NAME
|
||||
...
|
||||
|
|
@ -1 +1,3 @@
|
|||
*.dll filter=lfs diff=lfs merge=lfs -text
|
||||
*.so filter=lfs diff=lfs merge=lfs -text
|
||||
*.so.0 filter=lfs diff=lfs merge=lfs -text
|
||||
|
|
|
@ -21,6 +21,8 @@ Make sure the `AUDIO` object is created once at the start of your game.
|
|||
You can use the documented wrapper functions included in the `.yymps` to control audio,
|
||||
or you can just use the C API directly and wrap it yourself.
|
||||
|
||||
Detailed API documentation can be found [here](http://moonside.games/docs/FAudioGMS/#/latest/).
|
||||
|
||||
## Platforms
|
||||
|
||||
FAudio itself is cross-platform and has been deployed by hundreds of games across many platforms.
|
||||
|
|
|
@ -63,6 +63,7 @@ LOCAL_MODULE := FAudioGMS
|
|||
# Tell ndk-build we rely on these two fellas:
|
||||
LOCAL_SHARED_LIBRARIES := SDL2 FAudio_static
|
||||
LOCAL_C_INCLUDES := $(SDL_PATH)/include $(FAUDIO_PATH)/include $(FAUDIOGMS_PATH)/src
|
||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
|
||||
LOCAL_SRC_FILES := $(FAUDIOGMS_PATH)/src/FAudioGMS.c $(LOCAL_PATH)/FAudioGMS_JNI.c
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
|
|
@ -27,6 +27,11 @@
|
|||
/* These are the Native -> JNI conv wrappers, they must only be built for Android */
|
||||
#ifdef __ANDROID__
|
||||
|
||||
/* no mangling please */
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#include <jni.h>
|
||||
#include <FAudioGMS.h>
|
||||
|
||||
|
@ -89,23 +94,23 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1StaticSound_1Destroy
|
|||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1StreamingSound_1LoadOGG
|
||||
(JNIEnv* jniEnv, jclass jniThis, jstring _filepath)
|
||||
(JNIEnv* jniEnv, jclass jniThis, jstring _filepath, jdouble _bufferSizeInBytes)
|
||||
{
|
||||
jboolean isCopy;
|
||||
const char* filepath;
|
||||
jdouble ret;
|
||||
|
||||
filepath = (*jniEnv)->GetStringUTFChars(jniEnv, _filepath, &isCopy);
|
||||
ret = FAudioGMS_StreamingSound_LoadOGG((char *)filepath);
|
||||
ret = FAudioGMS_StreamingSound_LoadOGG((char *)filepath, _bufferSizeInBytes);
|
||||
(*jniEnv)->ReleaseStringUTFChars(jniEnv, _filepath, filepath);
|
||||
return ret;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1Play
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID, jdouble _loop)
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID)
|
||||
{
|
||||
FAudioGMS_SoundInstance_Play(_soundInstanceID, _loop);
|
||||
FAudioGMS_SoundInstance_Play(_soundInstanceID);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
|
@ -125,6 +130,38 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1Stop
|
|||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1QueueSyncPlay
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID)
|
||||
{
|
||||
FAudioGMS_SoundInstance_QueueSyncPlay(_soundInstanceID);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1SyncPlay
|
||||
(JNIEnv* jniEnv, jclass jniThis)
|
||||
{
|
||||
FAudioGMS_SoundInstance_SyncPlay();
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1SetPlayRegion
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID, jdouble _startInMilliseconds, jdouble _endInMilliseconds)
|
||||
{
|
||||
FAudioGMS_SoundInstance_SetPlayRegion(_soundInstanceID, _startInMilliseconds, _endInMilliseconds);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1SetLoop
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID, jdouble _loop)
|
||||
{
|
||||
FAudioGMS_SoundInstance_SetLoop(_soundInstanceID, _loop);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1SetPan
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID, jdouble _pan)
|
||||
|
@ -165,6 +202,14 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1Set3DVelo
|
|||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1Set3DOrientation
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID, jdouble _xFront, jdouble _yFront, jdouble _zFront, jdouble _xTop, jdouble _yTop, jdouble _zTop)
|
||||
{
|
||||
FAudioGMS_SoundInstance_Set3DOrientation(_soundInstanceID, _xFront, _yFront, _zFront, _xTop, _yTop, _zTop);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1SetTrackPositionInSeconds
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID, jdouble _trackPositionInSeconds)
|
||||
|
@ -205,6 +250,14 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1SetBandPa
|
|||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1QueueSoundInstance
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID, jdouble _queueSoundInstanceID)
|
||||
{
|
||||
FAudioGMS_SoundInstance_QueueSoundInstance(_soundInstanceID, _queueSoundInstanceID);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1GetPitch
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _soundInstanceID)
|
||||
|
@ -298,8 +351,7 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1EffectChain_1AddReverb
|
|||
_reverbGain,
|
||||
_decayTime,
|
||||
_density,
|
||||
_roomSize
|
||||
);
|
||||
_roomSize);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
|
@ -327,6 +379,22 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SoundInstance_1SetEffect
|
|||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SetMasteringEffectChain
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _effectChainID, double _effectGain)
|
||||
{
|
||||
FAudioGMS_SetMasteringEffectChain(_effectChainID, _effectGain);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SetMasteringEffectGain
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _effectGain)
|
||||
{
|
||||
FAudioGMS_SetMasteringEffectGain(_effectGain);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SetListenerPosition
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _x, jdouble _y, jdouble _z)
|
||||
|
@ -343,6 +411,14 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SetListenerVelocity
|
|||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1SetListenerOrientation
|
||||
(JNIEnv* jniEnv, jclass jniThis, jdouble _xFront, jdouble _yFront, jdouble _zFront, jdouble _xTop, jdouble _yTop, jdouble _zTop)
|
||||
{
|
||||
FAudioGMS_SetListenerOrientation(_xFront, _yFront, _zFront, _xTop, _yTop, _zTop);
|
||||
return NOTHING;
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1PauseAll
|
||||
(JNIEnv* jniEnv, jclass jniThis)
|
||||
|
@ -383,6 +459,10 @@ Java_org_screwyoyo_faudiogms_FAudioGMSNative_FAudioGMS_1Destroy
|
|||
return NOTHING;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* __ANDROID__ */
|
||||
|
||||
/* Do nothing for other platforms, because they, thankly, do not require JNI bindings... */
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
cd /d %~dp0
|
||||
mkdir buildandroid
|
||||
|
||||
call ndk-build NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=Android.mk APP_ABI="armeabi-v7a arm64-v8a x86 x86_64" APP_PLATFORM=android-16 APP_MODULES="SDL2 FAudio_static FAudioGMS" NDK_OUT=buildandroid\obj NDK_LIBS_OUT=buildandroid\lib
|
||||
|
||||
xcopy /e /r /y buildandroid\lib ..\gamemaker\extensions\FAudioGMS\AndroidSource\libs
|
||||
rd /s /q buildandroid
|
|
@ -22,12 +22,14 @@ import android.content.res.AssetManager;
|
|||
public class FAudioGMSBridge extends FAudioGMSNative implements IExtensionBase
|
||||
{
|
||||
public SDLActivity sdl;
|
||||
public boolean paused;
|
||||
public boolean handlenativepause; /* automatically pause all sounds on onPause or not? */
|
||||
public boolean paused; /* are we currently paused */
|
||||
|
||||
public FAudioGMSBridge()
|
||||
{
|
||||
super();
|
||||
paused = false;
|
||||
handlenativepause = true; /* set this to false if you wish to handle pauses manually */
|
||||
paused = false; /* this one must be false at initialization */
|
||||
SDL.setContext(RunnerJNILib.GetApplicationContext());
|
||||
sdl = new SDLActivity();
|
||||
}
|
||||
|
@ -62,7 +64,7 @@ public class FAudioGMSBridge extends FAudioGMSNative implements IExtensionBase
|
|||
public void onPause()
|
||||
{
|
||||
sdl.onPause();
|
||||
if (!paused)
|
||||
if (handlenativepause && !paused)
|
||||
{
|
||||
paused = true;
|
||||
FAudioGMS_PauseAll();
|
||||
|
@ -72,7 +74,7 @@ public class FAudioGMSBridge extends FAudioGMSNative implements IExtensionBase
|
|||
public void onResume()
|
||||
{
|
||||
sdl.onResume();
|
||||
if (paused)
|
||||
if (handlenativepause && paused)
|
||||
{
|
||||
paused = false;
|
||||
FAudioGMS_ResumeAll();
|
||||
|
|
|
@ -12,26 +12,73 @@ public class FAudioGMSNative
|
|||
/* exactly as in FAudioGMS_JNI.c: */
|
||||
public native double FAudioGMS_Init(double spatialDistanceScale, double timestep);
|
||||
|
||||
public native double FAudioGMS_StaticSound_LoadWAV(String filePath);
|
||||
public native double FAudioGMS_StaticSound_CreateSoundInstance(double staticSoundID);
|
||||
public native double FAudioGMS_StaticSound_LoadWAV(
|
||||
String filePath); /* returns a static sound ID */
|
||||
public native double FAudioGMS_StaticSound_CreateSoundInstance(
|
||||
double staticSoundID); /* returns a sound instance ID */
|
||||
public native double FAudioGMS_StaticSound_Destroy(double staticSoundID);
|
||||
|
||||
public native double FAudioGMS_StreamingSound_LoadOGG(String filepath);
|
||||
/* returns a sound instance ID */
|
||||
public native double FAudioGMS_StreamingSound_LoadOGG(
|
||||
String filepath,
|
||||
double bufferSizeInBytes); /* if 0 is passed we will use a sensible default*/
|
||||
|
||||
public native double FAudioGMS_SoundInstance_Play(double soundInstanceID, double loop);
|
||||
public native double FAudioGMS_SoundInstance_Play(double soundInstanceID);
|
||||
public native double FAudioGMS_SoundInstance_Pause(double soundInstanceID);
|
||||
public native double FAudioGMS_SoundInstance_Stop(double soundInstanceID);
|
||||
|
||||
public native double FAudioGMS_SoundInstance_QueueSyncPlay(double soundInstanceID);
|
||||
public native double FAudioGMS_SoundInstance_SyncPlay();
|
||||
|
||||
public native double FAudioGMS_SoundInstance_SetPlayRegion(
|
||||
double soundInstanceID,
|
||||
double startInMilliseconds,
|
||||
double endInMilliseconds);
|
||||
public native double FAudioGMS_SoundInstance_SetLoop(double soundInstanceID, double loop);
|
||||
public native double FAudioGMS_SoundInstance_SetPan(double soundInstanceID, double pan);
|
||||
public native double FAudioGMS_SoundInstance_SetPitch(double soundInstanceID, double pitch);
|
||||
public native double FAudioGMS_SoundInstance_SetVolume(double soundInstanceID, double volume);
|
||||
public native double FAudioGMS_SoundInstance_Set3DPosition(double soundInstanceID, double x, double y, double z);
|
||||
public native double FAudioGMS_SoundInstance_Set3DVelocity(double soundInstanceID, double xVelocity, double yVelocity, double zVelocity);
|
||||
public native double FAudioGMS_SoundInstance_SetTrackPositionInSeconds(double soundInstanceID, double trackPositionInSeconds);
|
||||
public native double FAudioGMS_SoundInstance_SetVolumeOverTime(double soundInstanceID, double volume, double milliseconds);
|
||||
public native double FAudioGMS_SoundInstance_SetLowPassFilter(double soundInstanceID, double lowPassFilter, double Q);
|
||||
public native double FAudioGMS_SoundInstance_SetHighPassFilter(double soundInstanceID, double highPassFilter, double Q);
|
||||
public native double FAudioGMS_SoundInstance_SetBandPassFilter(double soundInstanceID, double bandPassFilter, double Q);
|
||||
public native double FAudioGMS_SoundInstance_Set3DPosition(
|
||||
double soundInstanceID,
|
||||
double x,
|
||||
double y,
|
||||
double z);
|
||||
public native double FAudioGMS_SoundInstance_Set3DVelocity(
|
||||
double soundInstanceID,
|
||||
double xVelocity,
|
||||
double yVelocity,
|
||||
double zVelocity);
|
||||
public native double FAudioGMS_SoundInstance_Set3DOrientation(
|
||||
double soundInstanceID,
|
||||
double xFront,
|
||||
double yFront,
|
||||
double zFront,
|
||||
double xTop,
|
||||
double yTop,
|
||||
double zTop);
|
||||
public native double FAudioGMS_SoundInstance_SetTrackPositionInSeconds(
|
||||
double soundInstanceID,
|
||||
double trackPositionInSeconds);
|
||||
public native double FAudioGMS_SoundInstance_SetVolumeOverTime(
|
||||
double soundInstanceID,
|
||||
double volume,
|
||||
double milliseconds);
|
||||
public native double FAudioGMS_SoundInstance_SetLowPassFilter(
|
||||
double soundInstanceID,
|
||||
double lowPassFilter,
|
||||
double Q);
|
||||
public native double FAudioGMS_SoundInstance_SetHighPassFilter(
|
||||
double soundInstanceID,
|
||||
double highPassFilter,
|
||||
double Q);
|
||||
public native double FAudioGMS_SoundInstance_SetBandPassFilter(
|
||||
double soundInstanceID,
|
||||
double bandPassFilter,
|
||||
double Q);
|
||||
|
||||
public native double FAudioGMS_SoundInstance_QueueSoundInstance(
|
||||
double soundInstanceID,
|
||||
double queueSoundInstanceID);
|
||||
|
||||
public native double FAudioGMS_SoundInstance_GetPitch(double soundInstanceID);
|
||||
public native double FAudioGMS_SoundInstance_GetVolume(double soundInstanceID);
|
||||
|
@ -58,22 +105,41 @@ public class FAudioGMSNative
|
|||
double reverbGain,
|
||||
double decayTime,
|
||||
double density,
|
||||
double roomSize
|
||||
);
|
||||
double roomSize);
|
||||
public native double FAudioGMS_EffectChain_Destroy(double effectChainID);
|
||||
|
||||
/*
|
||||
* NOTE: Any changes to the effect chain will NOT apply after this is set!
|
||||
* You MUST call SetEffectChain again if you make changes to the effect chain parameters!
|
||||
* You MUST call SetEffectChain again if you make changes to the effect
|
||||
* chain parameters!
|
||||
*/
|
||||
public native double FAudioGMS_SoundInstance_SetEffectChain(double soundInstanceID, double effectChainID, double effectGain);
|
||||
public native double FAudioGMS_SoundInstance_SetEffectGain(double soundInstanceID, double effectGain);
|
||||
public native double FAudioGMS_SoundInstance_SetEffectChain(
|
||||
double soundInstanceID,
|
||||
double effectChainID,
|
||||
double effectGain);
|
||||
public native double FAudioGMS_SoundInstance_SetEffectGain(
|
||||
double soundInstanceID,
|
||||
double effectGain);
|
||||
|
||||
public native double FAudioGMS_SetMasteringEffectChain(double effectChainID, double effectGain);
|
||||
public native double FAudioGMS_SetMasteringEffectGain(double effectGain);
|
||||
|
||||
public native double FAudioGMS_SetListenerPosition(double x, double y, double z);
|
||||
public native double FAudioGMS_SetListenerVelocity(double xVelocity, double yVelocity, double zVelocity);
|
||||
public native double FAudioGMS_SetListenerVelocity(
|
||||
double xVelocity,
|
||||
double yVelocity,
|
||||
double zVelocity);
|
||||
public native double FAudioGMS_SetListenerOrientation(
|
||||
double xFront,
|
||||
double yFront,
|
||||
double zFront,
|
||||
double xTop,
|
||||
double yTop,
|
||||
double zTop);
|
||||
|
||||
public native double FAudioGMS_PauseAll(); /* mobile platforms, man... */
|
||||
public native double FAudioGMS_ResumeAll(); /* same thing here */
|
||||
public native double FAudioGMS_PauseAll(); /* useful for mobile platforms, etc
|
||||
*/
|
||||
public native double FAudioGMS_ResumeAll(); /* same as above */
|
||||
public native double FAudioGMS_StopAll();
|
||||
|
||||
public native double FAudioGMS_Update();
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
gamemaker/extensions/FAudioGMS/FAudioGMS.dll (Stored with Git LFS)
BIN
gamemaker/extensions/FAudioGMS/FAudioGMS.dll (Stored with Git LFS)
Binary file not shown.
|
@ -7,7 +7,7 @@
|
|||
"packageId": "",
|
||||
"productId": "",
|
||||
"author": "",
|
||||
"date": "2021-10-22T04:46:44.6241287+05:00",
|
||||
"date": "2021-10-21T16:46:44.6241287-07:00",
|
||||
"license": "",
|
||||
"description": "",
|
||||
"helpfile": "",
|
||||
|
@ -25,8 +25,7 @@
|
|||
{"externalName":"FAudioGMS_StaticSound_LoadWAV","kind":1,"help":"FAudioGMS_StaticSound_LoadWAV(filePath)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
1,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_StaticSound_LoadWAV","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_Play","kind":1,"help":"FAudioGMS_SoundInstance_Play(id, loop)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
{"externalName":"FAudioGMS_SoundInstance_Play","kind":1,"help":"FAudioGMS_SoundInstance_Play(id)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Play","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_Pause","kind":1,"help":"FAudioGMS_SoundInstance_Pause(id)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
|
@ -56,8 +55,9 @@
|
|||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SetListenerPosition","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_StreamingSound_LoadOGG","kind":1,"help":"FAudioGMS_StreamingSound_LoadOGG(filePath)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
{"externalName":"FAudioGMS_StreamingSound_LoadOGG","kind":1,"help":"FAudioGMS_StreamingSound_LoadOGG(filePath, bufferSizeInBytes)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
1,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_StreamingSound_LoadOGG","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_SetPan","kind":1,"help":"FAudioGMS_SoundInstance_SetPan(soundInstanceID, pan)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
|
@ -77,10 +77,10 @@
|
|||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetVolumeOverTime","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_StopAll","kind":1,"help":"FAudioGMS_StopAll()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_StopAll","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_SetTrackPosition","kind":1,"help":"FAudioGMS_SoundInstance_SetTrackPosition(soundInstanceID, trackPositionInSeconds)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
{"externalName":"FAudioGMS_SoundInstance_SetTrackPositionInSeconds","kind":1,"help":"FAudioGMS_SoundInstance_SetTrackPositionInSeconds(soundInstanceID, trackPositionInSeconds)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetTrackPosition","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetTrackPositionInSeconds","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds","kind":1,"help":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds(soundInstanceID)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
|
@ -157,10 +157,51 @@
|
|||
],"resourceVersion":"1.0","name":"FAudioGMS_SetListenerVelocity","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"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",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_SetPlayRegion","kind":1,"help":"FAudioGMS_SoundInstance_SetPlayRegion(soundInstanceID, startInMilliseconds, endInMilliseconds)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetPlayRegion","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SetMasteringEffectChain","kind":1,"help":"FAudioGMS_SetMasteringEffectChain(effectChainID, effectGain)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SetMasteringEffectChain","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SetMasteringEffectGain","kind":1,"help":"FAudioGMS_SetMasteringEffectGain(effectGain)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SetMasteringEffectGain","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_SetLoop","kind":1,"help":"FAudioGMS_SoundInstance_SetLoop(soundInstanceID, loop)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SetLoop","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_QueueSoundInstance","kind":1,"help":"FAudioGMS_SoundInstance_QueueSoundInstance(soundInstanceID, queueSoundInstanceID)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_QueueSoundInstance","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_QueueSyncPlay","kind":1,"help":"FAudioGMS_SoundInstance_QueueSyncPlay(soundInstanceID)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_QueueSyncPlay","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_SyncPlay","kind":1,"help":"FAudioGMS_SoundInstance_SyncPlay()","hidden":false,"returnType":2,"argCount":0,"args":[],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_SyncPlay","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SoundInstance_Set3DOrientation","kind":1,"help":"FAudioGMS_SoundInstance_Set3DOrientation(soundInstanceID, xFront, yFront, zFront, xTop, yTop, zTop)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SoundInstance_Set3DOrientation","tags":[],"resourceType":"GMExtensionFunction",},
|
||||
{"externalName":"FAudioGMS_SetListenerOrientation","kind":1,"help":"FAudioGMS_SetListenerOrientation(xFront, yFront, zFront, xTop, yTop, zTop)","hidden":false,"returnType":2,"argCount":0,"args":[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
],"resourceVersion":"1.0","name":"FAudioGMS_SetListenerOrientation","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",},
|
||||
{"TargetMask":3,"resourceVersion":"1.0","name":"FAudioGMSAndroidDummy.ext","tags":[],"resourceType":"GMProxyFile",},
|
||||
{"TargetMask":7,"resourceVersion":"1.0","name":"libSDL2-2.0.so.0","tags":[],"resourceType":"GMProxyFile",},
|
||||
],"copyToTargets":200,"order":[
|
||||
{"name":"FAudioGMS_Init","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_StaticSound_LoadWAV","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
|
@ -170,12 +211,17 @@
|
|||
{"name":"FAudioGMS_SoundInstance_Play","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_Pause","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_Stop","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_QueueSyncPlay","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SyncPlay","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetLoop","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetPan","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetPitch","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetVolume","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_Set3DPosition","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_Set3DVelocity","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetTrackPosition","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_Set3DOrientation","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetTrackPositionInSeconds","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetPlayRegion","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetVolumeOverTime","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetLowPassFilter","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetHighPassFilter","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
|
@ -184,6 +230,7 @@
|
|||
{"name":"FAudioGMS_SoundInstance_GetVolume","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_GetTrackLengthInSeconds","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_GetTrackPositionInSeconds","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_QueueSoundInstance","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_Destroy","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_DestroyWhenFinished","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_EffectChain_Create","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
|
@ -192,8 +239,11 @@
|
|||
{"name":"FAudioGMS_EffectChain_Destroy","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetEffectChain","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SoundInstance_SetEffectGain","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SetMasteringEffectChain","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SetMasteringEffectGain","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SetListenerPosition","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SetListenerVelocity","path":"extensions/FAudioGMS/FAudioGMS.yy",},
|
||||
{"name":"FAudioGMS_SetListenerOrientation","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",},
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1 +1,17 @@
|
|||
/// @description Clean up all resources when the game is about to end.
|
||||
|
||||
/* Destroy sound instances first: */
|
||||
// sndInst.Stop();
|
||||
// sndInst.Destroy();
|
||||
// sndInst = undefined;
|
||||
|
||||
/* Only then destroy static sounds: */
|
||||
// snd.Destroy();
|
||||
// snd = undefined;
|
||||
|
||||
/* And only then, destroy effect chains */
|
||||
effChain.Destroy();
|
||||
effChain = undefined;
|
||||
|
||||
/* Finish up the system */
|
||||
FAudioGMS_Destroy();
|
||||
|
|
|
@ -1,6 +1,15 @@
|
|||
/// @description Initialize audio.
|
||||
|
||||
/* First initialize the system: */
|
||||
var spatialDistanceScale = 50; // makes "3D" audio louder
|
||||
FAudioGMS_Init(spatialDistanceScale, 1 / 60);
|
||||
var timestep = game_get_speed(gamespeed_microseconds) / 1000000; // default, autodetect from GM timestep.
|
||||
FAudioGMS_Init(spatialDistanceScale, timestep);
|
||||
|
||||
/* Init Effects Chains Here */
|
||||
effChain = new EffectChain();
|
||||
effChain.AddDefaultReverb();
|
||||
|
||||
/* Load Audio Assets Here */
|
||||
// snd = LoadStaticSound("go-go-go-tigerblood.wav");
|
||||
// sndInst = snd.Play();
|
||||
// sndInst.SetEffectChain(effChain, 1); // apply default reverb to the instance.
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
/// @description MUST be called once per frame!
|
||||
FAudioGMS_Update();
|
|
@ -19,16 +19,29 @@ function StaticSound(_staticSoundID) constructor
|
|||
{
|
||||
staticSoundID = _staticSoundID;
|
||||
|
||||
// Returns a sound instance!
|
||||
// MUST be destroyed when you aren't referencing it any more or you will leak memory!
|
||||
static Play = function(pan = 0, pitch = 1, volume = 1, loop = false)
|
||||
// Create a sound instance from this static sound.
|
||||
static CreateSoundInstance = function()
|
||||
{
|
||||
var instanceID = FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID);
|
||||
var instance = new SoundInstance(instanceID);
|
||||
return instance;
|
||||
}
|
||||
|
||||
// Plays and returns a sound instance!
|
||||
// MUST be destroyed when you aren't referencing it any more or you will leak memory!
|
||||
static Play = function(pan = 0, pitch = 1, volume = 1, loop = false, loopStartInMilliseconds = 0, loopEndInMilliseconds = 0)
|
||||
{
|
||||
var instanceID = FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID);
|
||||
var instance = new SoundInstance(instanceID);
|
||||
instance.SetLoop(loop);
|
||||
if (loop)
|
||||
{
|
||||
instance.SetPlayRegion(loopStartInMilliseconds, loopEndInMilliseconds);
|
||||
}
|
||||
instance.SetPan(pan);
|
||||
instance.SetPitch(pitch);
|
||||
instance.SetVolume(volume);
|
||||
instance.Play(loop);
|
||||
instance.Play();
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
@ -40,12 +53,13 @@ function StaticSound(_staticSoundID) constructor
|
|||
instance.DestroyWhenFinished();
|
||||
}
|
||||
|
||||
// Returns a sound instance!
|
||||
// Plays and returns a sound instance!
|
||||
// MUST be destroyed when you aren't referencing it any more or you will leak memory!
|
||||
static PlaySpatial = function(xPosition, yPosition, zPosition, pitch = 1, volume = 1, loop = false)
|
||||
{
|
||||
var instanceID = FAudioGMS_StaticSound_CreateSoundInstance(staticSoundID);
|
||||
var instance = new SoundInstance(instanceID);
|
||||
instance.SetLoop(loop);
|
||||
instance.Set3DPosition(xPosition, yPosition, zPosition);
|
||||
instance.SetPitch(pitch);
|
||||
instance.SetVolume(volume);
|
||||
|
@ -74,10 +88,10 @@ function StaticSound(_staticSoundID) constructor
|
|||
// The audio is streamed off the disk, so only a small amount of memory is used at a time.
|
||||
// Good for things like music or voiceover playback.
|
||||
// Note that StreamingSounds are SoundInstances.
|
||||
function LoadStreamingSound(filename)
|
||||
function LoadStreamingSound(filename, bufferSizeInBytes = 0)
|
||||
{
|
||||
var filePath = GetPathPrepend() + "audio/streaming/" + filename;
|
||||
soundInstanceID = FAudioGMS_StreamingSound_LoadOGG(filePath);
|
||||
soundInstanceID = FAudioGMS_StreamingSound_LoadOGG(filePath, bufferSizeInBytes);
|
||||
return new SoundInstance(soundInstanceID);
|
||||
}
|
||||
|
||||
|
@ -86,9 +100,9 @@ function SoundInstance(_soundInstanceID) constructor
|
|||
soundInstanceID = _soundInstanceID;
|
||||
|
||||
// Plays the sound or resumes from pause.
|
||||
static Play = function(loop = false)
|
||||
static Play = function()
|
||||
{
|
||||
FAudioGMS_SoundInstance_Play(soundInstanceID, loop);
|
||||
FAudioGMS_SoundInstance_Play(soundInstanceID);
|
||||
}
|
||||
|
||||
// Pauses playback.
|
||||
|
@ -115,6 +129,18 @@ function SoundInstance(_soundInstanceID) constructor
|
|||
FAudioGMS_SoundInstance_Set3DVelocity(soundInstanceID, xVelocity, yVelocity, zVelocity);
|
||||
}
|
||||
|
||||
// Sets the 3-dimensional orientation of the sound.
|
||||
static Set3DOrientation = function(xFront, yFront, zFront, xTop, yTop, zTop)
|
||||
{
|
||||
FAudioGMS_SoundInstance_Set3DOrientation(soundInstanceID, xFront, yFront, zFront, xTop, yTop, zTop);
|
||||
}
|
||||
|
||||
// Sets whether the sound instance loops (true) or does not (false).
|
||||
static SetLoop = function(loop)
|
||||
{
|
||||
FAudioGMS_SoundInstance_SetLoop(soundInstanceID, loop);
|
||||
}
|
||||
|
||||
// Sets the panning value of the sound. -1 is farthest left, 1 is farthest right, 0 is center.
|
||||
// NOTE: This is ignored if you have called Set3DPosition.
|
||||
static SetPan = function(pan)
|
||||
|
@ -145,7 +171,19 @@ function SoundInstance(_soundInstanceID) constructor
|
|||
// Sets the position of track playback.
|
||||
static SetTrackPosition = function(seconds)
|
||||
{
|
||||
FAudioGMS_SoundInstance_SetTrackPosition(soundInstanceID, seconds);
|
||||
FAudioGMS_SoundInstance_SetTrackPositionInSeconds(soundInstanceID, seconds);
|
||||
}
|
||||
|
||||
// Queues this sound instance for playing in sync.
|
||||
static QueueSyncPlay = function()
|
||||
{
|
||||
FAudioGMS_SoundInstance_QueueSyncPlay(soundInstanceID);
|
||||
}
|
||||
|
||||
// Sets the playback region for the sound instance.
|
||||
static SetPlayRegion = function(loopStartInMilliseconds, loopEndInMilliseconds)
|
||||
{
|
||||
FAudioGMS_SoundInstance_SetPlayRegion(soundInstanceID, loopStartInMilliseconds, loopEndInMilliseconds);
|
||||
}
|
||||
|
||||
// Sets a low pass filter on the sound.
|
||||
|
@ -188,6 +226,11 @@ function SoundInstance(_soundInstanceID) constructor
|
|||
FAudioGMS_SoundInstance_SetEffectGain(soundInstanceID, gain);
|
||||
}
|
||||
|
||||
static QueueSoundInstance = function(queueSoundInstance)
|
||||
{
|
||||
FAudioGMS_SoundInstance_QueueSoundInstance(soundInstanceID, queueSoundInstance.soundInstanceID);
|
||||
}
|
||||
|
||||
// Gets the pitch of the sound.
|
||||
static GetPitch = function()
|
||||
{
|
||||
|
@ -232,6 +275,12 @@ function SoundInstance(_soundInstanceID) constructor
|
|||
SetVolume(1);
|
||||
}
|
||||
|
||||
// Plays the sound instance queue.
|
||||
function SyncPlay()
|
||||
{
|
||||
FAudioGMS_SoundInstance_SyncPlay();
|
||||
}
|
||||
|
||||
// Effect chains allow you to modify sound playback using audio effects.
|
||||
// Right now only reverb is implemented, but more effects will probably come later.
|
||||
function EffectChain() constructor
|
||||
|
@ -317,6 +366,12 @@ function SetListenerVelocity(xVelocity, yVelocity, zVelocity)
|
|||
FAudioGMS_SetListenerVelocity(xVelocity, yVelocity, zVelocity);
|
||||
}
|
||||
|
||||
// Sets the orientation of the listener for 3D audio.
|
||||
function SetListenerOrientation(xFront, yFront, zFront, xTop, yTop, zTop)
|
||||
{
|
||||
FAudioGMS_SetListenerOrientation(xFront, yFront, zFront, xTop, yTop, zTop);
|
||||
}
|
||||
|
||||
// Stops all audio playback.
|
||||
function StopAllAudio()
|
||||
{
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 28528bc885581bad58050517d78848cb206b2aa3
|
||||
Subproject commit caf9754455b8ad0f6df5d024203940e9b6e3f47e
|
7954
lib/dr_wav.h
7954
lib/dr_wav.h
File diff suppressed because it is too large
Load Diff
1219
src/FAudioGMS.c
1219
src/FAudioGMS.c
File diff suppressed because it is too large
Load Diff
102
src/FAudioGMS.h
102
src/FAudioGMS.h
|
@ -36,31 +36,79 @@
|
|||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
extern "C"
|
||||
{
|
||||
#endif /* __cplusplus */
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_Init(double spatialDistanceScale, double timestep);
|
||||
|
||||
FAUDIOGMSAPI double FAudioGMS_StaticSound_LoadWAV(char *filePath); /* returns a static sound ID */
|
||||
FAUDIOGMSAPI double FAudioGMS_StaticSound_CreateSoundInstance(double staticSoundID); /* returns a sound instance ID */
|
||||
FAUDIOGMSAPI double FAudioGMS_StaticSound_LoadWAV(
|
||||
char *filePath); /* returns a static sound ID */
|
||||
FAUDIOGMSAPI double FAudioGMS_StaticSound_CreateSoundInstance(
|
||||
double staticSoundID); /* returns a sound instance ID */
|
||||
FAUDIOGMSAPI void FAudioGMS_StaticSound_Destroy(double staticSoundID);
|
||||
|
||||
FAUDIOGMSAPI double FAudioGMS_StreamingSound_LoadOGG(char* filepath); /* returns a sound instance ID */
|
||||
/* returns a sound instance ID */
|
||||
FAUDIOGMSAPI double FAudioGMS_StreamingSound_LoadOGG(
|
||||
char *filepath,
|
||||
double bufferSizeInBytes); /* if 0 is passed we will use a sensible default*/
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Play(double soundInstanceID, double loop);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Play(double soundInstanceID);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Pause(double soundInstanceID);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Stop(double soundInstanceID);
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_QueueSyncPlay(double soundInstanceID);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SyncPlay();
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetPlayRegion(
|
||||
double soundInstanceID,
|
||||
double startInMilliseconds,
|
||||
double endInMilliseconds);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetLoop(double soundInstanceID, double loop);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetPan(double soundInstanceID, double pan);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetPitch(double soundInstanceID, double pitch);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetVolume(double soundInstanceID, double volume);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Set3DPosition(double soundInstanceID, double x, double y, double z);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Set3DVelocity(double soundInstanceID, double xVelocity, double yVelocity, double zVelocity);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetTrackPositionInSeconds(double soundInstanceID, double trackPositionInSeconds);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetVolumeOverTime(double soundInstanceID, double volume, double milliseconds);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetLowPassFilter(double soundInstanceID, double lowPassFilter, double Q);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetHighPassFilter(double soundInstanceID, double highPassFilter, double Q);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetBandPassFilter(double soundInstanceID, double bandPassFilter, double Q);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Set3DPosition(
|
||||
double soundInstanceID,
|
||||
double x,
|
||||
double y,
|
||||
double z);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Set3DVelocity(
|
||||
double soundInstanceID,
|
||||
double xVelocity,
|
||||
double yVelocity,
|
||||
double zVelocity);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_Set3DOrientation(
|
||||
double soundInstanceID,
|
||||
double xFront,
|
||||
double yFront,
|
||||
double zFront,
|
||||
double xTop,
|
||||
double yTop,
|
||||
double zTop);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetTrackPositionInSeconds(
|
||||
double soundInstanceID,
|
||||
double trackPositionInSeconds);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetVolumeOverTime(
|
||||
double soundInstanceID,
|
||||
double volume,
|
||||
double milliseconds);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetLowPassFilter(
|
||||
double soundInstanceID,
|
||||
double lowPassFilter,
|
||||
double Q);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetHighPassFilter(
|
||||
double soundInstanceID,
|
||||
double highPassFilter,
|
||||
double Q);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetBandPassFilter(
|
||||
double soundInstanceID,
|
||||
double bandPassFilter,
|
||||
double Q);
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_QueueSoundInstance(
|
||||
double soundInstanceID,
|
||||
double queueSoundInstanceID);
|
||||
|
||||
FAUDIOGMSAPI double FAudioGMS_SoundInstance_GetPitch(double soundInstanceID);
|
||||
FAUDIOGMSAPI double FAudioGMS_SoundInstance_GetVolume(double soundInstanceID);
|
||||
|
@ -87,24 +135,40 @@ FAUDIOGMSAPI void FAudioGMS_EffectChain_AddReverb(
|
|||
double reverbGain,
|
||||
double decayTime,
|
||||
double density,
|
||||
double roomSize
|
||||
);
|
||||
double roomSize);
|
||||
FAUDIOGMSAPI void FAudioGMS_EffectChain_Destroy(double effectChainID);
|
||||
|
||||
/*
|
||||
* NOTE: Any changes to the effect chain will NOT apply after this is set!
|
||||
* You MUST call SetEffectChain again if you make changes to the effect chain parameters!
|
||||
* You MUST call SetEffectChain again if you make changes to the effect
|
||||
* chain parameters!
|
||||
*/
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetEffectChain(double soundInstanceID, double effectChainID, double effectGain);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetEffectGain(double soundInstanceID, double effectGain);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetEffectChain(
|
||||
double soundInstanceID,
|
||||
double effectChainID,
|
||||
double effectGain);
|
||||
FAUDIOGMSAPI void FAudioGMS_SoundInstance_SetEffectGain(
|
||||
double soundInstanceID,
|
||||
double effectGain);
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_SetMasteringEffectChain(double effectChainID, double effectGain);
|
||||
FAUDIOGMSAPI void FAudioGMS_SetMasteringEffectGain(double effectGain);
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_SetListenerPosition(double x, double y, double z);
|
||||
FAUDIOGMSAPI void FAudioGMS_SetListenerVelocity(double xVelocity, double yVelocity, double zVelocity);
|
||||
FAUDIOGMSAPI void FAudioGMS_SetListenerVelocity(
|
||||
double xVelocity,
|
||||
double yVelocity,
|
||||
double zVelocity);
|
||||
FAUDIOGMSAPI void FAudioGMS_SetListenerOrientation(
|
||||
double xFront,
|
||||
double yFront,
|
||||
double zFront,
|
||||
double xTop,
|
||||
double yTop,
|
||||
double zTop);
|
||||
|
||||
FAUDIOGMSAPI void FAudioGMS_PauseAll(); /* useful for mobile platforms, etc */
|
||||
FAUDIOGMSAPI void FAudioGMS_PauseAll(); /* useful for mobile platforms, etc
|
||||
*/
|
||||
FAUDIOGMSAPI void FAudioGMS_ResumeAll(); /* same as above */
|
||||
FAUDIOGMSAPI void FAudioGMS_StopAll();
|
||||
|
||||
|
|
|
@ -39,13 +39,14 @@
|
|||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
</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