From 8e86181b1f3379ba17307d281edde414a848bc22 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Thu, 21 Oct 2021 12:30:23 -0700 Subject: [PATCH] initial commit --- .gitattributes | 3 ++ .gitignore | 0 LICENSE | 21 ++++++++ README.md | 11 ++++ src/FAudioGMS.c | 37 +++++++++++++ src/FAudioGMS.h | 54 +++++++++++++++++++ visualc/FAudioGMS.sln | 30 +++++++++++ visualc/FAudioGMS.vcxproj | 97 ++++++++++++++++++++++++++++++++++ visualc/FAudioGMS.vcxproj.user | 4 ++ 9 files changed, 257 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 src/FAudioGMS.c create mode 100644 src/FAudioGMS.h create mode 100644 visualc/FAudioGMS.sln create mode 100644 visualc/FAudioGMS.vcxproj create mode 100644 visualc/FAudioGMS.vcxproj.user diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..cd3f225 --- /dev/null +++ b/.gitattributes @@ -0,0 +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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4ab0e4e --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +FAudioGMS - Game Maker FAudio bindings in C + +Copyright (c) 2021 Evan "cosmonaut" 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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..3f12312 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# FAudioGMS + +FAudioGMS is a bindings extension for Game Maker Studio 2 that allows Game Maker applications to utilize [FAudio](https://github.com/FNA-XNA/FAudio). + +When using Game Maker, you might have asked yourself questions like "Why does this game engine that I paid hundreds of dollars to use have a completely broken audio engine? Why does it do broken format conversions every single time I run my game?" Well, that's a great question that I can't answer, but until YYG gets their shit together I have provided this tool so that you can have a functioning audio system in your game. It can even do fancy things that GM can't normally do, like dynamic reverb and pass filters. Fun! + +As an addendum, if the YoYoGames circus needs a new clown for tasks like fixing the audio engine that's been mostly broken for a decade, I am a highly skilled programmer and I work for competitive rates. You know where to find me. + +## License + +This library is licensed under the zlib license. See LICENSE file for details. diff --git a/src/FAudioGMS.c b/src/FAudioGMS.c new file mode 100644 index 0000000..58f45b6 --- /dev/null +++ b/src/FAudioGMS.c @@ -0,0 +1,37 @@ +/* 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 + * + */ + +#include "FAudioGMS.h" + +typedef struct FAudioGMS_Device +{ + +} FAudioGMS_Device; + +void FAudioGMS_Init() +{ + +} diff --git a/src/FAudioGMS.h b/src/FAudioGMS.h new file mode 100644 index 0000000..52a601f --- /dev/null +++ b/src/FAudioGMS.h @@ -0,0 +1,54 @@ +/* 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 + * + */ + +#ifndef FAUDIOGMS_H +#define FAUDIOGMS_H + +#include +#include +#include + +#ifdef _WIN32 +#define FAUDIOGMSAPI __declspec(dllexport) +#define FAUDIOGMSCALL __cdecl +#else +#define FAUDIOGMSAPI +#define FAUDIOGMSCALL +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +FAUDIOGMSAPI void FAudioGMS_Init(); + +FAUDIOGMSAPI void FAudioGMS_Destroy(); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* FAUDIOGMS_H */ diff --git a/visualc/FAudioGMS.sln b/visualc/FAudioGMS.sln new file mode 100644 index 0000000..e66fa3f --- /dev/null +++ b/visualc/FAudioGMS.sln @@ -0,0 +1,30 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.645 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FAudioGMS", "FAudioGMS.vcxproj", "{6DB15344-E000-45CB-A48A-1D72F7D6E945}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + MinSizeRel|x64 = MinSizeRel|x64 + Release|x64 = Release|x64 + RelWithDebInfo|x64 = RelWithDebInfo|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x64.ActiveCfg = Debug|x64 + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x64.Build.0 = Debug|x64 + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.MinSizeRel|x64.ActiveCfg = Release|x64 + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.MinSizeRel|x64.Build.0 = Release|x64 + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x64.ActiveCfg = Release|x64 + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x64.Build.0 = Release|x64 + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.RelWithDebInfo|x64.ActiveCfg = Release|x64 + {6DB15344-E000-45CB-A48A-1D72F7D6E945}.RelWithDebInfo|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7B2DB465-0A55-3811-9EF4-A520B47653D2} + EndGlobalSection +EndGlobal diff --git a/visualc/FAudioGMS.vcxproj b/visualc/FAudioGMS.vcxproj new file mode 100644 index 0000000..1097615 --- /dev/null +++ b/visualc/FAudioGMS.vcxproj @@ -0,0 +1,97 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {4F20502A-F926-4D12-872D-64AC2E065078} + FAudioGMS + 10.0 + + + + DynamicLibrary + true + MultiByte + + + DynamicLibrary + false + true + MultiByte + + + v142 + + + ClangCL + + + v142 + + + ClangCL + + + + + + + + + + true + true + + + false + false + false + + + + Level3 + Disabled + Default + + + DebugFull + + + + + Level3 + MaxSpeed + true + true + + + true + true + + + + + + + + + + + + diff --git a/visualc/FAudioGMS.vcxproj.user b/visualc/FAudioGMS.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/visualc/FAudioGMS.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file