Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@
[submodule "eng/submodules/silk.net-2.x"]
path = eng/submodules/silk.net-2.x
url = https://github.com/dotnet/Silk.NET
[submodule "eng/submodules/openal-soft"]
path = eng/submodules/openal-soft
url = https://github.com/kcat/openal-soft
10 changes: 10 additions & 0 deletions Silk.NET.sln
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windowing", "Windowing", "{
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Windowing", "sources\Windowing\Windowing\Silk.NET.Windowing.csproj", "{EF07CBB5-D253-4CA9-A5DA-8B3DF2B0DF8E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenAL", "OpenAL", "{AF13F7C9-4EE2-403E-B3D2-C4C2E45D9EF3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.OpenAL", "sources\OpenAL\OpenAL\Silk.NET.OpenAL.csproj", "{1FFFDD72-D023-441C-AF49-F1EA78FF7DE9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -168,6 +172,10 @@ Global
{EF07CBB5-D253-4CA9-A5DA-8B3DF2B0DF8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EF07CBB5-D253-4CA9-A5DA-8B3DF2B0DF8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EF07CBB5-D253-4CA9-A5DA-8B3DF2B0DF8E}.Release|Any CPU.Build.0 = Release|Any CPU
{1FFFDD72-D023-441C-AF49-F1EA78FF7DE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FFFDD72-D023-441C-AF49-F1EA78FF7DE9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FFFDD72-D023-441C-AF49-F1EA78FF7DE9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FFFDD72-D023-441C-AF49-F1EA78FF7DE9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -200,6 +208,8 @@ Global
{F16C0AB9-DE7E-4C09-9EE9-DAA8B8E935A6} = {EC4D7B06-D277-4411-BD7B-71A6D37683F0}
{FE4414F8-5370-445D-9F24-C3AD3223F299} = {DD29EA8F-B1A6-45AA-8D2E-B38DA56D9EF6}
{EF07CBB5-D253-4CA9-A5DA-8B3DF2B0DF8E} = {FE4414F8-5370-445D-9F24-C3AD3223F299}
{AF13F7C9-4EE2-403E-B3D2-C4C2E45D9EF3} = {DD29EA8F-B1A6-45AA-8D2E-B38DA56D9EF6}
{1FFFDD72-D023-441C-AF49-F1EA78FF7DE9} = {AF13F7C9-4EE2-403E-B3D2-C4C2E45D9EF3}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {78D2CF6A-60A1-43E3-837B-00B73C9DA384}
Expand Down
6 changes: 6 additions & 0 deletions eng/build/Silk.NET.NUKE.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,10 @@
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
<PackageReference Include="YamlDotNet" Version="16.3.0" />
</ItemGroup>

<ItemGroup>
<Content Include="..\..\sources\OpenAL\OpenAL\Silk.NET.OpenAL.csproj">
<Link>Directory.Build\sources\OpenAL\OpenAL\Silk.NET.OpenAL.csproj</Link>
</Content>
</ItemGroup>
</Project>
21 changes: 21 additions & 0 deletions eng/silktouch/openal/alsoft/generate.rsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
@../settings.rsp
@../remap.rsp
--exclude
_GUID
--file
openal-soft-al.h
--methodClassName
AL
--namespace
Silk.NET.OpenAL
--output
../../../../sources/OpenAL/al
--test-output
../../../../tests/OpenAL/al
--traverse
../../../submodules/openal-soft/include/AL/al.h
../../../submodules/openal-soft/include/AL/alc.h
../../../submodules/openal-soft/include/AL/alext.h
../../../submodules/openal-soft/include/AL/efx.h
../../../submodules/openal-soft/include/AL/efx-presets.h
openal-soft-al.h
123 changes: 123 additions & 0 deletions eng/silktouch/openal/alsoft/openal-soft-al.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
#define AL_ALEXT_PROTOTYPES
#include <AL/al.h>
#include <AL/alc.h>
#include <AL/alext.h>
#include <AL/efx.h>
#include <AL/efx-presets.h>

// ClangSharp won't grab the presets out of the macros as it doesn't know the types, but it will grab them out of a
// constant.

const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_GENERIC_ = EFX_REVERB_PRESET_GENERIC;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PADDED_CELL_ = EFX_REVERB_PRESET_PADDEDCELL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ROOM_ = EFX_REVERB_PRESET_ROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_BATHROOM_ = EFX_REVERB_PRESET_BATHROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_LIVING_ROOM_ = EFX_REVERB_PRESET_LIVINGROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_STONE_ROOM_ = EFX_REVERB_PRESET_STONEROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_AUDITORIUM_ = EFX_REVERB_PRESET_AUDITORIUM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CONCERT_HALL_ = EFX_REVERB_PRESET_CONCERTHALL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CAVE_ = EFX_REVERB_PRESET_CAVE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ARENA_ = EFX_REVERB_PRESET_ARENA;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_HANGAR_ = EFX_REVERB_PRESET_HANGAR;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CARPETED_HALLWAY_ = EFX_REVERB_PRESET_CARPETEDHALLWAY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_HALLWAY_ = EFX_REVERB_PRESET_HALLWAY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_STONE_CORRIDOR_ = EFX_REVERB_PRESET_STONECORRIDOR;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ALLEY_ = EFX_REVERB_PRESET_ALLEY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FOREST_ = EFX_REVERB_PRESET_FOREST;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CITY_ = EFX_REVERB_PRESET_CITY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_MOUNTAINS_ = EFX_REVERB_PRESET_MOUNTAINS;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_QUARRY_ = EFX_REVERB_PRESET_QUARRY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PLAIN_ = EFX_REVERB_PRESET_PLAIN;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PARKINGLOT_ = EFX_REVERB_PRESET_PARKINGLOT;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SEWERPIPE_ = EFX_REVERB_PRESET_SEWERPIPE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_UNDERWATER_ = EFX_REVERB_PRESET_UNDERWATER;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRUGGED_ = EFX_REVERB_PRESET_DRUGGED;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DIZZY_ = EFX_REVERB_PRESET_DIZZY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PSYCHOTIC_ = EFX_REVERB_PRESET_PSYCHOTIC;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_SMALLROOM_ = EFX_REVERB_PRESET_CASTLE_SMALLROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_SHORTPASSAGE_ = EFX_REVERB_PRESET_CASTLE_SHORTPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_MEDIUMROOM_ = EFX_REVERB_PRESET_CASTLE_MEDIUMROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_LARGEROOM_ = EFX_REVERB_PRESET_CASTLE_LARGEROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_LONGPASSAGE_ = EFX_REVERB_PRESET_CASTLE_LONGPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_HALL_ = EFX_REVERB_PRESET_CASTLE_HALL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_CUPBOARD_ = EFX_REVERB_PRESET_CASTLE_CUPBOARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_COURTYARD_ = EFX_REVERB_PRESET_CASTLE_COURTYARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CASTLE_ALCOVE_ = EFX_REVERB_PRESET_CASTLE_ALCOVE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_SMALL_ROOM_ = EFX_REVERB_PRESET_FACTORY_SMALLROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_SHORT_PASSAGE_ = EFX_REVERB_PRESET_FACTORY_SHORTPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_MEDIUM_ROOM_ = EFX_REVERB_PRESET_FACTORY_MEDIUMROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_LARGE_ROOM_ = EFX_REVERB_PRESET_FACTORY_LARGEROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_LONG_PASSAGE_ = EFX_REVERB_PRESET_FACTORY_LONGPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_HALL_ = EFX_REVERB_PRESET_FACTORY_HALL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_CUPBOARD_ = EFX_REVERB_PRESET_FACTORY_CUPBOARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_COURTYARD_ = EFX_REVERB_PRESET_FACTORY_COURTYARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_FACTORY_ALCOVE_ = EFX_REVERB_PRESET_FACTORY_ALCOVE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_SMALL_ROOM_ = EFX_REVERB_PRESET_ICEPALACE_SMALLROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_SHORT_PASSAGE_ = EFX_REVERB_PRESET_ICEPALACE_SHORTPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_MEDIUM_ROOM_ = EFX_REVERB_PRESET_ICEPALACE_MEDIUMROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_LARGE_ROOM_ = EFX_REVERB_PRESET_ICEPALACE_LARGEROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_LONG_PASSAGE_ = EFX_REVERB_PRESET_ICEPALACE_LONGPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_HALL_ = EFX_REVERB_PRESET_ICEPALACE_HALL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_CUPBOARD_ = EFX_REVERB_PRESET_ICEPALACE_CUPBOARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_COURTYARD_ = EFX_REVERB_PRESET_ICEPALACE_COURTYARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_ICE_PALACE_ALCOVE_ = EFX_REVERB_PRESET_ICEPALACE_ALCOVE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_SMALL_ROOM_ = EFX_REVERB_PRESET_SPACESTATION_SMALLROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_SHORT_PASSAGE_ = EFX_REVERB_PRESET_SPACESTATION_SHORTPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_MEDIUM_ROOM_ = EFX_REVERB_PRESET_SPACESTATION_MEDIUMROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_LARGE_ROOM_ = EFX_REVERB_PRESET_SPACESTATION_LARGEROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_LONG_PASSAGE_ = EFX_REVERB_PRESET_SPACESTATION_LONGPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_HALL_ = EFX_REVERB_PRESET_SPACESTATION_HALL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_CUPBOARD_ = EFX_REVERB_PRESET_SPACESTATION_CUPBOARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPACE_STATION_ALCOVE_ = EFX_REVERB_PRESET_SPACESTATION_ALCOVE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_SMALL_ROOM_ = EFX_REVERB_PRESET_WOODEN_SMALLROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_SHORT_PASSAGE_ = EFX_REVERB_PRESET_WOODEN_SHORTPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_MEDIUM_ROOM_ = EFX_REVERB_PRESET_WOODEN_MEDIUMROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_LARGE_ROOM_ = EFX_REVERB_PRESET_WOODEN_LARGEROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_LONG_PASSAGE_ = EFX_REVERB_PRESET_WOODEN_LONGPASSAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_HALL_ = EFX_REVERB_PRESET_WOODEN_HALL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_CUPBOARD_ = EFX_REVERB_PRESET_WOODEN_CUPBOARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_COURTYARD_ = EFX_REVERB_PRESET_WOODEN_COURTYARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_WOODEN_ALCOVE_ = EFX_REVERB_PRESET_WOODEN_ALCOVE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPORT_EMPTY_STADIUM_ = EFX_REVERB_PRESET_SPORT_EMPTYSTADIUM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPORT_SQUASH_COURT_ = EFX_REVERB_PRESET_SPORT_SQUASHCOURT;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPORT_SMALL_SWIMMING_POOL_ = EFX_REVERB_PRESET_SPORT_SMALLSWIMMINGPOOL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPORT_LARGE_SWIMMING_POOL_ = EFX_REVERB_PRESET_SPORT_LARGESWIMMINGPOOL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPORT_GYMNASIUM_ = EFX_REVERB_PRESET_SPORT_GYMNASIUM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPORT_FULL_STADIUM_ = EFX_REVERB_PRESET_SPORT_FULLSTADIUM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SPORT_STADIUM_TANNOY_ = EFX_REVERB_PRESET_SPORT_STADIUMTANNOY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PREFAB_WORKSHOP_ = EFX_REVERB_PRESET_PREFAB_WORKSHOP;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PREFAB_SCHOOL_ROOM_ = EFX_REVERB_PRESET_PREFAB_SCHOOLROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PREFAB_PRACTISE_ROOM_ = EFX_REVERB_PRESET_PREFAB_PRACTISEROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PREFAB_OUTHOUSE_ = EFX_REVERB_PRESET_PREFAB_OUTHOUSE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PREFAB_CARAVAN_ = EFX_REVERB_PRESET_PREFAB_CARAVAN;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DOME_TOMB_ = EFX_REVERB_PRESET_DOME_TOMB;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PIPE_SMALL_ = EFX_REVERB_PRESET_PIPE_SMALL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DOME_SAINT_PAULS_ = EFX_REVERB_PRESET_DOME_SAINTPAULS;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PIPE_LONG_THIN_ = EFX_REVERB_PRESET_PIPE_LONGTHIN;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PIPE_LARGE_ = EFX_REVERB_PRESET_PIPE_LARGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_PIPE_RESONANT_ = EFX_REVERB_PRESET_PIPE_RESONANT;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_OUTDOORS_BACKYARD_ = EFX_REVERB_PRESET_OUTDOORS_BACKYARD;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_OUTDOORS_ROLLING_PLAINS_ = EFX_REVERB_PRESET_OUTDOORS_ROLLINGPLAINS;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_OUTDOORS_DEEP_CANYON_ = EFX_REVERB_PRESET_OUTDOORS_DEEPCANYON;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_OUTDOORS_CREEK_ = EFX_REVERB_PRESET_OUTDOORS_CREEK;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_OUTDOORS_VALLEY_ = EFX_REVERB_PRESET_OUTDOORS_VALLEY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_MOOD_HEAVEN_ = EFX_REVERB_PRESET_MOOD_HEAVEN;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_MOOD_HELL_ = EFX_REVERB_PRESET_MOOD_HELL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_MOOD_MEMORY_ = EFX_REVERB_PRESET_MOOD_MEMORY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_COMMENTATOR_ = EFX_REVERB_PRESET_DRIVING_COMMENTATOR;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_PIT_GARAGE_ = EFX_REVERB_PRESET_DRIVING_PITGARAGE;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_IN_CAR_RACER_ = EFX_REVERB_PRESET_DRIVING_INCAR_RACER;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_IN_CAR_SPORTS_ = EFX_REVERB_PRESET_DRIVING_INCAR_SPORTS;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_IN_CAR_LUXURY_ = EFX_REVERB_PRESET_DRIVING_INCAR_LUXURY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_FULL_GRAND_STAND_ = EFX_REVERB_PRESET_DRIVING_FULLGRANDSTAND;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_EMPTY_GRAND_STAND_ = EFX_REVERB_PRESET_DRIVING_EMPTYGRANDSTAND;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DRIVING_TUNNEL_ = EFX_REVERB_PRESET_DRIVING_TUNNEL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CITY_STREETS_ = EFX_REVERB_PRESET_CITY_STREETS;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CITY_SUBWAY_ = EFX_REVERB_PRESET_CITY_SUBWAY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CITY_MUSEUM_ = EFX_REVERB_PRESET_CITY_MUSEUM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CITY_LIBRARY_ = EFX_REVERB_PRESET_CITY_LIBRARY;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CITY_UNDERPASS_ = EFX_REVERB_PRESET_CITY_UNDERPASS;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CITY_ABANDONED_ = EFX_REVERB_PRESET_CITY_ABANDONED;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_DUSTY_ROOM_ = EFX_REVERB_PRESET_DUSTYROOM;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_CHAPEL_ = EFX_REVERB_PRESET_CHAPEL;
const EFXEAXREVERBPROPERTIES EFX_REVERB_PRESET_SMALL_WATERROOM_ = EFX_REVERB_PRESET_SMALLWATERROOM;
6 changes: 6 additions & 0 deletions eng/silktouch/openal/header.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

// Generated using the OpenAL Soft headers and corresponding dependencies.
// Original source is licensed under the LGPL 2.0 license. Please note that while bindings are able to be MIT due to
// being header-derived only, implementations of the headers may have a less permissive license.
2 changes: 2 additions & 0 deletions eng/silktouch/openal/remap.rsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--remap
_GUID=System.Guid
12 changes: 12 additions & 0 deletions eng/silktouch/openal/settings.rsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
@../../common.rsp
--define-macro
TODO_DEFINE_MACROS=HERE
--headerFile
../header.txt
--include-directory
../../../submodules/openal-soft/include
../../../include
--with-callconv
*=Winapi
--with-librarypath
*=openal
1 change: 1 addition & 0 deletions eng/submodules/openal-soft
Submodule openal-soft added at f698b9
94 changes: 94 additions & 0 deletions generator.json
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,100 @@
"GLboolean": null
}
}
},
"OpenAL": {
"SourceProject": "sources/OpenAL/OpenAL/Silk.NET.OpenAL.csproj",
"Solution": "Silk.NET.sln",
"DefaultLicenseHeader": "eng/silktouch/header.txt",
"Mods": [
"AddIncludes",
"ClangScraper",
"ChangeNativeClass",
"AddApiProfiles",
"MixKhronosData",
"ExtractNestedTyping",
"TransformHandles",
"TransformFunctions",
"PrettifyNames",
"AddVTables"
],
"ClangScraper": {
"ClangSharpResponseFiles": [
"eng/silktouch/openal*/**/generate.rsp"
],
"InputSourceRoot": "sources/OpenAL",
"InputTestRoot": "tests/OpenAL"
},
"ChangeNativeClass": {
"NewClasses": {
"(alc|ALC_).*": "ALContext",
"EFX_REVERB_PRESET_.*": "EfxReverbPreset"
}
},
"MixKhronosData": {
"UseDataTypeTrimmings": true,
"SpecPath": "eng/submodules/openal-soft/registry/xml/al.xml",
"EnumNativeTypeNames": {
"ALenum": "ALEnum",
"ALCenum": "ALCEnum"
},
"Namespace": "Silk.NET.OpenAL",
"NonStandardExtensionNomenclature": true,
"Vendors": [
"SOFT",
"LOKI",
"EXT"
]
},
"AddVTables": {
"VTables": [
{
"Kind": "DllImport"
},
{
"Kind": "StaticWrapper"
},
{
"Kind": "ThisThread",
"IsDefault": true
}
]
},
"PrettifyNames": {
"LongAcronymThreshold": 4,
"NameOverrides": {
"ALContext": "ALContext",
"EFXEAXREVERBPROPERTIES": "EfxEaxReverbProperties",
"EFXEAXREVERBPROPERTIES_flReflectionsPan": "EfxEaxReverbPropertiesFlReflectionsPan",
"EFXEAXREVERBPROPERTIES_flLateReverbPan": "EfxEaxReverbPropertiesFlLateReverbPan",
"ALCcontextHandle": "ContextHandle",
"ALCdeviceHandle": "DeviceHandle",
"ALBUFFERCALLBACKTYPESOFT": "BufferCallbackSOFT",
"ALBUFFERCALLBACKTYPESOFTDelegate": "BufferCallbackDelegateSOFT",
"ALCEVENTPROCTYPESOFT": "ContextEventProcSOFT",
"ALCEVENTPROCTYPESOFTDelegate": "ContextEventProcDelegateSOFT",
"ALEVENTPROCSOFT": "EventProcSOFT",
"ALEVENTPROCSOFTDelegate": "EventProcDelegateSOFT",
"ALDEBUGPROCEXT": "DebugProcEXT",
"ALDEBUGPROCEXTDelegate": "DebugProcDelegateEXT",
"LPALFOLDBACKCALLBACK": "FoldbackCallback",
"LPALFOLDBACKCALLBACKDelegate": "FoldbackCallbackDelegate",
"EAXSetDirect": "EAXSetDirect",
"EAXGetDirect": "EAXGetDirect",
"EAXGetBufferModeDirect": "EAXGetBufferModeDirect",
"EAXSetBufferModeDirect": "EAXSetBufferModeDirect"
}
},
"TransformFunctions": {
"BoolTypes": {
"ALboolean": null
},
"BenefitOfTheDoubtArrayTransformation": true
},
"TransformHandles": {
"AssumeMissingTypesOpaque": true,
"UseDSL": true
}
}
}
}
35 changes: 35 additions & 0 deletions sources/OpenAL/OpenAL/AL.gen.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// Generated using the OpenAL Soft headers and corresponding dependencies.
// Original source is licensed under the LGPL 2.0 license. Please note that while bindings are able to be MIT due to
// being header-derived only, implementations of the headers may have a less permissive license.
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Silk.NET.Core.Loader;

namespace Silk.NET.OpenAL;

partial class AL(INativeContext nativeContext) : IDisposable
{
public partial class DllImport : IAL.Static
{
static DllImport() => LoaderInterface.RegisterHook(Assembly.GetExecutingAssembly());
}

public partial class ThisThread : IAL.Static
{
public static ThreadLocal<IAL> Underlying { get; } = new();

public static void MakeCurrent(IAL ctx) => Underlying.Value = ctx;
}

private readonly unsafe void*[] _slots = new void*[297];

public static IAL Create(INativeContext ctx) => new AL(ctx);

/// <inheritdoc/>
public void Dispose() => nativeContext.Dispose();
}
Loading
Loading