diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1d44c8be..455bd84d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,7 +37,7 @@ The formatted code: */ ``` ; -- The class names **MUST** be CamelCase; +- The class names **MUST** be CamelCase except for generated sources; - The method and field names _should_ be camelCase; this restriction can be widened for non-public APIs; - Other rules specified in [.editorconfig](.editorconfig). diff --git a/doc/notes/0.x/0.1.0.md b/doc/notes/0.x/0.1.0.md index 5c46c687..4d663ccf 100644 --- a/doc/notes/0.x/0.1.0.md +++ b/doc/notes/0.x/0.1.0.md @@ -9,4 +9,4 @@ This version includes the following features: - stb features introduced in README - Native memory access for JOML - Native File Dialog Extended -- OpenAL +- OpenAL and extensions diff --git a/generators/openal/src/main/kotlin/overrungl/openal/AL.kt b/generators/openal/src/main/kotlin/overrungl/openal/AL.kt index 4703445e..18a50038 100644 --- a/generators/openal/src/main/kotlin/overrungl/openal/AL.kt +++ b/generators/openal/src/main/kotlin/overrungl/openal/AL.kt @@ -23,372 +23,84 @@ import overrungl.gen.void_ptr fun AL() { StaticDowncall(alPackage, "AL", alLookup) { //region fields - ALenum("AL_NONE" to "0", "No distance model or no buffer") - ALenum("AL_FALSE" to "0", "Boolean False.") - ALenum("AL_TRUE" to "1", "Boolean True.") - - ALenum( - "AL_SOURCE_RELATIVE" to "0x202", - """ - Relative source. - - Type: ALboolean - - Range: \[AL_FALSE, AL_TRUE\] - - Default: AL_FALSE - - Specifies if the source uses relative coordinates. - """.trimIndent() - ) - ALenum( - "AL_CONE_INNER_ANGLE" to "0x1001", - """ - Inner cone angle, in degrees. - - Type: ALint, ALfloat - - Range: \[0 - 360\] - - Default: 360 - - The angle covered by the inner cone, the area within which the source will - not be attenuated by direction. - """.trimIndent() - ) - ALenum( - "AL_CONE_OUTER_ANGLE" to "0x1002", - """ - Outer cone angle, in degrees. - - Range: \[0 - 360\] - - Default: 360 - - The angle covered by the outer cone, the area outside of which the source - will be fully attenuated by direction. - """.trimIndent() - ) - ALenum( - "AL_PITCH" to "0x1003", - """ - Source pitch. - - Type: ALfloat - - Range: \[0.5 - 2.0\] - - Default: 1.0 - - A multiplier for the sample rate of the source's buffer. - """.trimIndent() - ) - ALenum( - "AL_POSITION" to "0x1004", - """ - Source or listener position. - - Type: ALfloat\[3\], ALint\[3\] - - Default: {0, 0, 0} - - The source or listener location in three dimensional space. - - OpenAL uses a right handed coordinate system, like OpenGL, where with a - default view, X points right (thumb), Y points up (index finger), and Z - points towards the viewer/camera (middle finger). - - To change from or to a left handed coordinate system, negate the Z - component. - """.trimIndent() - ) - ALenum( - "AL_DIRECTION" to "0x1005", - """ - Source direction. - - Type: ALfloat\[3\], ALint\[3\] - - Default: {0, 0, 0} - - Specifies the current direction in local space. A zero-length vector - specifies an omni-directional source (cone is ignored). - - To change from or to a left handed coordinate system, negate the Z - component. - """.trimIndent() - ) - ALenum( - "AL_VELOCITY" to "0x1006", - """ - Source or listener velocity. - - Type: ALfloat\[3\], ALint\[3]\ - - Default: {0, 0, 0} - - Specifies the current velocity, relative to the position. - - To change from or to a left handed coordinate system, negate the Z - component. - """.trimIndent() - ) - ALenum( - "AL_LOOPING" to "0x1007", - """ - Source looping. - - Type: ALboolean - - Range: \[AL_FALSE, AL_TRUE\] - - Default: AL_FALSE - - Specifies whether source playback loops. - """.trimIndent() - ) - ALenum( - "AL_BUFFER" to "0x1009", - """ - Source buffer. - - Type: ALuint - - Range: any valid Buffer ID - - Default: AL_NONE - - Specifies the buffer to provide sound samples for a source. - """.trimIndent() - ) - ALenum( - "AL_GAIN" to "0x100A", - """ - Source or listener gain. - - Type: ALfloat - - Range: \[0.0 - \] - - For sources, an initial linear gain value (before attenuation is applied). - For the listener, an output linear gain adjustment. - - A value of 1.0 means unattenuated. Each division by 2 equals an attenuation - of about -6dB. Each multiplication by 2 equals an amplification of about - +6dB. - """.trimIndent() - ) - ALenum( - "AL_MIN_GAIN" to "0x100D", - """ - Minimum source gain. - - Type: ALfloat - - Range: \[0.0 - 1.0\] - - The minimum gain allowed for a source, after distance and cone attenuation - are applied (if applicable). - """.trimIndent() - ) - ALenum( - "AL_MAX_GAIN" to "0x100E", - """ - Maximum source gain. - - Type: ALfloat - - Range: \[0.0 - 1.0\] - - The maximum gain allowed for a source, after distance and cone attenuation - are applied (if applicable). - """.trimIndent() - ) - ALenum( - "AL_ORIENTATION" to "0x100F", - """ - Listener orientation. - - Type: ALfloat\[6\] - - Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0} - - Effectively two three dimensional vectors. The first vector is the front (or - "at") and the second is the top (or "up"). Both vectors are relative to the - listener position. - - To change from or to a left handed coordinate system, negate the Z - component of both vectors. - """.trimIndent() - ) - ALenum( - "AL_SOURCE_STATE" to "0x1010", - """ - Source state (query only). - - Type: ALenum - - Range: \[AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED\] - """.trimIndent() - ) - - ALenum("Source state values.") { + ALenum("AL_NONE" to "0") + ALenum("AL_FALSE" to "0") + ALenum("AL_TRUE" to "1") + + ALenum("AL_SOURCE_RELATIVE" to "0x202") + ALenum("AL_CONE_INNER_ANGLE" to "0x1001") + ALenum("AL_CONE_OUTER_ANGLE" to "0x1002") + ALenum("AL_PITCH" to "0x1003") + ALenum("AL_POSITION" to "0x1004") + ALenum("AL_DIRECTION" to "0x1005") + ALenum("AL_VELOCITY" to "0x1006") + ALenum("AL_LOOPING" to "0x1007") + ALenum("AL_BUFFER" to "0x1009") + ALenum("AL_GAIN" to "0x100A") + ALenum("AL_MIN_GAIN" to "0x100D") + ALenum("AL_MAX_GAIN" to "0x100E") + ALenum("AL_ORIENTATION" to "0x100F") + ALenum("AL_SOURCE_STATE" to "0x1010") + + ALenum { "AL_INITIAL"("0x1011") "AL_PLAYING"("0x1012") "AL_PAUSED"("0x1013") "AL_STOPPED"("0x1014") } - ALenum( - "AL_BUFFERS_QUEUED" to "0x1015", - """ - Source Buffer Queue size (query only). - - Type: ALint + ALenum("AL_BUFFERS_QUEUED" to "0x1015") + ALenum("AL_BUFFERS_PROCESSED" to "0x1016") + ALenum("AL_REFERENCE_DISTANCE" to "0x1020") + ALenum("AL_ROLLOFF_FACTOR" to "0x1021") + ALenum("AL_CONE_OUTER_GAIN" to "0x1022") + ALenum("AL_MAX_DISTANCE" to "0x1023") - The number of buffers queued using alSourceQueueBuffers, minus the buffers - removed with alSourceUnqueueBuffers. - """.trimIndent() - ) - ALenum( - "AL_BUFFERS_PROCESSED" to "0x1016", - """ - Source Buffer Queue processed count (query only). - - Type: ALint - - The number of queued buffers that have been fully processed, and can be - removed with alSourceUnqueueBuffers. - - Looping sources will never fully process buffers because they will be set to - play again for when the source loops. - """.trimIndent() - ) - ALenum( - "AL_REFERENCE_DISTANCE" to "0x1020", - """ - Source reference distance. - - Type: ALfloat - - Range: \[0.0 - \] - - Default: 1.0 - - The distance in units that no distance attenuation occurs. - - At 0.0, no distance attenuation occurs with non-linear attenuation models. - """.trimIndent() - ) - ALenum( - "AL_ROLLOFF_FACTOR" to "0x1021", - """ - Source rolloff factor. - - Type: ALfloat - - Range: \[0.0 - \] - - Default: 1.0 - - Multiplier to exaggerate or diminish distance attenuation. - - At 0.0, no distance attenuation ever occurs. - """.trimIndent() - ) - ALenum( - "AL_CONE_OUTER_GAIN" to "0x1022", - """ - Outer cone gain. - - Type: ALfloat - - Range: \[0.0 - 1.0\] - - Default: 0.0 - - The gain attenuation applied when the listener is outside of the source's - outer cone angle. - """.trimIndent() - ) - ALenum( - "AL_MAX_DISTANCE" to "0x1023", - """ - Source maximum distance. - - Type: ALfloat - - Range: \[0.0 - \] - - Default: FLT_MAX - - The distance above which the source is not attenuated any further with a - clamped distance model, or where attenuation reaches 0.0 gain for linear - distance models with a default rolloff factor. - """.trimIndent() - ) - - ALenum("AL_SEC_OFFSET" to "0x1024", "Source buffer offset, in seconds") - ALenum("AL_SAMPLE_OFFSET" to "0x1025", "Source buffer offset, in sample frames") - ALenum("AL_BYTE_OFFSET" to "0x1026", "Source buffer offset, in bytes") - - ALenum( - "AL_SOURCE_TYPE" to "0x1027", - """ - Source type (query only). - - Type: ALenum - - Range: \[AL_STATIC, AL_STREAMING, AL_UNDETERMINED\] - - A Source is Static if a Buffer has been attached using AL_BUFFER. + ALenum("AL_SEC_OFFSET" to "0x1024") + ALenum("AL_SAMPLE_OFFSET" to "0x1025") + ALenum("AL_BYTE_OFFSET" to "0x1026") - A Source is Streaming if one or more Buffers have been attached using - alSourceQueueBuffers. + ALenum("AL_SOURCE_TYPE" to "0x1027") - A Source is Undetermined when it has the NULL buffer attached using - AL_BUFFER. - """.trimIndent() - ) - - ALenum("Source type values.") { + ALenum { "AL_STATIC"("0x1028") "AL_STREAMING"("0x1029") "AL_UNDETERMINED"("0x1030") } - ALenum("AL_FORMAT_MONO8" to "0x1100", "Unsigned 8-bit mono buffer format.") - ALenum("AL_FORMAT_MONO16" to "0x1101", "Signed 16-bit mono buffer format.") - ALenum("AL_FORMAT_STEREO8" to "0x1102", "Unsigned 8-bit stereo buffer format.") - ALenum("AL_FORMAT_STEREO16" to "0x1103", "Signed 16-bit stereo buffer format.") + ALenum("AL_FORMAT_MONO8" to "0x1100") + ALenum("AL_FORMAT_MONO16" to "0x1101") + ALenum("AL_FORMAT_STEREO8" to "0x1102") + ALenum("AL_FORMAT_STEREO16" to "0x1103") - ALenum("AL_FREQUENCY" to "0x2001", "Buffer frequency/sample rate (query only).") - ALenum("AL_BITS" to "0x2002", "Buffer bits per sample (query only).") - ALenum("AL_CHANNELS" to "0x2003", "Buffer channel count (query only).") - ALenum("AL_SIZE" to "0x2004", "Buffer data size in bytes (query only).") + ALenum("AL_FREQUENCY" to "0x2001") + ALenum("AL_BITS" to "0x2002") + ALenum("AL_CHANNELS" to "0x2003") + ALenum("AL_SIZE" to "0x2004") - ALenum("Buffer state. Not for public use.") { + ALenum { "AL_UNUSED"("0x2010") "AL_PENDING"("0x2011") "AL_PROCESSED"("0x2012") } - ALenum("AL_NO_ERROR" to "0", "No error.") - ALenum("AL_INVALID_NAME" to "0xA001", "Invalid name (ID) passed to an AL call.") - ALenum("AL_INVALID_ENUM" to "0xA002", "Invalid enumeration passed to AL call.") - ALenum("AL_INVALID_VALUE" to "0xA003", "Invalid value passed to AL call.") - ALenum("AL_INVALID_OPERATION" to "0xA004", "Illegal AL call.") - ALenum("AL_OUT_OF_MEMORY" to "0xA005", "Not enough memory to execute the AL call.") - - ALenum("AL_VENDOR" to "0xB001", "Context string: Vendor name.") - ALenum("AL_VERSION" to "0xB002", "Context string: Version.") - ALenum("AL_RENDERER" to "0xB003", "Context string: Renderer name.") - ALenum("AL_EXTENSIONS" to "0xB004", "Context string: Space-separated extension list.") - - ALenum( - "AL_DOPPLER_FACTOR" to "0xC000", - """ - Doppler scale. - - Type: ALfloat - - Range: \[0.0 - \] - - Default: 1.0 - - Scale for source and listener velocities. - """.trimIndent() - ) - ALenum( - "AL_DOPPLER_VELOCITY" to "0xC001", - """ - Doppler velocity (deprecated). + ALenum("AL_NO_ERROR" to "0") + ALenum("AL_INVALID_NAME" to "0xA001") + ALenum("AL_INVALID_ENUM" to "0xA002") + ALenum("AL_INVALID_VALUE" to "0xA003") + ALenum("AL_INVALID_OPERATION" to "0xA004") + ALenum("AL_OUT_OF_MEMORY" to "0xA005") - A multiplier applied to the Speed of Sound. - """.trimIndent() - ) - ALenum( - "AL_SPEED_OF_SOUND" to "0xC003", - """ - Speed of Sound, in units per second. - - Type: ALfloat - - Range: \[0.0001 - \] - - Default: 343.3 - - The speed at which sound waves are assumed to travel, when calculating the - doppler effect from source and listener velocities. - """.trimIndent() - ) + ALenum("AL_VENDOR" to "0xB001") + ALenum("AL_VERSION" to "0xB002") + ALenum("AL_RENDERER" to "0xB003") + ALenum("AL_EXTENSIONS" to "0xB004") - ALenum( - "AL_DISTANCE_MODEL" to "0xD000", - """ - Distance attenuation model. - - Type: ALenum - - Range: \[AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED, - AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED, - AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED\] - - Default: AL_INVERSE_DISTANCE_CLAMPED - - The model by which sources attenuate with distance. - - - None - No distance attenuation. - - Inverse - Doubling the distance halves the source gain. - - Linear - Linear gain scaling between the reference and max distances. - - Exponent - Exponential gain dropoff. - - Clamped variations work like the non-clamped counterparts, except the - distance calculated is clamped between the reference and max distances. - """.trimIndent() - ) + ALenum("AL_DOPPLER_FACTOR" to "0xC000") + ALenum("AL_DOPPLER_VELOCITY" to "0xC001") + ALenum("AL_SPEED_OF_SOUND" to "0xC003") + + ALenum("AL_DISTANCE_MODEL" to "0xD000") ALenum("Distance model values.") { "AL_INVERSE_DISTANCE"("0xD001") @@ -422,35 +134,25 @@ fun AL() { "alGetError"( ALenum, - entrypoint = "alGetError", - javadoc = """ - Obtain the first error generated in the AL context since the last call to - this function. - """.trimIndent() + entrypoint = "alGetError" ) +"alIsExtensionPresent"( ALboolean, const_ALchar_ptr("extname"), - entrypoint = "alIsExtensionPresent", - javadoc = "Query for the presence of an extension on the AL context." + entrypoint = "alIsExtensionPresent" ).overload() +"alGetProcAddress"( void_ptr, const_ALchar_ptr("fname"), - entrypoint = "alGetProcAddress", - javadoc = """ - Retrieve the address of a function. The returned function may be context- - specific. - """.trimIndent() + entrypoint = "alGetProcAddress" ).overload() +"alGetEnumValue"( ALenum, const_ALchar_ptr("ename"), - entrypoint = "alGetEnumValue", - javadoc = "Retrieve the value of an enum. The returned value may be context-specific." + entrypoint = "alGetEnumValue" ).overload() "alListenerf"(void, ALenum("param"), ALfloat("value"), entrypoint = "alListenerf") @@ -504,21 +206,18 @@ fun AL() { void, ALsizei("n"), ALuint_ptr("sources").ref(), - entrypoint = "alGenSources", - javadoc = "Create source objects." + entrypoint = "alGenSources" ) "alDeleteSources"( void, ALsizei("n"), const_ALuint_ptr("sources"), - entrypoint = "alDeleteSources", - javadoc = "Delete source objects." + entrypoint = "alDeleteSources" ) "alIsSource"( ALboolean, ALuint("source"), - entrypoint = "alIsSource", - javadoc = "Verify an ID is for a valid source." + entrypoint = "alIsSource" ) "alSourcef"(void, ALuint("source"), ALenum("param"), ALfloat("value"), entrypoint = "alSourcef") @@ -594,55 +293,47 @@ fun AL() { "alSourcePlay"( void, ALuint("source"), - entrypoint = "alSourcePlay", - javadoc = "Play, restart, or resume a source, setting its state to AL_PLAYING." + entrypoint = "alSourcePlay" ) "alSourceStop"( void, ALuint("source"), - entrypoint = "alSourceStop", - javadoc = "Stop a source, setting its state to AL_STOPPED if playing or paused." + entrypoint = "alSourceStop" ) "alSourceRewind"( void, ALuint("source"), - entrypoint = "alSourceRewind", - javadoc = "Rewind a source, setting its state to AL_INITIAL." + entrypoint = "alSourceRewind" ) "alSourcePause"( void, ALuint("source"), - entrypoint = "alSourcePause", - javadoc = "Pause a source, setting its state to AL_PAUSED if playing." + entrypoint = "alSourcePause" ) "alSourcePlayv"( void, ALsizei("n"), const_ALuint_ptr("sources"), - entrypoint = "alSourcePlayv", - javadoc = "Play, restart, or resume a list of sources atomically." + entrypoint = "alSourcePlayv" ) "alSourceStopv"( void, ALsizei("n"), const_ALuint_ptr("sources"), - entrypoint = "alSourceStopv", - javadoc = "Stop a list of sources atomically." + entrypoint = "alSourceStopv" ) "alSourceRewindv"( void, ALsizei("n"), const_ALuint_ptr("sources"), - entrypoint = "alSourceRewindv", - javadoc = "Rewind a list of sources atomically." + entrypoint = "alSourceRewindv" ) "alSourcePausev"( void, ALsizei("n"), const_ALuint_ptr("sources"), - entrypoint = "alSourcePausev", - javadoc = "Pause a list of sources atomically." + entrypoint = "alSourcePausev" ) "alSourceQueueBuffers"( @@ -650,37 +341,32 @@ fun AL() { ALuint("source"), ALsizei("nb"), const_ALuint_ptr("buffers"), - entrypoint = "alSourceQueueBuffers", - javadoc = "Queue buffers onto a source" + entrypoint = "alSourceQueueBuffers" ) "alSourceUnqueueBuffers"( void, ALuint("source"), ALsizei("nb"), ALuint_ptr("buffers").ref(), - entrypoint = "alSourceUnqueueBuffers", - javadoc = "Unqueue processed buffers from a source" + entrypoint = "alSourceUnqueueBuffers" ) "alGenBuffers"( void, ALsizei("n"), ALuint_ptr("buffers").ref(), - entrypoint = "alGenBuffers", - javadoc = "Create buffer objects" + entrypoint = "alGenBuffers" ) "alDeleteBuffers"( void, ALsizei("n"), const_ALuint_ptr("buffers"), - entrypoint = "alDeleteBuffers", - javadoc = "Delete buffer objects" + entrypoint = "alDeleteBuffers" ) "alIsBuffer"( ALboolean, ALuint("source"), - entrypoint = "alIsBuffer", - javadoc = "Verify an ID is a valid buffer (including the NULL buffer)" + entrypoint = "alIsBuffer" ) "alBufferData"( @@ -690,11 +376,7 @@ fun AL() { const_ALvoid_ptr("data"), ALsizei("size"), ALsizei("samplerate"), - entrypoint = "alBufferData", - javadoc = """ - Copies data into the buffer, interpreting it using the specified format and - samplerate. - """.trimIndent() + entrypoint = "alBufferData" ) "alBufferf"(void, ALuint("buffer"), ALenum("param"), ALfloat("value"), entrypoint = "alBufferf") diff --git a/generators/openal/src/main/kotlin/overrungl/openal/ALC.kt b/generators/openal/src/main/kotlin/overrungl/openal/ALC.kt index 77782676..73e84c07 100644 --- a/generators/openal/src/main/kotlin/overrungl/openal/ALC.kt +++ b/generators/openal/src/main/kotlin/overrungl/openal/ALC.kt @@ -22,63 +22,39 @@ import overrungl.gen.void fun ALC() { StaticDowncall(alPackage, "ALC", alLookup) { //region fields - ALCenum("ALC_FALSE" to "0", "Boolean False.") - ALCenum("ALC_TRUE" to "1", "Boolean True.") - - ALCenum("ALC_FREQUENCY" to "0x1007", "Context attribute: <int> Hz.") - ALCenum("ALC_REFRESH" to "0x1008", "Context attribute: <int> Hz.") - ALCenum("ALC_SYNC" to "0x1009", "Context attribute: AL_TRUE or AL_FALSE synchronous context?") - ALCenum("ALC_MONO_SOURCES" to "0x1010", "Context attribute: <int> requested Mono (3D) Sources.") - ALCenum("ALC_STEREO_SOURCES" to "0x1011", "Context attribute: <int> requested Stereo Sources.") - - ALCenum("ALC_NO_ERROR" to "0", "No error.") - ALCenum("ALC_INVALID_DEVICE" to "0xA001", "Invalid device handle.") - ALCenum("ALC_INVALID_CONTEXT" to "0xA002", "Invalid context handle.") - ALCenum("ALC_INVALID_ENUM" to "0xA003", "Invalid enumeration passed to an ALC call.") - ALCenum("ALC_INVALID_VALUE" to "0xA004", "Invalid value passed to an ALC call.") - ALCenum("ALC_OUT_OF_MEMORY" to "0xA005", "Out of memory.") - - ALCenum("ALC_MAJOR_VERSION" to "0x1000", "Runtime ALC major version.") - ALCenum("ALC_MINOR_VERSION" to "0x1001", "Runtime ALC minor version.") - - ALCenum("ALC_ATTRIBUTES_SIZE" to "0x1002", "Context attribute list size.") - ALCenum("ALC_ALL_ATTRIBUTES" to "0x1003", "Context attribute list properties.") - ALCenum("ALC_DEFAULT_DEVICE_SPECIFIER" to "0x1004", "String for the default device specifier.") - ALCenum( - "ALC_DEVICE_SPECIFIER" to "0x1005", - """ - Device specifier string. - - If device handle is NULL, it is instead a null-character separated list of - strings of known device specifiers (list ends with an empty string). - """.trimIndent() - ) - ALCenum("ALC_EXTENSIONS" to "0x1006", "String for space-separated list of ALC extensions.") + ALCenum("ALC_FALSE" to "0") + ALCenum("ALC_TRUE" to "1") + + ALCenum("ALC_FREQUENCY" to "0x1007") + ALCenum("ALC_REFRESH" to "0x1008") + ALCenum("ALC_SYNC" to "0x1009") + ALCenum("ALC_MONO_SOURCES" to "0x1010") + ALCenum("ALC_STEREO_SOURCES" to "0x1011") + + ALCenum("ALC_NO_ERROR" to "0") + ALCenum("ALC_INVALID_DEVICE" to "0xA001") + ALCenum("ALC_INVALID_CONTEXT" to "0xA002") + ALCenum("ALC_INVALID_ENUM" to "0xA003") + ALCenum("ALC_INVALID_VALUE" to "0xA004") + ALCenum("ALC_OUT_OF_MEMORY" to "0xA005") + + ALCenum("ALC_MAJOR_VERSION" to "0x1000") + ALCenum("ALC_MINOR_VERSION" to "0x1001") + + ALCenum("ALC_ATTRIBUTES_SIZE" to "0x1002") + ALCenum("ALC_ALL_ATTRIBUTES" to "0x1003") + ALCenum("ALC_DEFAULT_DEVICE_SPECIFIER" to "0x1004") + ALCenum("ALC_DEVICE_SPECIFIER" to "0x1005") + ALCenum("ALC_EXTENSIONS" to "0x1006") ALCenum("ALC_EXT_CAPTURE" to "1", "Capture extension") - ALCenum( - "ALC_CAPTURE_DEVICE_SPECIFIER" to "0x310", - """ - Capture device specifier string. - - If device handle is NULL, it is instead a null-character separated list of - strings of known capture device specifiers (list ends with an empty string). - """.trimIndent() - ) - ALCenum("ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER" to "0x311", "String for the default capture device specifier.") - ALCenum("ALC_CAPTURE_SAMPLES" to "0x312", "Number of sample frames available for capture.") + ALCenum("ALC_CAPTURE_DEVICE_SPECIFIER" to "0x310") + ALCenum("ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER" to "0x311") + ALCenum("ALC_CAPTURE_SAMPLES" to "0x312") - ALCenum("ALC_ENUMERATE_ALL_EXT" to "1", "Enumerate All extension") - ALCenum("ALC_DEFAULT_ALL_DEVICES_SPECIFIER" to "0x1012", "String for the default extended device specifier.") - ALCenum( - "ALC_ALL_DEVICES_SPECIFIER" to "0x1013", - """ - Device's extended specifier string. - - If device handle is NULL, it is instead a null-character separated list of - strings of known extended device specifiers (list ends with an empty string). - """.trimIndent() - ) + ALCenum("ALC_ENUMERATE_ALL_EXT" to "1") + ALCenum("ALC_DEFAULT_ALL_DEVICES_SPECIFIER" to "0x1012") + ALCenum("ALC_ALL_DEVICES_SPECIFIER" to "0x1013") //endregion //region functions @@ -86,107 +62,79 @@ fun ALC() { ALCcontext_ptr, ALCdevice_ptr("device"), const_ALCint_ptr("attrlist"), - entrypoint = "alcCreateContext", - javadoc = "Create and attach a context to the given device." + entrypoint = "alcCreateContext" ) "alcMakeContextCurrent"( ALCboolean, ALCcontext_ptr("context"), - entrypoint = "alcMakeContextCurrent", - javadoc = """ - Makes the given context the active process-wide context. Passing NULL clears - the active context. - """.trimIndent() + entrypoint = "alcMakeContextCurrent" ) "alcProcessContext"( void, ALCcontext_ptr("context"), - entrypoint = "alcProcessContext", - javadoc = "Resumes processing updates for the given context." + entrypoint = "alcProcessContext" ) "alcSuspendContext"( void, ALCcontext_ptr("context"), - entrypoint = "alcSuspendContext", - javadoc = "Suspends updates for the given context." + entrypoint = "alcSuspendContext" ) "alcDestroyContext"( void, ALCcontext_ptr("context"), - entrypoint = "alcDestroyContext", - javadoc = "Remove a context from its device and destroys it." + entrypoint = "alcDestroyContext" ) "alcGetCurrentContext"( ALCcontext_ptr, - entrypoint = "alcGetCurrentContext", - javadoc = "Returns the currently active context." + entrypoint = "alcGetCurrentContext" ) "alcGetContextsDevice"( ALCdevice_ptr, ALCcontext_ptr("context"), - entrypoint = "alcGetContextsDevice", - javadoc = "Returns the device that a particular context is attached to." + entrypoint = "alcGetContextsDevice" ) +"alcOpenDevice"( ALCdevice_ptr, const_ALCchar_ptr("devicename"), - entrypoint = "alcOpenDevice", - javadoc = "Opens the named playback device." + entrypoint = "alcOpenDevice" ).overload() "alcCloseDevice"( ALCboolean, ALCdevice_ptr("device"), - entrypoint = "alcCloseDevice", - javadoc = "Closes the given playback device." + entrypoint = "alcCloseDevice" ) "alcGetError"( ALCenum, ALCdevice_ptr("device"), - entrypoint = "alcGetError", - javadoc = "Obtain the most recent Device error." + entrypoint = "alcGetError" ) +"alcIsExtensionPresent"( ALCboolean, ALCdevice_ptr("device"), const_ALCchar_ptr("extname"), - entrypoint = "alcIsExtensionPresent", - javadoc = """ - Query for the presence of an extension on the device. Pass a NULL device to - query a device-inspecific extension. - """.trimIndent() + entrypoint = "alcIsExtensionPresent" ).overload() +"alcGetProcAddress"( ALCvoid_ptr, ALCdevice_ptr("device"), const_ALCchar_ptr("funcname"), - entrypoint = "alcGetProcAddress", - javadoc = """ - Retrieve the address of a function. Given a non-NULL device, the returned - function may be device-specific. - """.trimIndent() + entrypoint = "alcGetProcAddress" ).overload() +"alcGetEnumValue"( ALCenum, ALCdevice_ptr("device"), const_ALCchar_ptr("enumname"), - entrypoint = "alcGetEnumValue", - javadoc = """ - Retrieve the value of an enum. Given a non-NULL device, the returned value - may be device-specific. - """.trimIndent() + entrypoint = "alcGetEnumValue" ).overload() +"alcGetString_"( const_ALCchar_ptr, ALCdevice_ptr("device"), ALCenum("param"), - entrypoint = "alcGetString", - javadoc = """ - Returns information about the device, and error strings. - """.trimIndent() + entrypoint = "alcGetString" ).overload(name = "alcGetString") "alcGetIntegerv"( void, @@ -194,10 +142,7 @@ fun ALC() { ALCenum("param"), ALCsizei("size"), ALCint_ptr("values"), - entrypoint = "alcGetIntegerv", - javadoc = """ - Returns information about the device and the version of OpenAL. - """.trimIndent() + entrypoint = "alcGetIntegerv" ) +"alcCaptureOpenDevice"( @@ -206,37 +151,29 @@ fun ALC() { ALCuint("frequency"), ALCenum("format"), ALCsizei("buffersize"), - entrypoint = "alcCaptureOpenDevice", - javadoc = """ - Opens the named capture device with the given frequency, format, and buffer - size. - """.trimIndent() + entrypoint = "alcCaptureOpenDevice" ).overload() "alcCaptureCloseDevice"( ALCboolean, ALCdevice_ptr("device"), - entrypoint = "alcCaptureCloseDevice", - javadoc = "Closes the given capture device." + entrypoint = "alcCaptureCloseDevice" ) "alcCaptureStart"( void, ALCdevice_ptr("device"), - entrypoint = "alcCaptureStart", - javadoc = "Starts capturing samples into the device buffer." + entrypoint = "alcCaptureStart" ) "alcCaptureStop"( void, ALCdevice_ptr("device"), - entrypoint = "alcCaptureStop", - javadoc = "Stops capturing samples. Samples in the device buffer remain available." + entrypoint = "alcCaptureStop" ) "alcCaptureSamples"( void, ALCdevice_ptr("device"), ALCvoid_ptr("buffer"), ALCsizei("samples"), - entrypoint = "alcCaptureSamples", - javadoc = "Reads samples from the device buffer." + entrypoint = "alcCaptureSamples" ) //endregion } diff --git a/generators/openal/src/main/kotlin/overrungl/openal/ALExt.kt b/generators/openal/src/main/kotlin/overrungl/openal/ALExt.kt new file mode 100644 index 00000000..aebbef86 --- /dev/null +++ b/generators/openal/src/main/kotlin/overrungl/openal/ALExt.kt @@ -0,0 +1,2215 @@ +/* + * MIT License + * + * Copyright (c) 2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +package overrungl.openal + +import overrungl.gen.* + +fun alext() { + //region upcalls + val LPALFOLDBACKCALLBACK = Upcall(alPackage, "ALFoldbackCallback") { + targetMethod = "invoke"( + void, + ALenum("mode"), + ALsizei("count") + ) + }.pointerType c "LPALFOLDBACKCALLBACK" + val ALEVENTPROCSOFT = Upcall(alPackage, "ALEventProcSOFT") { + targetMethod = "invoke"( + void, + ALenum("eventType"), + ALuint("object"), + ALuint("param"), + ALsizei("length"), + const_ALchar_ptr("message"), + void_ptr("userParam") + ) + }.pointerType c "ALEVENTPROCSOFT" + val ALBUFFERCALLBACKTYPESOFT = Upcall(alPackage, "ALBufferCallbackTypeSOFT") { + targetMethod = "invoke"( + ALsizei, + ALvoid_ptr("userptr"), + ALvoid_ptr("sampledata"), + ALsizei("numbytes") + ) + }.pointerType c "ALBUFFERCALLBACKTYPESOFT" + val ALDEBUGPROCEXT = Upcall(alPackage, "ALDebugProcEXT") { + targetMethod = "invoke"( + void, + ALenum("source"), + ALenum("type"), + ALuint("id"), + ALenum("severity"), + ALsizei("length"), + const_ALchar_ptr("message"), + void_ptr("userParam") + ) + }.pointerType c "ALDEBUGPROCEXT" + val ALCEVENTPROCTYPESOFT = Upcall(alPackage, "ALCEventProcTypeSOFT") { + targetMethod = "invoke"( + void, + ALCenum("eventType"), + ALCenum("deviceType"), + ALCdevice_ptr("device"), + ALCsizei("length"), + const_ALCchar_ptr("message"), + void_ptr("userParam") + ) + }.pointerType c "ALCEVENTPROCTYPESOFT" + //endregion + + //region downcalls + downcall("AL_LOKI_IMA_ADPCM_format") { + ALenum("AL_FORMAT_IMA_ADPCM_MONO16_EXT" to "0x10000") + ALenum("AL_FORMAT_IMA_ADPCM_STEREO16_EXT" to "0x10001") + } + downcall("AL_LOKI_WAVE_format") { + ALenum("AL_FORMAT_WAVE_EXT" to "0x10002") + } + downcall("AL_EXT_vorbis") { + ALenum("AL_FORMAT_VORBIS_EXT" to "0x10003") + } + downcall("AL_LOKI_quadriphonic") { + ALenum("AL_FORMAT_QUAD8_LOKI" to "0x10004") + ALenum("AL_FORMAT_QUAD16_LOKI" to "0x10005") + } + downcall("AL_EXT_float32") { + ALenum("AL_FORMAT_MONO_FLOAT32" to "0x10010") + ALenum("AL_FORMAT_STEREO_FLOAT32" to "0x10011") + } + downcall("AL_EXT_double") { + ALenum("AL_FORMAT_MONO_DOUBLE_EXT" to "0x10012") + ALenum("AL_FORMAT_STEREO_DOUBLE_EXT" to "0x10013") + } + downcall("AL_EXT_MULAW") { + ALenum("AL_FORMAT_MONO_MULAW_EXT" to "0x10014") + ALenum("AL_FORMAT_STEREO_MULAW_EXT" to "0x10015") + } + downcall("AL_EXT_ALAW") { + ALenum("AL_FORMAT_MONO_ALAW_EXT" to "0x10016") + ALenum("AL_FORMAT_STEREO_ALAW_EXT" to "0x10017") + } + downcall("ALC_LOKI_audio_channel") { + ALCenum("ALC_CHAN_MAIN_LOKI" to "0x500001") + ALCenum("ALC_CHAN_PCM_LOKI" to "0x500002") + ALCenum("ALC_CHAN_CD_LOKI" to "0x500003") + } + downcall("AL_EXT_MCFORMATS") { + ALenum("AL_FORMAT_QUAD8" to "0x1204") + ALenum("AL_FORMAT_QUAD16" to "0x1205") + ALenum("AL_FORMAT_QUAD32" to "0x1206") + ALenum("AL_FORMAT_REAR8" to "0x1207") + ALenum("AL_FORMAT_REAR16" to "0x1208") + ALenum("AL_FORMAT_REAR32" to "0x1209") + ALenum("AL_FORMAT_51CHN8" to "0x120A") + ALenum("AL_FORMAT_51CHN16" to "0x120B") + ALenum("AL_FORMAT_51CHN32" to "0x120C") + ALenum("AL_FORMAT_61CHN8" to "0x120D") + ALenum("AL_FORMAT_61CHN16" to "0x120E") + ALenum("AL_FORMAT_61CHN32" to "0x120F") + ALenum("AL_FORMAT_71CHN8" to "0x1210") + ALenum("AL_FORMAT_71CHN16" to "0x1211") + ALenum("AL_FORMAT_71CHN32" to "0x1212") + } + downcall("AL_EXT_MULAW_MCFORMATS") { + ALenum("AL_FORMAT_MONO_MULAW" to "0x10014") + ALenum("AL_FORMAT_STEREO_MULAW" to "0x10015") + ALenum("AL_FORMAT_QUAD_MULAW" to "0x10021") + ALenum("AL_FORMAT_REAR_MULAW" to "0x10022") + ALenum("AL_FORMAT_51CHN_MULAW" to "0x10023") + ALenum("AL_FORMAT_61CHN_MULAW" to "0x10024") + ALenum("AL_FORMAT_71CHN_MULAW" to "0x10025") + } + downcall("AL_EXT_IMA4") { + ALenum("AL_FORMAT_MONO_IMA4" to "0x1300") + ALenum("AL_FORMAT_STEREO_IMA4" to "0x1301") + } + downcall("AL_EXT_STATIC_BUFFER") { + "alBufferDataStatic"( + void, + const_ALuint("buffer"), + ALenum("format"), + ALvoid_ptr("data"), + ALsizei("size"), + ALsizei("freq"), + entrypoint = "alBufferDataStatic", + optional = true + ) + } + downcall("ALC_EXT_disconnect") { + ALCenum("ALC_CONNECTED" to "0x313") + } + downcall("ALC_EXT_thread_local_context") { + "alcSetThreadContext"( + ALCboolean, + ALCcontext_ptr("context"), + entrypoint = "alcSetThreadContext", + optional = true + ) + "alcGetThreadContext"(ALCcontext_ptr, entrypoint = "alcGetThreadContext", optional = true) + } + downcall("AL_EXT_source_distance_model") { + ALenum("AL_SOURCE_DISTANCE_MODEL" to "0x200") + } + downcall("AL_SOFT_buffer_sub_data") { + ALenum("AL_BYTE_RW_OFFSETS_SOFT" to "0x1031") + ALenum("AL_SAMPLE_RW_OFFSETS_SOFT" to "0x1032") + "alBufferSubDataSOFT"( + void, + ALuint("buffer"), + ALenum("format"), + const_ALvoid_ptr("data"), + ALsizei("offset"), + ALsizei("length"), + entrypoint = "alBufferSubDataSOFT", + optional = true + ) + } + downcall("AL_SOFT_loop_points") { + ALenum("AL_LOOP_POINTS_SOFT" to "0x2015") + } + downcall("AL_EXT_FOLDBACK") { + string_u8("AL_EXT_FOLDBACK_NAME" to """"AL_EXT_FOLDBACK"""") + ALenum("AL_FOLDBACK_EVENT_BLOCK" to "0x4112") + ALenum("AL_FOLDBACK_EVENT_START" to "0x4111") + ALenum("AL_FOLDBACK_EVENT_STOP" to "0x4113") + ALenum("AL_FOLDBACK_MODE_MONO" to "0x4101") + ALenum("AL_FOLDBACK_MODE_STEREO" to "0x4102") + "alRequestFoldbackStart"( + void, + ALenum("mode"), + ALsizei("count"), + ALsizei("length"), + ALfloat_ptr("mem"), + LPALFOLDBACKCALLBACK("callback"), + entrypoint = "alRequestFoldbackStart", + optional = true + ) + "alRequestFoldbackStop"(void, entrypoint = "alRequestFoldbackStop", optional = true) + } + downcall("ALC_EXT_DEDICATED") { + ALenum("AL_DEDICATED_GAIN" to "0x0001") + ALenum("AL_EFFECT_DEDICATED_DIALOGUE" to "0x9001") + ALenum("AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT" to "0x9000") + } + downcall("AL_SOFT_buffer_samples") { + ALenum("AL_MONO_SOFT" to "0x1500") + ALenum("AL_STEREO_SOFT" to "0x1501") + ALenum("AL_REAR_SOFT" to "0x1502") + ALenum("AL_QUAD_SOFT" to "0x1503") + ALenum("AL_5POINT1_SOFT" to "0x1504") + ALenum("AL_6POINT1_SOFT" to "0x1505") + ALenum("AL_7POINT1_SOFT" to "0x1506") + + ALenum("AL_BYTE_SOFT" to "0x1400") + ALenum("AL_UNSIGNED_BYTE_SOFT" to "0x1401") + ALenum("AL_SHORT_SOFT" to "0x1402") + ALenum("AL_UNSIGNED_SHORT_SOFT" to "0x1403") + ALenum("AL_INT_SOFT" to "0x1404") + ALenum("AL_UNSIGNED_INT_SOFT" to "0x1405") + ALenum("AL_FLOAT_SOFT" to "0x1406") + ALenum("AL_DOUBLE_SOFT" to "0x1407") + ALenum("AL_BYTE3_SOFT" to "0x1408") + ALenum("AL_UNSIGNED_BYTE3_SOFT" to "0x1409") + + ALenum("AL_MONO8_SOFT" to "0x1100") + ALenum("AL_MONO16_SOFT" to "0x1101") + ALenum("AL_MONO32F_SOFT" to "0x10010") + ALenum("AL_STEREO8_SOFT" to "0x1102") + ALenum("AL_STEREO16_SOFT" to "0x1103") + ALenum("AL_STEREO32F_SOFT" to "0x10011") + ALenum("AL_QUAD8_SOFT" to "0x1204") + ALenum("AL_QUAD16_SOFT" to "0x1205") + ALenum("AL_QUAD32F_SOFT" to "0x1206") + ALenum("AL_REAR8_SOFT" to "0x1207") + ALenum("AL_REAR16_SOFT" to "0x1208") + ALenum("AL_REAR32F_SOFT" to "0x1209") + ALenum("AL_5POINT1_8_SOFT" to "0x120A") + ALenum("AL_5POINT1_16_SOFT" to "0x120B") + ALenum("AL_5POINT1_32F_SOFT" to "0x120C") + ALenum("AL_6POINT1_8_SOFT" to "0x120D") + ALenum("AL_6POINT1_16_SOFT" to "0x120E") + ALenum("AL_6POINT1_32F_SOFT" to "0x120F") + ALenum("AL_7POINT1_8_SOFT" to "0x1210") + ALenum("AL_7POINT1_16_SOFT" to "0x1211") + ALenum("AL_7POINT1_32F_SOFT" to "0x1212") + + ALenum("AL_INTERNAL_FORMAT_SOFT" to "0x2008") + ALenum("AL_BYTE_LENGTH_SOFT" to "0x2009") + ALenum("AL_SAMPLE_LENGTH_SOFT" to "0x200A") + ALenum("AL_SEC_LENGTH_SOFT" to "0x200B") + + "alBufferSamplesSOFT"( + void, + ALuint("buffer"), + ALuint("samplerate"), + ALenum("internalformat"), + ALsizei("samples"), + ALenum("channels"), + ALenum("type"), + const_ALvoid_ptr("data"), + entrypoint = "alBufferSamplesSOFT", + optional = true + ) + "alBufferSubSamplesSOFT"( + void, + ALuint("buffer"), + ALsizei("offset"), + ALsizei("samples"), + ALenum("channels"), + ALenum("type"), + const_ALvoid_ptr("data"), + entrypoint = "alBufferSubSamplesSOFT", + optional = true + ) + "alGetBufferSamplesSOFT"( + void, + ALuint("buffer"), + ALsizei("offset"), + ALsizei("samples"), + ALenum("channels"), + ALenum("type"), + ALvoid_ptr("data"), + entrypoint = "alGetBufferSamplesSOFT", + optional = true + ) + "alIsBufferFormatSupportedSOFT"( + ALboolean, + ALenum("format"), + entrypoint = "alIsBufferFormatSupportedSOFT", + optional = true + ) + } + downcall("AL_SOFT_direct_channels") { + ALenum("AL_DIRECT_CHANNELS_SOFT" to "0x1033") + } + downcall("ALC_SOFT_loopback") { + ALCenum("ALC_FORMAT_CHANNELS_SOFT" to "0x1990") + ALCenum("ALC_FORMAT_TYPE_SOFT" to "0x1991") + + ALCenum("ALC_BYTE_SOFT" to "0x1400") + ALCenum("ALC_UNSIGNED_BYTE_SOFT" to "0x1401") + ALCenum("ALC_SHORT_SOFT" to "0x1402") + ALCenum("ALC_UNSIGNED_SHORT_SOFT" to "0x1403") + ALCenum("ALC_INT_SOFT" to "0x1404") + ALCenum("ALC_UNSIGNED_INT_SOFT" to "0x1405") + ALCenum("ALC_FLOAT_SOFT" to "0x1406") + + ALCenum("ALC_MONO_SOFT" to "0x1500") + ALCenum("ALC_STEREO_SOFT" to "0x1501") + ALCenum("ALC_QUAD_SOFT" to "0x1503") + ALCenum("ALC_5POINT1_SOFT" to "0x1504") + ALCenum("ALC_6POINT1_SOFT" to "0x1505") + ALCenum("ALC_7POINT1_SOFT" to "0x1506") + + "alcLoopbackOpenDeviceSOFT"( + ALCdevice_ptr, + const_ALCchar_ptr("deviceName"), + entrypoint = "alcLoopbackOpenDeviceSOFT", + optional = true + ) + "alcIsRenderFormatSupportedSOFT"( + ALCboolean, + ALCdevice_ptr("device"), + ALCsizei("freq"), + ALCenum("channels"), + ALCenum("type"), + entrypoint = "alcIsRenderFormatSupportedSOFT", + optional = true + ) + "alcRenderSamplesSOFT"( + void, + ALCdevice_ptr("device"), + ALCvoid_ptr("buffer"), + ALCsizei("samples"), + entrypoint = "alcRenderSamplesSOFT", + optional = true + ) + } + downcall("AL_EXT_STEREO_ANGLES") { + ALenum("AL_STEREO_ANGLES" to "0x1030") + } + downcall("AL_EXT_SOURCE_RADIUS") { + ALenum("AL_SOURCE_RADIUS" to "0x1031") + } + downcall("AL_SOFT_source_latency") { + ALenum("AL_SAMPLE_OFFSET_LATENCY_SOFT" to "0x1200") + ALenum("AL_SEC_OFFSET_LATENCY_SOFT" to "0x1201") + + "alSourcedSOFT"( + void, + ALuint("source"), + ALenum("param"), + ALdouble("value"), + entrypoint = "alSourcedSOFT", + optional = true + ) + "alSource3dSOFT"( + void, + ALuint("source"), + ALenum("param"), + ALdouble("value1"), + ALdouble("value2"), + ALdouble("value3"), + entrypoint = "alSource3dSOFT", + optional = true + ) + "alSourcedvSOFT"( + void, + ALuint("source"), + ALenum("param"), + const_ALdouble_ptr("values"), + entrypoint = "alSourcedvSOFT", + optional = true + ) + "alGetSourcedSOFT"( + void, + ALuint("source"), + ALenum("param"), + ALdouble_ptr("value"), + entrypoint = "alGetSourcedSOFT", + optional = true + ) + "alGetSource3dSOFT"( + void, + ALuint("source"), + ALenum("param"), + ALdouble_ptr("value1"), + ALdouble_ptr("value2"), + ALdouble_ptr("value3"), + entrypoint = "alGetSource3dSOFT", + optional = true + ) + "alGetSourcedvSOFT"( + void, + ALuint("source"), + ALenum("param"), + ALdouble_ptr("values"), + entrypoint = "alGetSourcedvSOFT", + optional = true + ) + "alSourcei64SOFT"( + void, + ALuint("source"), + ALenum("param"), + ALint64SOFT("value"), + entrypoint = "alSourcei64SOFT", + optional = true + ) + "alSource3i64SOFT"( + void, + ALuint("source"), + ALenum("param"), + ALint64SOFT("value1"), + ALint64SOFT("value2"), + ALint64SOFT("value3"), + entrypoint = "alSource3i64SOFT", + optional = true + ) + "alSourcei64vSOFT"( + void, + ALuint("source"), + ALenum("param"), + const_ALint64SOFT_ptr("values"), + entrypoint = "alSourcei64vSOFT", + optional = true + ) + "alGetSourcei64SOFT"( + void, + ALuint("source"), + ALenum("param"), + ALint64SOFT_ptr("value"), + entrypoint = "alGetSourcei64SOFT", + optional = true + ) + "alGetSource3i64SOFT"( + void, + ALuint("source"), + ALenum("param"), + ALint64SOFT_ptr("value1"), + ALint64SOFT_ptr("value2"), + ALint64SOFT_ptr("value3"), + entrypoint = "alGetSource3i64SOFT", + optional = true + ) + "alGetSourcei64vSOFT"( + void, + ALuint("source"), + ALenum("param"), + ALint64SOFT_ptr("values"), + entrypoint = "alGetSourcei64vSOFT", + optional = true + ) + } + downcall("ALC_EXT_DEFAULT_FILTER_ORDER") { + ALCenum("ALC_DEFAULT_FILTER_ORDER" to "0x1100") + } + downcall("AL_SOFT_deferred_updates") { + ALenum("AL_DEFERRED_UPDATES_SOFT" to "0xC002") + + "alDeferUpdatesSOFT"(void, entrypoint = "alDeferUpdatesSOFT", optional = true) + "alProcessUpdatesSOFT"(void, entrypoint = "alProcessUpdatesSOFT", optional = true) + } + downcall("AL_SOFT_block_alignment") { + ALenum("AL_UNPACK_BLOCK_ALIGNMENT_SOFT" to "0x200C") + ALenum("AL_PACK_BLOCK_ALIGNMENT_SOFT" to "0x200D") + } + downcall("AL_SOFT_MSADPCM") { + ALenum("AL_FORMAT_MONO_MSADPCM_SOFT" to "0x1302") + ALenum("AL_FORMAT_STEREO_MSADPCM_SOFT" to "0x1303") + } + downcall("ALC_SOFT_pause_device") { + "alcDevicePauseSOFT"(void, ALCdevice_ptr("device"), entrypoint = "alcDevicePauseSOFT", optional = true) + "alcDeviceResumeSOFT"(void, ALCdevice_ptr("device"), entrypoint = "alcDeviceResumeSOFT", optional = true) + } + downcall("AL_EXT_BFORMAT") { + ALenum("AL_FORMAT_BFORMAT2D_8" to "0x20021") + ALenum("AL_FORMAT_BFORMAT2D_16" to "0x20022") + ALenum("AL_FORMAT_BFORMAT2D_FLOAT32" to "0x20023") + ALenum("AL_FORMAT_BFORMAT3D_8" to "0x20031") + ALenum("AL_FORMAT_BFORMAT3D_16" to "0x20032") + ALenum("AL_FORMAT_BFORMAT3D_FLOAT32" to "0x20033") + } + downcall("AL_EXT_MULAW_BFORMAT") { + ALenum("AL_FORMAT_BFORMAT2D_MULAW" to "0x10031") + ALenum("AL_FORMAT_BFORMAT3D_MULAW" to "0x10032") + } + downcall("ALC_SOFT_HRTF") { + ALCenum("ALC_HRTF_SOFT" to "0x1992") + ALCenum("ALC_DONT_CARE_SOFT" to "0x0002") + ALCenum("ALC_HRTF_STATUS_SOFT" to "0x1993") + ALCenum("ALC_HRTF_DISABLED_SOFT" to "0x0000") + ALCenum("ALC_HRTF_ENABLED_SOFT" to "0x0001") + ALCenum("ALC_HRTF_DENIED_SOFT" to "0x0002") + ALCenum("ALC_HRTF_REQUIRED_SOFT" to "0x0003") + ALCenum("ALC_HRTF_HEADPHONES_DETECTED_SOFT" to "0x0004") + ALCenum("ALC_HRTF_UNSUPPORTED_FORMAT_SOFT" to "0x0005") + ALCenum("ALC_NUM_HRTF_SPECIFIERS_SOFT" to "0x1994") + ALCenum("ALC_HRTF_SPECIFIER_SOFT" to "0x1995") + ALCenum("ALC_HRTF_ID_SOFT" to "0x1996") + + "alcGetStringiSOFT"( + const_ALCchar_ptr, + ALCdevice_ptr("device"), + ALCenum("paramName"), + ALCsizei("index"), + entrypoint = "alcGetStringiSOFT", + optional = true + ) + "alcResetDeviceSOFT"( + ALCboolean, + ALCdevice_ptr("device"), + const_ALCint_ptr("attribs"), + entrypoint = "alcResetDeviceSOFT", + optional = true + ) + } + downcall("AL_SOFT_gain_clamp_ex") { + ALenum("AL_GAIN_LIMIT_SOFT" to "0x200E") + } + downcall("AL_SOFT_source_resampler") { + ALenum("AL_NUM_RESAMPLERS_SOFT" to "0x1210") + ALenum("AL_DEFAULT_RESAMPLER_SOFT" to "0x1211") + ALenum("AL_SOURCE_RESAMPLER_SOFT" to "0x1212") + ALenum("AL_RESAMPLER_NAME_SOFT" to "0x1213") + + "alGetStringiSOFT"( + const_ALchar_ptr, + ALenum("pname"), + ALsizei("index"), + entrypoint = "alGetStringiSOFT", + optional = true + ) + } + downcall("AL_SOFT_source_spatialize") { + ALenum("AL_SOURCE_SPATIALIZE_SOFT" to "0x1214") + ALenum("AL_AUTO_SOFT" to "0x0002") + } + downcall("ALC_SOFT_output_limiter") { + ALCenum("ALC_OUTPUT_LIMITER_SOFT" to "0x199A") + } + downcall("ALC_SOFT_device_clock") { + ALCenum("ALC_DEVICE_CLOCK_SOFT" to "0x1600") + ALCenum("ALC_DEVICE_LATENCY_SOFT" to "0x1601") + ALCenum("ALC_DEVICE_CLOCK_LATENCY_SOFT" to "0x1602") + ALenum("AL_SAMPLE_OFFSET_CLOCK_SOFT" to "0x1202") + ALenum("AL_SEC_OFFSET_CLOCK_SOFT" to "0x1203") + + "alcGetInteger64vSOFT"( + void, + ALCdevice_ptr("device"), + ALCenum("pname"), + ALsizei("size"), + ALCint64SOFT_ptr("values"), + entrypoint = "alcGetInteger64vSOFT", + optional = true + ) + } + downcall("AL_SOFT_direct_channels_remix") { + ALenum("AL_DROP_UNMATCHED_SOFT" to "0x0001") + ALenum("AL_REMIX_UNMATCHED_SOFT" to "0x0002") + } + downcall("AL_SOFT_bformat_ex") { + ALenum("AL_AMBISONIC_LAYOUT_SOFT" to "0x1997") + ALenum("AL_AMBISONIC_SCALING_SOFT" to "0x1998") + + ALenum("AL_FUMA_SOFT" to "0x0000") + ALenum("AL_ACN_SOFT" to "0x0001") + + ALenum("AL_SN3D_SOFT" to "0x0001") + ALenum("AL_N3D_SOFT" to "0x0002") + } + downcall("ALC_SOFT_loopback_bformat") { + ALCenum("ALC_AMBISONIC_LAYOUT_SOFT" to "0x1997") + ALCenum("ALC_AMBISONIC_SCALING_SOFT" to "0x1998") + ALCenum("ALC_AMBISONIC_ORDER_SOFT" to "0x1999") + ALCenum("ALC_MAX_AMBISONIC_ORDER_SOFT" to "0x199B") + + ALCenum("ALC_BFORMAT3D_SOFT" to "0x1507") + + ALCenum("ALC_FUMA_SOFT" to "0x0000") + ALCenum("ALC_ACN_SOFT" to "0x0001") + + ALCenum("ALC_SN3D_SOFT" to "0x0001") + ALCenum("ALC_N3D_SOFT" to "0x0002") + } + downcall("AL_SOFT_effect_target") { + ALenum("AL_EFFECTSLOT_TARGET_SOFT" to "0x199C") + } + downcall("AL_SOFT_events") { + ALenum("AL_EVENT_CALLBACK_FUNCTION_SOFT" to "0x19A2") + ALenum("AL_EVENT_CALLBACK_USER_PARAM_SOFT" to "0x19A3") + ALenum("AL_EVENT_TYPE_BUFFER_COMPLETED_SOFT" to "0x19A4") + ALenum("AL_EVENT_TYPE_SOURCE_STATE_CHANGED_SOFT" to "0x19A5") + ALenum("AL_EVENT_TYPE_DISCONNECTED_SOFT" to "0x19A6") + + "alEventControlSOFT"( + void, + ALsizei("count"), + const_ALenum_ptr("types"), + ALboolean("enable"), + entrypoint = "alEventControlSOFT", + optional = true + ) + "alEventCallbackSOFT"( + void, + ALEVENTPROCSOFT("callback"), + void_ptr("userParam"), + entrypoint = "alEventCallbackSOFT", + optional = true + ) + "alGetPointerSOFT"(void_ptr, ALenum("pname"), entrypoint = "alGetPointerSOFT", optional = true) + "alGetPointervSOFT"( + void, + ALenum("pname"), + void_ptr_ptr("values"), + entrypoint = "alGetPointervSOFT", + optional = true + ) + } + downcall("ALC_SOFT_reopen_device") { + "alcReopenDeviceSOFT"( + ALCboolean, + ALCdevice_ptr("device"), + const_ALCchar_ptr("deviceName"), + const_ALCint_ptr("attribs"), + entrypoint = "alcReopenDeviceSOFT", + optional = true + ) + } + downcall("AL_SOFT_callback_buffer") { + ALenum("AL_BUFFER_CALLBACK_FUNCTION_SOFT" to "0x19A0") + ALenum("AL_BUFFER_CALLBACK_USER_PARAM_SOFT" to "0x19A1") + + "alBufferCallbackSOFT"( + void, + ALuint("buffer"), + ALenum("format"), + ALsizei("freq"), + ALBUFFERCALLBACKTYPESOFT("callback"), + ALvoid_ptr("userptr"), + entrypoint = "alBufferCallbackSOFT", + optional = true + ) + "alGetBufferPtrSOFT"( + void, + ALuint("buffer"), + ALenum("param"), + ALvoid_ptr_ptr("ptr"), + entrypoint = "alGetBufferPtrSOFT", + optional = true + ) + "alGetBuffer3PtrSOFT"( + void, + ALuint("buffer"), + ALenum("param"), + ALvoid_ptr_ptr("ptr0"), + ALvoid_ptr_ptr("ptr1"), + ALvoid_ptr_ptr("ptr2"), + entrypoint = "alGetBuffer3PtrSOFT", + optional = true + ) + "alGetBufferPtrvSOFT"( + void, + ALuint("buffer"), + ALenum("param"), + ALvoid_ptr_ptr("ptr"), + entrypoint = "alGetBufferPtrvSOFT", + optional = true + ) + } + downcall("AL_SOFT_UHJ") { + ALenum("AL_FORMAT_UHJ2CHN8_SOFT" to "0x19A2") + ALenum("AL_FORMAT_UHJ2CHN16_SOFT" to "0x19A3") + ALenum("AL_FORMAT_UHJ2CHN_FLOAT32_SOFT" to "0x19A4") + ALenum("AL_FORMAT_UHJ3CHN8_SOFT" to "0x19A5") + ALenum("AL_FORMAT_UHJ3CHN16_SOFT" to "0x19A6") + ALenum("AL_FORMAT_UHJ3CHN_FLOAT32_SOFT" to "0x19A7") + ALenum("AL_FORMAT_UHJ4CHN8_SOFT" to "0x19A8") + ALenum("AL_FORMAT_UHJ4CHN16_SOFT" to "0x19A9") + ALenum("AL_FORMAT_UHJ4CHN_FLOAT32_SOFT" to "0x19AA") + + ALenum("AL_STEREO_MODE_SOFT" to "0x19B0") + ALenum("AL_NORMAL_SOFT" to "0x0000") + ALenum("AL_SUPER_STEREO_SOFT" to "0x0001") + ALenum("AL_SUPER_STEREO_WIDTH_SOFT" to "0x19B1") + } + downcall("AL_SOFT_UHJ_ex") { + ALenum("AL_FORMAT_UHJ2CHN_MULAW_SOFT" to "0x19B3") + ALenum("AL_FORMAT_UHJ2CHN_ALAW_SOFT" to "0x19B4") + ALenum("AL_FORMAT_UHJ2CHN_IMA4_SOFT" to "0x19B5") + ALenum("AL_FORMAT_UHJ2CHN_MSADPCM_SOFT" to "0x19B6") + ALenum("AL_FORMAT_UHJ3CHN_MULAW_SOFT" to "0x19B7") + ALenum("AL_FORMAT_UHJ3CHN_ALAW_SOFT" to "0x19B8") + ALenum("AL_FORMAT_UHJ4CHN_MULAW_SOFT" to "0x19B9") + ALenum("AL_FORMAT_UHJ4CHN_ALAW_SOFT" to "0x19BA") + } + downcall("ALC_SOFT_output_mode") { + ALCenum("ALC_OUTPUT_MODE_SOFT" to "0x19AC") + ALCenum("ALC_ANY_SOFT" to "0x19AD") + + ALCenum("ALC_STEREO_BASIC_SOFT" to "0x19AE") + ALCenum("ALC_STEREO_UHJ_SOFT" to "0x19AF") + ALCenum("ALC_STEREO_HRTF_SOFT" to "0x19B2") + + ALCenum("ALC_SURROUND_5_1_SOFT" to "0x1504") + ALCenum("ALC_SURROUND_6_1_SOFT" to "0x1505") + ALCenum("ALC_SURROUND_7_1_SOFT" to "0x1506") + } + downcall("AL_SOFT_source_start_delay") { + "alSourcePlayAtTimeSOFT"( + void, + ALuint("source"), + ALint64SOFT("start_time"), + entrypoint = "alSourcePlayAtTimeSOFT", + optional = true + ) + "alSourcePlayAtTimevSOFT"( + void, + ALsizei("n"), + const_ALuint_ptr("sources"), + ALint64SOFT("start_time"), + entrypoint = "alSourcePlayAtTimevSOFT", + optional = true + ) + } + downcall("ALC_EXT_debug") { + ALCenum("ALC_CONTEXT_FLAGS_EXT" to "0x19CF") + ALCenum("ALC_CONTEXT_DEBUG_BIT_EXT" to "0x0001") + } + downcall("AL_EXT_debug") { + ALenum("AL_DONT_CARE_EXT" to "0x0002") + ALenum("AL_DEBUG_OUTPUT_EXT" to "0x19B2") + ALenum("AL_DEBUG_CALLBACK_FUNCTION_EXT" to "0x19B3") + ALenum("AL_DEBUG_CALLBACK_USER_PARAM_EXT" to "0x19B4") + ALenum("AL_DEBUG_SOURCE_API_EXT" to "0x19B5") + ALenum("AL_DEBUG_SOURCE_AUDIO_SYSTEM_EXT" to "0x19B6") + ALenum("AL_DEBUG_SOURCE_THIRD_PARTY_EXT" to "0x19B7") + ALenum("AL_DEBUG_SOURCE_APPLICATION_EXT" to "0x19B8") + ALenum("AL_DEBUG_SOURCE_OTHER_EXT" to "0x19B9") + ALenum("AL_DEBUG_TYPE_ERROR_EXT" to "0x19BA") + ALenum("AL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_EXT" to "0x19BB") + ALenum("AL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_EXT" to "0x19BC") + ALenum("AL_DEBUG_TYPE_PORTABILITY_EXT" to "0x19BD") + ALenum("AL_DEBUG_TYPE_PERFORMANCE_EXT" to "0x19BE") + ALenum("AL_DEBUG_TYPE_MARKER_EXT" to "0x19BF") + ALenum("AL_DEBUG_TYPE_PUSH_GROUP_EXT" to "0x19C0") + ALenum("AL_DEBUG_TYPE_POP_GROUP_EXT" to "0x19C1") + ALenum("AL_DEBUG_TYPE_OTHER_EXT" to "0x19C2") + ALenum("AL_DEBUG_SEVERITY_HIGH_EXT" to "0x19C3") + ALenum("AL_DEBUG_SEVERITY_MEDIUM_EXT" to "0x19C4") + ALenum("AL_DEBUG_SEVERITY_LOW_EXT" to "0x19C5") + ALenum("AL_DEBUG_SEVERITY_NOTIFICATION_EXT" to "0x19C6") + ALenum("AL_DEBUG_LOGGED_MESSAGES_EXT" to "0x19C7") + ALenum("AL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_EXT" to "0x19C8") + ALenum("AL_MAX_DEBUG_MESSAGE_LENGTH_EXT" to "0x19C9") + ALenum("AL_MAX_DEBUG_LOGGED_MESSAGES_EXT" to "0x19CA") + ALenum("AL_MAX_DEBUG_GROUP_STACK_DEPTH_EXT" to "0x19CB") + ALenum("AL_MAX_LABEL_LENGTH_EXT" to "0x19CC") + ALenum("AL_STACK_OVERFLOW_EXT" to "0x19CD") + ALenum("AL_STACK_UNDERFLOW_EXT" to "0x19CE") + ALenum("AL_CONTEXT_FLAGS_EXT" to "0x19CF") + ALenum("AL_BUFFER_EXT" to "0x1009") + ALenum("AL_SOURCE_EXT" to "0x19D0") + ALenum("AL_FILTER_EXT" to "0x19D1") + ALenum("AL_EFFECT_EXT" to "0x19D2") + ALenum("AL_AUXILIARY_EFFECT_SLOT_EXT" to "0x19D3") + + "alDebugMessageCallbackEXT"( + void, + ALDEBUGPROCEXT("callback"), + void_ptr("userParam"), + entrypoint = "alDebugMessageCallbackEXT", + optional = true + ) + "alDebugMessageInsertEXT"( + void, + ALenum("source"), + ALenum("type"), + ALuint("id"), + ALenum("severity"), + ALsizei("length"), + const_ALchar_ptr("message"), + entrypoint = "alDebugMessageInsertEXT", + optional = true + ) + "alDebugMessageControlEXT"( + void, + ALenum("source"), + ALenum("type"), + ALenum("severity"), + ALsizei("count"), + const_ALuint_ptr("ids"), + ALboolean("enable"), + entrypoint = "alDebugMessageControlEXT", + optional = true + ) + "alPushDebugGroupEXT"( + void, + ALenum("source"), + ALuint("id"), + ALsizei("length"), + const_ALchar_ptr("message"), + entrypoint = "alPushDebugGroupEXT", + optional = true + ) + "alPopDebugGroupEXT"(void, entrypoint = "alPopDebugGroupEXT", optional = true) + "alGetDebugMessageLogEXT"( + ALuint, + ALuint("count"), + ALsizei("logBufSize"), + ALenum_ptr("sources"), + ALenum_ptr("types"), + ALuint_ptr("ids"), + ALenum_ptr("severities"), + ALsizei_ptr("lengths"), + ALchar_ptr("logBuf"), + entrypoint = "alGetDebugMessageLogEXT", + optional = true + ) + "alObjectLabelEXT"( + void, + ALenum("identifier"), + ALuint("name"), + ALsizei("length"), + const_ALchar_ptr("label"), + entrypoint = "alObjectLabelEXT", + optional = true + ) + "alGetObjectLabelEXT"( + void, + ALenum("identifier"), + ALuint("name"), + ALsizei("bufSize"), + ALsizei_ptr("length"), + ALchar_ptr("label"), + entrypoint = "alGetObjectLabelEXT", + optional = true + ) + "alGetPointerEXT"(void_ptr, ALenum("pname"), entrypoint = "alGetPointerEXT", optional = true) + "alGetPointervEXT"( + void, + ALenum("pname"), + void_ptr_ptr("values"), + entrypoint = "alGetPointervEXT", + optional = true + ) + } + downcall("ALC_SOFT_system_events") { + ALCenum("ALC_PLAYBACK_DEVICE_SOFT" to "0x19D4") + ALCenum("ALC_CAPTURE_DEVICE_SOFT" to "0x19D5") + ALCenum("ALC_EVENT_TYPE_DEFAULT_DEVICE_CHANGED_SOFT" to "0x19D6") + ALCenum("ALC_EVENT_TYPE_DEVICE_ADDED_SOFT" to "0x19D7") + ALCenum("ALC_EVENT_TYPE_DEVICE_REMOVED_SOFT" to "0x19D8") + ALCenum("ALC_EVENT_SUPPORTED_SOFT" to "0x19D9") + ALCenum("ALC_EVENT_NOT_SUPPORTED_SOFT" to "0x19DA") + + "alcEventIsSupportedSOFT"( + ALCenum, + ALCenum("eventType"), + ALCenum("deviceType"), + entrypoint = "alcEventIsSupportedSOFT", + optional = true + ) + "alcEventControlSOFT"( + ALCboolean, + ALCsizei("count"), + const_ALCenum_ptr("events"), + ALCboolean("enable"), + entrypoint = "alcEventControlSOFT", + optional = true + ) + "alcEventCallbackSOFT"( + void, + ALCEVENTPROCTYPESOFT("callback"), + void_ptr("userParam"), + entrypoint = "alcEventCallbackSOFT", + optional = true + ) + } + downcall("AL_EXT_direct_context") { + "alcGetProcAddress2"( + ALCvoid_ptr, + ALCdevice_ptr("device"), + const_ALCchar_ptr("funcName"), + entrypoint = "alcGetProcAddress2", + optional = true + ) + + "alEnableDirect"( + void, + ALCcontext_ptr("context"), + ALenum("capability"), + entrypoint = "alEnableDirect", + optional = true + ) + "alDisableDirect"( + void, + ALCcontext_ptr("context"), + ALenum("capability"), + entrypoint = "alDisableDirect", + optional = true + ) + "alIsEnabledDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALenum("capability"), + entrypoint = "alIsEnabledDirect", + optional = true + ) + + "alDopplerFactorDirect"( + void, + ALCcontext_ptr("context"), + ALfloat("value"), + entrypoint = "alDopplerFactorDirect", + optional = true + ) + "alSpeedOfSoundDirect"( + void, + ALCcontext_ptr("context"), + ALfloat("value"), + entrypoint = "alSpeedOfSoundDirect", + optional = true + ) + "alDistanceModelDirect"( + void, + ALCcontext_ptr("context"), + ALenum("distanceModel"), + entrypoint = "alDistanceModelDirect", + optional = true + ) + + "alGetStringDirect"( + const_ALchar_ptr, + ALCcontext_ptr("context"), + ALenum("param"), + entrypoint = "alGetStringDirect", + optional = true + ) + "alGetBooleanvDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALboolean_ptr("values"), + entrypoint = "alGetBooleanvDirect", + optional = true + ) + "alGetIntegervDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALint_ptr("values"), + entrypoint = "alGetIntegervDirect", + optional = true + ) + "alGetFloatvDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALfloat_ptr("values"), + entrypoint = "alGetFloatvDirect", + optional = true + ) + "alGetDoublevDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALdouble_ptr("values"), + entrypoint = "alGetDoublevDirect", + optional = true + ) + "alGetBooleanDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALenum("param"), + entrypoint = "alGetBooleanDirect", + optional = true + ) + "alGetIntegerDirect"( + ALint, + ALCcontext_ptr("context"), + ALenum("param"), + entrypoint = "alGetIntegerDirect", + optional = true + ) + "alGetFloatDirect"( + ALfloat, + ALCcontext_ptr("context"), + ALenum("param"), + entrypoint = "alGetFloatDirect", + optional = true + ) + "alGetDoubleDirect"( + ALdouble, + ALCcontext_ptr("context"), + ALenum("param"), + entrypoint = "alGetDoubleDirect", + optional = true + ) + + "alGetErrorDirect"(ALenum, ALCcontext_ptr("context"), entrypoint = "alGetErrorDirect", optional = true) + "alIsExtensionPresentDirect"( + ALboolean, + ALCcontext_ptr("context"), + const_ALchar_ptr("extname"), + entrypoint = "alIsExtensionPresentDirect", + optional = true + ) + "alGetProcAddressDirect"( + void_ptr, + ALCcontext_ptr("context"), + const_ALchar_ptr("fname"), + entrypoint = "alGetProcAddressDirect", + optional = true + ) + "alGetEnumValueDirect"( + ALenum, + ALCcontext_ptr("context"), + const_ALchar_ptr("ename"), + entrypoint = "alGetEnumValueDirect", + optional = true + ) + + "alListenerfDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALfloat("value"), + entrypoint = "alListenerfDirect", + optional = true + ) + "alListener3fDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALfloat("value1"), + ALfloat("value2"), + ALfloat("value3"), + entrypoint = "alListener3fDirect", + optional = true + ) + "alListenerfvDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + const_ALfloat_ptr("values"), + entrypoint = "alListenerfvDirect", + optional = true + ) + "alListeneriDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALint("value"), + entrypoint = "alListeneriDirect", + optional = true + ) + "alListener3iDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALint("value1"), + ALint("value2"), + ALint("value3"), + entrypoint = "alListener3iDirect", + optional = true + ) + "alListenerivDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + const_ALint_ptr("values"), + entrypoint = "alListenerivDirect", + optional = true + ) + "alGetListenerfDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALfloat_ptr("value"), + entrypoint = "alGetListenerfDirect", + optional = true + ) + "alGetListener3fDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALfloat_ptr("value1"), + ALfloat_ptr("value2"), + ALfloat_ptr("value3"), + entrypoint = "alGetListener3fDirect", + optional = true + ) + "alGetListenerfvDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALfloat_ptr("values"), + entrypoint = "alGetListenerfvDirect", + optional = true + ) + "alGetListeneriDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALint_ptr("value"), + entrypoint = "alGetListeneriDirect", + optional = true + ) + "alGetListener3iDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALint_ptr("value1"), + ALint_ptr("value2"), + ALint_ptr("value3"), + entrypoint = "alGetListener3iDirect", + optional = true + ) + "alGetListenerivDirect"( + void, + ALCcontext_ptr("context"), + ALenum("param"), + ALint_ptr("values"), + entrypoint = "alGetListenerivDirect", + optional = true + ) + + "alGenSourcesDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + ALuint_ptr("sources"), + entrypoint = "alGenSourcesDirect", + optional = true + ) + "alDeleteSourcesDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("sources"), + entrypoint = "alDeleteSourcesDirect", + optional = true + ) + "alIsSourceDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALuint("source"), + entrypoint = "alIsSourceDirect", + optional = true + ) + "alSourcefDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALfloat("value"), + entrypoint = "alSourcefDirect", + optional = true + ) + "alSource3fDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALfloat("value1"), + ALfloat("value2"), + ALfloat("value3"), + entrypoint = "alSource3fDirect", + optional = true + ) + "alSourcefvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + const_ALfloat_ptr("values"), + entrypoint = "alSourcefvDirect", + optional = true + ) + "alSourceiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint("value"), + entrypoint = "alSourceiDirect", + optional = true + ) + "alSource3iDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint("value1"), + ALint("value2"), + ALint("value3"), + entrypoint = "alSource3iDirect", + optional = true + ) + "alSourceivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + const_ALint_ptr("values"), + entrypoint = "alSourceivDirect", + optional = true + ) + "alGetSourcefDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALfloat_ptr("value"), + entrypoint = "alGetSourcefDirect", + optional = true + ) + "alGetSource3fDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALfloat_ptr("value1"), + ALfloat_ptr("value2"), + ALfloat_ptr("value3"), + entrypoint = "alGetSource3fDirect", + optional = true + ) + "alGetSourcefvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALfloat_ptr("values"), + entrypoint = "alGetSourcefvDirect", + optional = true + ) + "alGetSourceiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint_ptr("value"), + entrypoint = "alGetSourceiDirect", + optional = true + ) + "alGetSource3iDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint_ptr("value1"), + ALint_ptr("value2"), + ALint_ptr("value3"), + entrypoint = "alGetSource3iDirect", + optional = true + ) + "alGetSourceivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint_ptr("values"), + entrypoint = "alGetSourceivDirect", + optional = true + ) + "alSourcePlayDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + entrypoint = "alSourcePlayDirect", + optional = true + ) + "alSourceStopDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + entrypoint = "alSourceStopDirect", + optional = true + ) + "alSourceRewindDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + entrypoint = "alSourceRewindDirect", + optional = true + ) + "alSourcePauseDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + entrypoint = "alSourcePauseDirect", + optional = true + ) + "alSourcePlayvDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("sources"), + entrypoint = "alSourcePlayvDirect", + optional = true + ) + "alSourceStopvDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("sources"), + entrypoint = "alSourceStopvDirect", + optional = true + ) + "alSourceRewindvDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("sources"), + entrypoint = "alSourceRewindvDirect", + optional = true + ) + "alSourcePausevDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("sources"), + entrypoint = "alSourcePausevDirect", + optional = true + ) + "alSourceQueueBuffersDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALsizei("nb"), + const_ALuint_ptr("buffers"), + entrypoint = "alSourceQueueBuffersDirect", + optional = true + ) + "alSourceUnqueueBuffersDirect"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALsizei("nb"), + ALuint_ptr("buffers"), + entrypoint = "alSourceUnqueueBuffersDirect", + optional = true + ) + + "alGenBuffersDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + ALuint_ptr("buffers"), + entrypoint = "alGenBuffersDirect", + optional = true + ) + "alDeleteBuffersDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("buffers"), + entrypoint = "alDeleteBuffersDirect", + optional = true + ) + "alIsBufferDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALuint("buffer"), + entrypoint = "alIsBufferDirect", + optional = true + ) + "alBufferDataDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("format"), + const_ALvoid_ptr("data"), + ALsizei("size"), + ALsizei("samplerate"), + entrypoint = "alBufferDataDirect", + optional = true + ) + "alBufferfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALfloat("value"), + entrypoint = "alBufferfDirect", + optional = true + ) + "alBuffer3fDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALfloat("value1"), + ALfloat("value2"), + ALfloat("value3"), + entrypoint = "alBuffer3fDirect", + optional = true + ) + "alBufferfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + const_ALfloat_ptr("values"), + entrypoint = "alBufferfvDirect", + optional = true + ) + "alBufferiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALint("value"), + entrypoint = "alBufferiDirect", + optional = true + ) + "alBuffer3iDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALint("value1"), + ALint("value2"), + ALint("value3"), + entrypoint = "alBuffer3iDirect", + optional = true + ) + "alBufferivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + const_ALint_ptr("values"), + entrypoint = "alBufferivDirect", + optional = true + ) + "alGetBufferfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALfloat_ptr("value"), + entrypoint = "alGetBufferfDirect", + optional = true + ) + "alGetBuffer3fDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALfloat_ptr("value1"), + ALfloat_ptr("value2"), + ALfloat_ptr("value3"), + entrypoint = "alGetBuffer3fDirect", + optional = true + ) + "alGetBufferfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALfloat_ptr("values"), + entrypoint = "alGetBufferfvDirect", + optional = true + ) + "alGetBufferiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALint_ptr("value"), + entrypoint = "alGetBufferiDirect", + optional = true + ) + "alGetBuffer3iDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALint_ptr("value1"), + ALint_ptr("value2"), + ALint_ptr("value3"), + entrypoint = "alGetBuffer3iDirect", + optional = true + ) + "alGetBufferivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALint_ptr("values"), + entrypoint = "alGetBufferivDirect", + optional = true + ) + + "alGenEffectsDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + ALuint_ptr("effects"), + entrypoint = "alGenEffectsDirect", + optional = true + ) + "alDeleteEffectsDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("effects"), + entrypoint = "alDeleteEffectsDirect", + optional = true + ) + "alIsEffectDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALuint("effect"), + entrypoint = "alIsEffectDirect", + optional = true + ) + "alEffectiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + ALint("iValue"), + entrypoint = "alEffectiDirect", + optional = true + ) + "alEffectivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + const_ALint_ptr("piValues"), + entrypoint = "alEffectivDirect", + optional = true + ) + "alEffectfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + ALfloat("flValue"), + entrypoint = "alEffectfDirect", + optional = true + ) + "alEffectfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + const_ALfloat_ptr("pflValues"), + entrypoint = "alEffectfvDirect", + optional = true + ) + "alGetEffectiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + ALint_ptr("piValue"), + entrypoint = "alGetEffectiDirect", + optional = true + ) + "alGetEffectivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + ALint_ptr("piValues"), + entrypoint = "alGetEffectivDirect", + optional = true + ) + "alGetEffectfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + ALfloat_ptr("pflValue"), + entrypoint = "alGetEffectfDirect", + optional = true + ) + "alGetEffectfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effect"), + ALenum("param"), + ALfloat_ptr("pflValues"), + entrypoint = "alGetEffectfvDirect", + optional = true + ) + + "alGenFiltersDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + ALuint_ptr("filters"), + entrypoint = "alGenFiltersDirect", + optional = true + ) + "alDeleteFiltersDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("filters"), + entrypoint = "alDeleteFiltersDirect", + optional = true + ) + "alIsFilterDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALuint("filter"), + entrypoint = "alIsFilterDirect", + optional = true + ) + "alFilteriDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + ALint("iValue"), + entrypoint = "alFilteriDirect", + optional = true + ) + "alFilterivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + const_ALint_ptr("piValues"), + entrypoint = "alFilterivDirect", + optional = true + ) + "alFilterfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + ALfloat("flValue"), + entrypoint = "alFilterfDirect", + optional = true + ) + "alFilterfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + const_ALfloat_ptr("pflValues"), + entrypoint = "alFilterfvDirect", + optional = true + ) + "alGetFilteriDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + ALint_ptr("piValue"), + entrypoint = "alGetFilteriDirect", + optional = true + ) + "alGetFilterivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + ALint_ptr("piValues"), + entrypoint = "alGetFilterivDirect", + optional = true + ) + "alGetFilterfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + ALfloat_ptr("pflValue"), + entrypoint = "alGetFilterfDirect", + optional = true + ) + "alGetFilterfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("filter"), + ALenum("param"), + ALfloat_ptr("pflValues"), + entrypoint = "alGetFilterfvDirect", + optional = true + ) + + "alGenAuxiliaryEffectSlotsDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + ALuint_ptr("effectslots"), + entrypoint = "alGenAuxiliaryEffectSlotsDirect", + optional = true + ) + "alDeleteAuxiliaryEffectSlotsDirect"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("effectslots"), + entrypoint = "alDeleteAuxiliaryEffectSlotsDirect", + optional = true + ) + "alIsAuxiliaryEffectSlotDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALuint("effectslot"), + entrypoint = "alIsAuxiliaryEffectSlotDirect", + optional = true + ) + "alAuxiliaryEffectSlotiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + ALint("iValue"), + entrypoint = "alAuxiliaryEffectSlotiDirect", + optional = true + ) + "alAuxiliaryEffectSlotivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + const_ALint_ptr("piValues"), + entrypoint = "alAuxiliaryEffectSlotivDirect", + optional = true + ) + "alAuxiliaryEffectSlotfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + ALfloat("flValue"), + entrypoint = "alAuxiliaryEffectSlotfDirect", + optional = true + ) + "alAuxiliaryEffectSlotfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + const_ALfloat_ptr("pflValues"), + entrypoint = "alAuxiliaryEffectSlotfvDirect", + optional = true + ) + "alGetAuxiliaryEffectSlotiDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + ALint_ptr("piValue"), + entrypoint = "alGetAuxiliaryEffectSlotiDirect", + optional = true + ) + "alGetAuxiliaryEffectSlotivDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + ALint_ptr("piValues"), + entrypoint = "alGetAuxiliaryEffectSlotivDirect", + optional = true + ) + "alGetAuxiliaryEffectSlotfDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + ALfloat_ptr("pflValue"), + entrypoint = "alGetAuxiliaryEffectSlotfDirect", + optional = true + ) + "alGetAuxiliaryEffectSlotfvDirect"( + void, + ALCcontext_ptr("context"), + ALuint("effectslot"), + ALenum("param"), + ALfloat_ptr("pflValues"), + entrypoint = "alGetAuxiliaryEffectSlotfvDirect", + optional = true + ) + + "alBufferDataStaticDirect"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("format"), + ALvoid_ptr("data"), + ALsizei("size"), + ALsizei("freq"), + entrypoint = "alBufferDataStaticDirect", + optional = true + ) + + "alDebugMessageCallbackDirectEXT"( + void, + ALCcontext_ptr("context"), + ALDEBUGPROCEXT("callback"), + void_ptr("userParam"), + entrypoint = "alDebugMessageCallbackDirectEXT", + optional = true + ) + "alDebugMessageInsertDirectEXT"( + void, + ALCcontext_ptr("context"), + ALenum("source"), + ALenum("type"), + ALuint("id"), + ALenum("severity"), + ALsizei("length"), + const_ALchar_ptr("message"), + entrypoint = "alDebugMessageInsertDirectEXT", + optional = true + ) + "alDebugMessageControlDirectEXT"( + void, + ALCcontext_ptr("context"), + ALenum("source"), + ALenum("type"), + ALenum("severity"), + ALsizei("count"), + const_ALuint_ptr("ids"), + ALboolean("enable"), + entrypoint = "alDebugMessageControlDirectEXT", + optional = true + ) + "alPushDebugGroupDirectEXT"( + void, + ALCcontext_ptr("context"), + ALenum("source"), + ALuint("id"), + ALsizei("length"), + const_ALchar_ptr("message"), + entrypoint = "alPushDebugGroupDirectEXT", + optional = true + ) + "alPopDebugGroupDirectEXT"( + void, + ALCcontext_ptr("context"), + entrypoint = "alPopDebugGroupDirectEXT", + optional = true + ) + "alGetDebugMessageLogDirectEXT"( + ALuint, + ALCcontext_ptr("context"), + ALuint("count"), + ALsizei("logBufSize"), + ALenum_ptr("sources"), + ALenum_ptr("types"), + ALuint_ptr("ids"), + ALenum_ptr("severities"), + ALsizei_ptr("lengths"), + ALchar_ptr("logBuf"), + entrypoint = "alGetDebugMessageLogDirectEXT", + optional = true + ) + "alObjectLabelDirectEXT"( + void, + ALCcontext_ptr("context"), + ALenum("identifier"), + ALuint("name"), + ALsizei("length"), + const_ALchar_ptr("label"), + entrypoint = "alObjectLabelDirectEXT", + optional = true + ) + "alGetObjectLabelDirectEXT"( + void, + ALCcontext_ptr("context"), + ALenum("identifier"), + ALuint("name"), + ALsizei("bufSize"), + ALsizei_ptr("length"), + ALchar_ptr("label"), + entrypoint = "alGetObjectLabelDirectEXT", + optional = true + ) + "alGetPointerDirectEXT"( + void_ptr, + ALCcontext_ptr("context"), + ALenum("pname"), + entrypoint = "alGetPointerDirectEXT", + optional = true + ) + "alGetPointervDirectEXT"( + void, + ALCcontext_ptr("context"), + ALenum("pname"), + void_ptr_ptr("values"), + entrypoint = "alGetPointervDirectEXT", + optional = true + ) + + "alRequestFoldbackStartDirect"( + void, + ALCcontext_ptr("context"), + ALenum("mode"), + ALsizei("count"), + ALsizei("length"), + ALfloat_ptr("mem"), + LPALFOLDBACKCALLBACK("callback"), + entrypoint = "alRequestFoldbackStartDirect", + optional = true + ) + "alRequestFoldbackStopDirect"( + void, + ALCcontext_ptr("context"), + entrypoint = "alRequestFoldbackStopDirect", + optional = true + ) + + "alBufferSubDataDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("format"), + const_ALvoid_ptr("data"), + ALsizei("offset"), + ALsizei("length"), + entrypoint = "alBufferSubDataDirectSOFT", + optional = true + ) + + "alSourcedDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALdouble("value"), + entrypoint = "alSourcedDirectSOFT", + optional = true + ) + "alSource3dDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALdouble("value1"), + ALdouble("value2"), + ALdouble("value3"), + entrypoint = "alSource3dDirectSOFT", + optional = true + ) + "alSourcedvDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + const_ALdouble_ptr("values"), + entrypoint = "alSourcedvDirectSOFT", + optional = true + ) + "alGetSourcedDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALdouble_ptr("value"), + entrypoint = "alGetSourcedDirectSOFT", + optional = true + ) + "alGetSource3dDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALdouble_ptr("value1"), + ALdouble_ptr("value2"), + ALdouble_ptr("value3"), + entrypoint = "alGetSource3dDirectSOFT", + optional = true + ) + "alGetSourcedvDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALdouble_ptr("values"), + entrypoint = "alGetSourcedvDirectSOFT", + optional = true + ) + "alSourcei64DirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint64SOFT("value"), + entrypoint = "alSourcei64DirectSOFT", + optional = true + ) + "alSource3i64DirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint64SOFT("value1"), + ALint64SOFT("value2"), + ALint64SOFT("value3"), + entrypoint = "alSource3i64DirectSOFT", + optional = true + ) + "alSourcei64vDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + const_ALint64SOFT_ptr("values"), + entrypoint = "alSourcei64vDirectSOFT", + optional = true + ) + "alGetSourcei64DirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint64SOFT_ptr("value"), + entrypoint = "alGetSourcei64DirectSOFT", + optional = true + ) + "alGetSource3i64DirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint64SOFT_ptr("value1"), + ALint64SOFT_ptr("value2"), + ALint64SOFT_ptr("value3"), + entrypoint = "alGetSource3i64DirectSOFT", + optional = true + ) + "alGetSourcei64vDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALenum("param"), + ALint64SOFT_ptr("values"), + entrypoint = "alGetSourcei64vDirectSOFT", + optional = true + ) + + "alDeferUpdatesDirectSOFT"( + void, + ALCcontext_ptr("context"), + entrypoint = "alDeferUpdatesDirectSOFT", + optional = true + ) + "alProcessUpdatesDirectSOFT"( + void, + ALCcontext_ptr("context"), + entrypoint = "alProcessUpdatesDirectSOFT", + optional = true + ) + + "alGetStringiDirectSOFT"( + const_ALchar_ptr, + ALCcontext_ptr("context"), + ALenum("pname"), + ALsizei("index"), + entrypoint = "alGetStringiDirectSOFT", + optional = true + ) + + "alEventControlDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALsizei("count"), + const_ALenum_ptr("types"), + ALboolean("enable"), + entrypoint = "alEventControlDirectSOFT", + optional = true + ) + "alEventCallbackDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALEVENTPROCSOFT("callback"), + void_ptr("userParam"), + entrypoint = "alEventCallbackDirectSOFT", + optional = true + ) + "alGetPointerDirectSOFT"( + void_ptr, + ALCcontext_ptr("context"), + ALenum("pname"), + entrypoint = "alGetPointerDirectSOFT", + optional = true + ) + "alGetPointervDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALenum("pname"), + void_ptr_ptr("values"), + entrypoint = "alGetPointervDirectSOFT", + optional = true + ) + + "alBufferCallbackDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("format"), + ALsizei("freq"), + ALBUFFERCALLBACKTYPESOFT("callback"), + ALvoid_ptr("userptr"), + entrypoint = "alBufferCallbackDirectSOFT", + optional = true + ) + "alGetBufferPtrDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALvoid_ptr_ptr("ptr"), + entrypoint = "alGetBufferPtrDirectSOFT", + optional = true + ) + "alGetBuffer3PtrDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALvoid_ptr_ptr("ptr0"), + ALvoid_ptr_ptr("ptr1"), + ALvoid_ptr_ptr("ptr2"), + entrypoint = "alGetBuffer3PtrDirectSOFT", + optional = true + ) + "alGetBufferPtrvDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALenum("param"), + ALvoid_ptr_ptr("ptr"), + entrypoint = "alGetBufferPtrvDirectSOFT", + optional = true + ) + + "alSourcePlayAtTimeDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALuint("source"), + ALint64SOFT("start_time"), + entrypoint = "alSourcePlayAtTimeDirectSOFT", + optional = true + ) + "alSourcePlayAtTimevDirectSOFT"( + void, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("sources"), + ALint64SOFT("start_time"), + entrypoint = "alSourcePlayAtTimevDirectSOFT", + optional = true + ) + + "EAXSetDirect"( + ALenum, + ALCcontext_ptr("context"), + (address c "const struct _GUID *")("property_set_id"), + ALuint("property_id"), + ALuint("source_id"), + ALvoid_ptr("value"), + ALuint("value_size"), + entrypoint = "EAXSetDirect", + optional = true + ) + "EAXGetDirect"( + ALenum, + ALCcontext_ptr("context"), + (address c "const struct _GUID *")("property_set_id"), + ALuint("property_id"), + ALuint("source_id"), + ALvoid_ptr("value"), + ALuint("value_size"), + entrypoint = "EAXGetDirect", + optional = true + ) + "EAXSetBufferModeDirect"( + ALboolean, + ALCcontext_ptr("context"), + ALsizei("n"), + const_ALuint_ptr("buffers"), + ALint("value"), + entrypoint = "EAXSetBufferModeDirect", + optional = true + ) + "EAXGetBufferModeDirect"( + ALenum, + ALCcontext_ptr("context"), + ALuint("buffer"), + ALint_ptr("pReserved"), + entrypoint = "EAXGetBufferModeDirect", + optional = true + ) + } + downcall("AL_SOFT_bformat_hoa") { + ALenum("AL_UNPACK_AMBISONIC_ORDER_SOFT" to "0x199D") + } + //endregion +} + +fun downcall(extName: String, action: StaticDowncall.() -> Unit) { + StaticDowncall( + alPackage, + extName.split('_').joinToString("") { it.replaceFirstChar(Char::uppercaseChar) }, + alLookup, + writeWholeFile = true, + action = action + ) +} diff --git a/generators/openal/src/main/kotlin/overrungl/openal/EFX.kt b/generators/openal/src/main/kotlin/overrungl/openal/EFX.kt new file mode 100644 index 00000000..4fa0292a --- /dev/null +++ b/generators/openal/src/main/kotlin/overrungl/openal/EFX.kt @@ -0,0 +1,855 @@ +/* + * MIT License + * + * Copyright (c) 2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +package overrungl.openal + +import overrungl.gen.float +import overrungl.gen.int +import overrungl.gen.string_u8 +import overrungl.gen.void + +fun efx() { + downcall("ALC_EXT_EFX") { + string_u8("ALC_EXT_EFX_NAME" to """"ALC_EXT_EFX"""") + + int("ALC_EFX_MAJOR_VERSION" to "0x20001") + int("ALC_EFX_MINOR_VERSION" to "0x20002") + int("ALC_MAX_AUXILIARY_SENDS" to "0x20003") + + int("AL_METERS_PER_UNIT" to "0x20004") + + int("AL_DIRECT_FILTER" to "0x20005") + int("AL_AUXILIARY_SEND_FILTER" to "0x20006") + int("AL_AIR_ABSORPTION_FACTOR" to "0x20007") + int("AL_ROOM_ROLLOFF_FACTOR" to "0x20008") + int("AL_CONE_OUTER_GAINHF" to "0x20009") + int("AL_DIRECT_FILTER_GAINHF_AUTO" to "0x2000A") + int("AL_AUXILIARY_SEND_FILTER_GAIN_AUTO" to "0x2000B") + int("AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO" to "0x2000C") + + int("AL_REVERB_DENSITY" to "0x0001") + int("AL_REVERB_DIFFUSION" to "0x0002") + int("AL_REVERB_GAIN" to "0x0003") + int("AL_REVERB_GAINHF" to "0x0004") + int("AL_REVERB_DECAY_TIME" to "0x0005") + int("AL_REVERB_DECAY_HFRATIO" to "0x0006") + int("AL_REVERB_REFLECTIONS_GAIN" to "0x0007") + int("AL_REVERB_REFLECTIONS_DELAY" to "0x0008") + int("AL_REVERB_LATE_REVERB_GAIN" to "0x0009") + int("AL_REVERB_LATE_REVERB_DELAY" to "0x000A") + int("AL_REVERB_AIR_ABSORPTION_GAINHF" to "0x000B") + int("AL_REVERB_ROOM_ROLLOFF_FACTOR" to "0x000C") + int("AL_REVERB_DECAY_HFLIMIT" to "0x000D") + + int("AL_EAXREVERB_DENSITY" to "0x0001") + int("AL_EAXREVERB_DIFFUSION" to "0x0002") + int("AL_EAXREVERB_GAIN" to "0x0003") + int("AL_EAXREVERB_GAINHF" to "0x0004") + int("AL_EAXREVERB_GAINLF" to "0x0005") + int("AL_EAXREVERB_DECAY_TIME" to "0x0006") + int("AL_EAXREVERB_DECAY_HFRATIO" to "0x0007") + int("AL_EAXREVERB_DECAY_LFRATIO" to "0x0008") + int("AL_EAXREVERB_REFLECTIONS_GAIN" to "0x0009") + int("AL_EAXREVERB_REFLECTIONS_DELAY" to "0x000A") + int("AL_EAXREVERB_REFLECTIONS_PAN" to "0x000B") + int("AL_EAXREVERB_LATE_REVERB_GAIN" to "0x000C") + int("AL_EAXREVERB_LATE_REVERB_DELAY" to "0x000D") + int("AL_EAXREVERB_LATE_REVERB_PAN" to "0x000E") + int("AL_EAXREVERB_ECHO_TIME" to "0x000F") + int("AL_EAXREVERB_ECHO_DEPTH" to "0x0010") + int("AL_EAXREVERB_MODULATION_TIME" to "0x0011") + int("AL_EAXREVERB_MODULATION_DEPTH" to "0x0012") + int("AL_EAXREVERB_AIR_ABSORPTION_GAINHF" to "0x0013") + int("AL_EAXREVERB_HFREFERENCE" to "0x0014") + int("AL_EAXREVERB_LFREFERENCE" to "0x0015") + int("AL_EAXREVERB_ROOM_ROLLOFF_FACTOR" to "0x0016") + int("AL_EAXREVERB_DECAY_HFLIMIT" to "0x0017") + + int("AL_CHORUS_WAVEFORM" to "0x0001") + int("AL_CHORUS_PHASE" to "0x0002") + int("AL_CHORUS_RATE" to "0x0003") + int("AL_CHORUS_DEPTH" to "0x0004") + int("AL_CHORUS_FEEDBACK" to "0x0005") + int("AL_CHORUS_DELAY" to "0x0006") + + int("AL_DISTORTION_EDGE" to "0x0001") + int("AL_DISTORTION_GAIN" to "0x0002") + int("AL_DISTORTION_LOWPASS_CUTOFF" to "0x0003") + int("AL_DISTORTION_EQCENTER" to "0x0004") + int("AL_DISTORTION_EQBANDWIDTH" to "0x0005") + + int("AL_ECHO_DELAY" to "0x0001") + int("AL_ECHO_LRDELAY" to "0x0002") + int("AL_ECHO_DAMPING" to "0x0003") + int("AL_ECHO_FEEDBACK" to "0x0004") + int("AL_ECHO_SPREAD" to "0x0005") + + int("AL_FLANGER_WAVEFORM" to "0x0001") + int("AL_FLANGER_PHASE" to "0x0002") + int("AL_FLANGER_RATE" to "0x0003") + int("AL_FLANGER_DEPTH" to "0x0004") + int("AL_FLANGER_FEEDBACK" to "0x0005") + int("AL_FLANGER_DELAY" to "0x0006") + + int("AL_FREQUENCY_SHIFTER_FREQUENCY" to "0x0001") + int("AL_FREQUENCY_SHIFTER_LEFT_DIRECTION" to "0x0002") + int("AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION" to "0x0003") + + int("AL_VOCAL_MORPHER_PHONEMEA" to "0x0001") + int("AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING" to "0x0002") + int("AL_VOCAL_MORPHER_PHONEMEB" to "0x0003") + int("AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING" to "0x0004") + int("AL_VOCAL_MORPHER_WAVEFORM" to "0x0005") + int("AL_VOCAL_MORPHER_RATE" to "0x0006") + + int("AL_PITCH_SHIFTER_COARSE_TUNE" to "0x0001") + int("AL_PITCH_SHIFTER_FINE_TUNE" to "0x0002") + + int("AL_RING_MODULATOR_FREQUENCY" to "0x0001") + int("AL_RING_MODULATOR_HIGHPASS_CUTOFF" to "0x0002") + int("AL_RING_MODULATOR_WAVEFORM" to "0x0003") + + int("AL_AUTOWAH_ATTACK_TIME" to "0x0001") + int("AL_AUTOWAH_RELEASE_TIME" to "0x0002") + int("AL_AUTOWAH_RESONANCE" to "0x0003") + int("AL_AUTOWAH_PEAK_GAIN" to "0x0004") + + int("AL_COMPRESSOR_ONOFF" to "0x0001") + + int("AL_EQUALIZER_LOW_GAIN" to "0x0001") + int("AL_EQUALIZER_LOW_CUTOFF" to "0x0002") + int("AL_EQUALIZER_MID1_GAIN" to "0x0003") + int("AL_EQUALIZER_MID1_CENTER" to "0x0004") + int("AL_EQUALIZER_MID1_WIDTH" to "0x0005") + int("AL_EQUALIZER_MID2_GAIN" to "0x0006") + int("AL_EQUALIZER_MID2_CENTER" to "0x0007") + int("AL_EQUALIZER_MID2_WIDTH" to "0x0008") + int("AL_EQUALIZER_HIGH_GAIN" to "0x0009") + int("AL_EQUALIZER_HIGH_CUTOFF" to "0x000A") + + int("AL_EFFECT_FIRST_PARAMETER" to "0x0000") + int("AL_EFFECT_LAST_PARAMETER" to "0x8000") + int("AL_EFFECT_TYPE" to "0x8001") + + int("AL_EFFECT_NULL" to "0x0000") + int("AL_EFFECT_REVERB" to "0x0001") + int("AL_EFFECT_CHORUS" to "0x0002") + int("AL_EFFECT_DISTORTION" to "0x0003") + int("AL_EFFECT_ECHO" to "0x0004") + int("AL_EFFECT_FLANGER" to "0x0005") + int("AL_EFFECT_FREQUENCY_SHIFTER" to "0x0006") + int("AL_EFFECT_VOCAL_MORPHER" to "0x0007") + int("AL_EFFECT_PITCH_SHIFTER" to "0x0008") + int("AL_EFFECT_RING_MODULATOR" to "0x0009") + int("AL_EFFECT_AUTOWAH" to "0x000A") + int("AL_EFFECT_COMPRESSOR" to "0x000B") + int("AL_EFFECT_EQUALIZER" to "0x000C") + int("AL_EFFECT_EAXREVERB" to "0x8000") + + int("AL_EFFECTSLOT_EFFECT" to "0x0001") + int("AL_EFFECTSLOT_GAIN" to "0x0002") + int("AL_EFFECTSLOT_AUXILIARY_SEND_AUTO" to "0x0003") + + int("AL_EFFECTSLOT_NULL" to "0x0000") + + int("AL_LOWPASS_GAIN" to "0x0001") + int("AL_LOWPASS_GAINHF" to "0x0002") + + int("AL_HIGHPASS_GAIN" to "0x0001") + int("AL_HIGHPASS_GAINLF" to "0x0002") + + int("AL_BANDPASS_GAIN" to "0x0001") + int("AL_BANDPASS_GAINLF" to "0x0002") + int("AL_BANDPASS_GAINHF" to "0x0003") + + int("AL_FILTER_FIRST_PARAMETER" to "0x0000") + int("AL_FILTER_LAST_PARAMETER" to "0x8000") + int("AL_FILTER_TYPE" to "0x8001") + + int("AL_FILTER_NULL" to "0x0000") + int("AL_FILTER_LOWPASS" to "0x0001") + int("AL_FILTER_HIGHPASS" to "0x0002") + int("AL_FILTER_BANDPASS" to "0x0003") + + "alGenEffects"(void, ALsizei("n"), ALuint_ptr("effects"), entrypoint = "alGenEffects", optional = true) + "alDeleteEffects"( + void, + ALsizei("n"), + const_ALuint_ptr("effects"), + entrypoint = "alDeleteEffects", + optional = true + ) + "alIsEffect"(ALboolean, ALuint("effect"), entrypoint = "alIsEffect", optional = true) + "alEffecti"(void, ALuint("effect"), ALenum("param"), ALint("iValue"), entrypoint = "alEffecti", optional = true) + "alEffectiv"( + void, + ALuint("effect"), + ALenum("param"), + const_ALint_ptr("piValues"), + entrypoint = "alEffectiv", + optional = true + ) + "alEffectf"( + void, + ALuint("effect"), + ALenum("param"), + ALfloat("flValue"), + entrypoint = "alEffectf", + optional = true + ) + "alEffectfv"( + void, + ALuint("effect"), + ALenum("param"), + const_ALfloat_ptr("pflValues"), + entrypoint = "alEffectfv", + optional = true + ) + "alGetEffecti"( + void, + ALuint("effect"), + ALenum("param"), + ALint_ptr("piValue"), + entrypoint = "alGetEffecti", + optional = true + ) + "alGetEffectiv"( + void, + ALuint("effect"), + ALenum("param"), + ALint_ptr("piValues"), + entrypoint = "alGetEffectiv", + optional = true + ) + "alGetEffectf"( + void, + ALuint("effect"), + ALenum("param"), + ALfloat_ptr("pflValue"), + entrypoint = "alGetEffectf", + optional = true + ) + "alGetEffectfv"( + void, + ALuint("effect"), + ALenum("param"), + ALfloat_ptr("pflValues"), + entrypoint = "alGetEffectfv", + optional = true + ) + + "alGenFilters"(void, ALsizei("n"), ALuint_ptr("filters"), entrypoint = "alGenFilters", optional = true) + "alDeleteFilters"( + void, + ALsizei("n"), + const_ALuint_ptr("filters"), + entrypoint = "alDeleteFilters", + optional = true + ) + "alIsFilter"(ALboolean, ALuint("filter"), entrypoint = "alIsFilter", optional = true) + "alFilteri"(void, ALuint("filter"), ALenum("param"), ALint("iValue"), entrypoint = "alFilteri", optional = true) + "alFilteriv"( + void, + ALuint("filter"), + ALenum("param"), + const_ALint_ptr("piValues"), + entrypoint = "alFilteriv", + optional = true + ) + "alFilterf"( + void, + ALuint("filter"), + ALenum("param"), + ALfloat("flValue"), + entrypoint = "alFilterf", + optional = true + ) + "alFilterfv"( + void, + ALuint("filter"), + ALenum("param"), + const_ALfloat_ptr("pflValues"), + entrypoint = "alFilterfv", + optional = true + ) + "alGetFilteri"( + void, + ALuint("filter"), + ALenum("param"), + ALint_ptr("piValue"), + entrypoint = "alGetFilteri", + optional = true + ) + "alGetFilteriv"( + void, + ALuint("filter"), + ALenum("param"), + ALint_ptr("piValues"), + entrypoint = "alGetFilteriv", + optional = true + ) + "alGetFilterf"( + void, + ALuint("filter"), + ALenum("param"), + ALfloat_ptr("pflValue"), + entrypoint = "alGetFilterf", + optional = true + ) + "alGetFilterfv"( + void, + ALuint("filter"), + ALenum("param"), + ALfloat_ptr("pflValues"), + entrypoint = "alGetFilterfv", + optional = true + ) + + "alGenAuxiliaryEffectSlots"( + void, + ALsizei("n"), + ALuint_ptr("effectslots"), + entrypoint = "alGenAuxiliaryEffectSlots", + optional = true + ) + "alDeleteAuxiliaryEffectSlots"( + void, + ALsizei("n"), + const_ALuint_ptr("effectslots"), + entrypoint = "alDeleteAuxiliaryEffectSlots", + optional = true + ) + "alIsAuxiliaryEffectSlot"( + ALboolean, + ALuint("effectslot"), + entrypoint = "alIsAuxiliaryEffectSlot", + optional = true + ) + "alAuxiliaryEffectSloti"( + void, + ALuint("effectslot"), + ALenum("param"), + ALint("iValue"), + entrypoint = "alAuxiliaryEffectSloti", + optional = true + ) + "alAuxiliaryEffectSlotiv"( + void, + ALuint("effectslot"), + ALenum("param"), + const_ALint_ptr("piValues"), + entrypoint = "alAuxiliaryEffectSlotiv", + optional = true + ) + "alAuxiliaryEffectSlotf"( + void, + ALuint("effectslot"), + ALenum("param"), + ALfloat("flValue"), + entrypoint = "alAuxiliaryEffectSlotf", + optional = true + ) + "alAuxiliaryEffectSlotfv"( + void, + ALuint("effectslot"), + ALenum("param"), + const_ALfloat_ptr("pflValues"), + entrypoint = "alAuxiliaryEffectSlotfv", + optional = true + ) + "alGetAuxiliaryEffectSloti"( + void, + ALuint("effectslot"), + ALenum("param"), + ALint_ptr("piValue"), + entrypoint = "alGetAuxiliaryEffectSloti", + optional = true + ) + "alGetAuxiliaryEffectSlotiv"( + void, + ALuint("effectslot"), + ALenum("param"), + ALint_ptr("piValues"), + entrypoint = "alGetAuxiliaryEffectSlotiv", + optional = true + ) + "alGetAuxiliaryEffectSlotf"( + void, + ALuint("effectslot"), + ALenum("param"), + ALfloat_ptr("pflValue"), + entrypoint = "alGetAuxiliaryEffectSlotf", + optional = true + ) + "alGetAuxiliaryEffectSlotfv"( + void, + ALuint("effectslot"), + ALenum("param"), + ALfloat_ptr("pflValues"), + entrypoint = "alGetAuxiliaryEffectSlotfv", + optional = true + ) + + float("AL_LOWPASS_MIN_GAIN" to "0.0f") + float("AL_LOWPASS_MAX_GAIN" to "1.0f") + float("AL_LOWPASS_DEFAULT_GAIN" to "1.0f") + + float("AL_LOWPASS_MIN_GAINHF" to "0.0f") + float("AL_LOWPASS_MAX_GAINHF" to "1.0f") + float("AL_LOWPASS_DEFAULT_GAINHF" to "1.0f") + + float("AL_HIGHPASS_MIN_GAIN" to "0.0f") + float("AL_HIGHPASS_MAX_GAIN" to "1.0f") + float("AL_HIGHPASS_DEFAULT_GAIN" to "1.0f") + + float("AL_HIGHPASS_MIN_GAINLF" to "0.0f") + float("AL_HIGHPASS_MAX_GAINLF" to "1.0f") + float("AL_HIGHPASS_DEFAULT_GAINLF" to "1.0f") + + float("AL_BANDPASS_MIN_GAIN" to "0.0f") + float("AL_BANDPASS_MAX_GAIN" to "1.0f") + float("AL_BANDPASS_DEFAULT_GAIN" to "1.0f") + + float("AL_BANDPASS_MIN_GAINHF" to "0.0f") + float("AL_BANDPASS_MAX_GAINHF" to "1.0f") + float("AL_BANDPASS_DEFAULT_GAINHF" to "1.0f") + + float("AL_BANDPASS_MIN_GAINLF" to "0.0f") + float("AL_BANDPASS_MAX_GAINLF" to "1.0f") + float("AL_BANDPASS_DEFAULT_GAINLF" to "1.0f") + + float("AL_REVERB_MIN_DENSITY" to "0.0f") + float("AL_REVERB_MAX_DENSITY" to "1.0f") + float("AL_REVERB_DEFAULT_DENSITY" to "1.0f") + + float("AL_REVERB_MIN_DIFFUSION" to "0.0f") + float("AL_REVERB_MAX_DIFFUSION" to "1.0f") + float("AL_REVERB_DEFAULT_DIFFUSION" to "1.0f") + + float("AL_REVERB_MIN_GAIN" to "0.0f") + float("AL_REVERB_MAX_GAIN" to "1.0f") + float("AL_REVERB_DEFAULT_GAIN" to "0.32f") + + float("AL_REVERB_MIN_GAINHF" to "0.0f") + float("AL_REVERB_MAX_GAINHF" to "1.0f") + float("AL_REVERB_DEFAULT_GAINHF" to "0.89f") + + float("AL_REVERB_MIN_DECAY_TIME" to "0.1f") + float("AL_REVERB_MAX_DECAY_TIME" to "20.0f") + float("AL_REVERB_DEFAULT_DECAY_TIME" to "1.49f") + + float("AL_REVERB_MIN_DECAY_HFRATIO" to "0.1f") + float("AL_REVERB_MAX_DECAY_HFRATIO" to "2.0f") + float("AL_REVERB_DEFAULT_DECAY_HFRATIO" to "0.83f") + + float("AL_REVERB_MIN_REFLECTIONS_GAIN" to "0.0f") + float("AL_REVERB_MAX_REFLECTIONS_GAIN" to "3.16f") + float("AL_REVERB_DEFAULT_REFLECTIONS_GAIN" to "0.05f") + + float("AL_REVERB_MIN_REFLECTIONS_DELAY" to "0.0f") + float("AL_REVERB_MAX_REFLECTIONS_DELAY" to "0.3f") + float("AL_REVERB_DEFAULT_REFLECTIONS_DELAY" to "0.007f") + + float("AL_REVERB_MIN_LATE_REVERB_GAIN" to "0.0f") + float("AL_REVERB_MAX_LATE_REVERB_GAIN" to "10.0f") + float("AL_REVERB_DEFAULT_LATE_REVERB_GAIN" to "1.26f") + + float("AL_REVERB_MIN_LATE_REVERB_DELAY" to "0.0f") + float("AL_REVERB_MAX_LATE_REVERB_DELAY" to "0.1f") + float("AL_REVERB_DEFAULT_LATE_REVERB_DELAY" to "0.011f") + + float("AL_REVERB_MIN_AIR_ABSORPTION_GAINHF" to "0.892f") + float("AL_REVERB_MAX_AIR_ABSORPTION_GAINHF" to "1.0f") + float("AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF" to "0.994f") + + float("AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR" to "0.0f") + float("AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR" to "10.0f") + float("AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR" to "0.0f") + + int("AL_REVERB_MIN_DECAY_HFLIMIT" to "AL.AL_FALSE") + int("AL_REVERB_MAX_DECAY_HFLIMIT" to "AL.AL_TRUE") + int("AL_REVERB_DEFAULT_DECAY_HFLIMIT" to "AL.AL_TRUE") + + float("AL_EAXREVERB_MIN_DENSITY" to "0.0f") + float("AL_EAXREVERB_MAX_DENSITY" to "1.0f") + float("AL_EAXREVERB_DEFAULT_DENSITY" to "1.0f") + + float("AL_EAXREVERB_MIN_DIFFUSION" to "0.0f") + float("AL_EAXREVERB_MAX_DIFFUSION" to "1.0f") + float("AL_EAXREVERB_DEFAULT_DIFFUSION" to "1.0f") + + float("AL_EAXREVERB_MIN_GAIN" to "0.0f") + float("AL_EAXREVERB_MAX_GAIN" to "1.0f") + float("AL_EAXREVERB_DEFAULT_GAIN" to "0.32f") + + float("AL_EAXREVERB_MIN_GAINHF" to "0.0f") + float("AL_EAXREVERB_MAX_GAINHF" to "1.0f") + float("AL_EAXREVERB_DEFAULT_GAINHF" to "0.89f") + + float("AL_EAXREVERB_MIN_GAINLF" to "0.0f") + float("AL_EAXREVERB_MAX_GAINLF" to "1.0f") + float("AL_EAXREVERB_DEFAULT_GAINLF" to "1.0f") + + float("AL_EAXREVERB_MIN_DECAY_TIME" to "0.1f") + float("AL_EAXREVERB_MAX_DECAY_TIME" to "20.0f") + float("AL_EAXREVERB_DEFAULT_DECAY_TIME" to "1.49f") + + float("AL_EAXREVERB_MIN_DECAY_HFRATIO" to "0.1f") + float("AL_EAXREVERB_MAX_DECAY_HFRATIO" to "2.0f") + float("AL_EAXREVERB_DEFAULT_DECAY_HFRATIO" to "0.83f") + + float("AL_EAXREVERB_MIN_DECAY_LFRATIO" to "0.1f") + float("AL_EAXREVERB_MAX_DECAY_LFRATIO" to "2.0f") + float("AL_EAXREVERB_DEFAULT_DECAY_LFRATIO" to "1.0f") + + float("AL_EAXREVERB_MIN_REFLECTIONS_GAIN" to "0.0f") + float("AL_EAXREVERB_MAX_REFLECTIONS_GAIN" to "3.16f") + float("AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN" to "0.05f") + + float("AL_EAXREVERB_MIN_REFLECTIONS_DELAY" to "0.0f") + float("AL_EAXREVERB_MAX_REFLECTIONS_DELAY" to "0.3f") + float("AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY" to "0.007f") + + float("AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ" to "0.0f") + + float("AL_EAXREVERB_MIN_LATE_REVERB_GAIN" to "0.0f") + float("AL_EAXREVERB_MAX_LATE_REVERB_GAIN" to "10.0f") + float("AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN" to "1.26f") + + float("AL_EAXREVERB_MIN_LATE_REVERB_DELAY" to "0.0f") + float("AL_EAXREVERB_MAX_LATE_REVERB_DELAY" to "0.1f") + float("AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY" to "0.011f") + + float("AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ" to "0.0f") + + float("AL_EAXREVERB_MIN_ECHO_TIME" to "0.075f") + float("AL_EAXREVERB_MAX_ECHO_TIME" to "0.25f") + float("AL_EAXREVERB_DEFAULT_ECHO_TIME" to "0.25f") + + float("AL_EAXREVERB_MIN_ECHO_DEPTH" to "0.0f") + float("AL_EAXREVERB_MAX_ECHO_DEPTH" to "1.0f") + float("AL_EAXREVERB_DEFAULT_ECHO_DEPTH" to "0.0f") + + float("AL_EAXREVERB_MIN_MODULATION_TIME" to "0.04f") + float("AL_EAXREVERB_MAX_MODULATION_TIME" to "4.0f") + float("AL_EAXREVERB_DEFAULT_MODULATION_TIME" to "0.25f") + + float("AL_EAXREVERB_MIN_MODULATION_DEPTH" to "0.0f") + float("AL_EAXREVERB_MAX_MODULATION_DEPTH" to "1.0f") + float("AL_EAXREVERB_DEFAULT_MODULATION_DEPTH" to "0.0f") + + float("AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF" to "0.892f") + float("AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF" to "1.0f") + float("AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF" to "0.994f") + + float("AL_EAXREVERB_MIN_HFREFERENCE" to "1000.0f") + float("AL_EAXREVERB_MAX_HFREFERENCE" to "20000.0f") + float("AL_EAXREVERB_DEFAULT_HFREFERENCE" to "5000.0f") + + float("AL_EAXREVERB_MIN_LFREFERENCE" to "20.0f") + float("AL_EAXREVERB_MAX_LFREFERENCE" to "1000.0f") + float("AL_EAXREVERB_DEFAULT_LFREFERENCE" to "250.0f") + + float("AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR" to "0.0f") + float("AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR" to "10.0f") + float("AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR" to "0.0f") + + int("AL_EAXREVERB_MIN_DECAY_HFLIMIT" to "AL.AL_FALSE") + int("AL_EAXREVERB_MAX_DECAY_HFLIMIT" to "AL.AL_TRUE") + int("AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT" to "AL.AL_TRUE") + + int("AL_CHORUS_WAVEFORM_SINUSOID" to "0") + int("AL_CHORUS_WAVEFORM_TRIANGLE" to "1") + + int("AL_CHORUS_MIN_WAVEFORM" to "0") + int("AL_CHORUS_MAX_WAVEFORM" to "1") + int("AL_CHORUS_DEFAULT_WAVEFORM" to "1") + + int("AL_CHORUS_MIN_PHASE" to "-180") + int("AL_CHORUS_MAX_PHASE" to "180") + int("AL_CHORUS_DEFAULT_PHASE" to "90") + + float("AL_CHORUS_MIN_RATE" to "0.0f") + float("AL_CHORUS_MAX_RATE" to "10.0f") + float("AL_CHORUS_DEFAULT_RATE" to "1.1f") + + float("AL_CHORUS_MIN_DEPTH" to "0.0f") + float("AL_CHORUS_MAX_DEPTH" to "1.0f") + float("AL_CHORUS_DEFAULT_DEPTH" to "0.1f") + + float("AL_CHORUS_MIN_FEEDBACK" to "-1.0f") + float("AL_CHORUS_MAX_FEEDBACK" to "1.0f") + float("AL_CHORUS_DEFAULT_FEEDBACK" to "0.25f") + + float("AL_CHORUS_MIN_DELAY" to "0.0f") + float("AL_CHORUS_MAX_DELAY" to "0.016f") + float("AL_CHORUS_DEFAULT_DELAY" to "0.016f") + + float("AL_DISTORTION_MIN_EDGE" to "0.0f") + float("AL_DISTORTION_MAX_EDGE" to "1.0f") + float("AL_DISTORTION_DEFAULT_EDGE" to "0.2f") + + float("AL_DISTORTION_MIN_GAIN" to "0.01f") + float("AL_DISTORTION_MAX_GAIN" to "1.0f") + float("AL_DISTORTION_DEFAULT_GAIN" to "0.05f") + + float("AL_DISTORTION_MIN_LOWPASS_CUTOFF" to "80.0f") + float("AL_DISTORTION_MAX_LOWPASS_CUTOFF" to "24000.0f") + float("AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF" to "8000.0f") + + float("AL_DISTORTION_MIN_EQCENTER" to "80.0f") + float("AL_DISTORTION_MAX_EQCENTER" to "24000.0f") + float("AL_DISTORTION_DEFAULT_EQCENTER" to "3600.0f") + + float("AL_DISTORTION_MIN_EQBANDWIDTH" to "80.0f") + float("AL_DISTORTION_MAX_EQBANDWIDTH" to "24000.0f") + float("AL_DISTORTION_DEFAULT_EQBANDWIDTH" to "3600.0f") + + float("AL_ECHO_MIN_DELAY" to "0.0f") + float("AL_ECHO_MAX_DELAY" to "0.207f") + float("AL_ECHO_DEFAULT_DELAY" to "0.1f") + + float("AL_ECHO_MIN_LRDELAY" to "0.0f") + float("AL_ECHO_MAX_LRDELAY" to "0.404f") + float("AL_ECHO_DEFAULT_LRDELAY" to "0.1f") + + float("AL_ECHO_MIN_DAMPING" to "0.0f") + float("AL_ECHO_MAX_DAMPING" to "0.99f") + float("AL_ECHO_DEFAULT_DAMPING" to "0.5f") + + float("AL_ECHO_MIN_FEEDBACK" to "0.0f") + float("AL_ECHO_MAX_FEEDBACK" to "1.0f") + float("AL_ECHO_DEFAULT_FEEDBACK" to "0.5f") + + float("AL_ECHO_MIN_SPREAD" to "-1.0f") + float("AL_ECHO_MAX_SPREAD" to "1.0f") + float("AL_ECHO_DEFAULT_SPREAD" to "-1.0f") + + int("AL_FLANGER_WAVEFORM_SINUSOID" to "0") + int("AL_FLANGER_WAVEFORM_TRIANGLE" to "1") + + int("AL_FLANGER_MIN_WAVEFORM" to "0") + int("AL_FLANGER_MAX_WAVEFORM" to "1") + int("AL_FLANGER_DEFAULT_WAVEFORM" to "1") + + int("AL_FLANGER_MIN_PHASE" to "-180") + int("AL_FLANGER_MAX_PHASE" to "180") + int("AL_FLANGER_DEFAULT_PHASE" to "0") + + float("AL_FLANGER_MIN_RATE" to "0.0f") + float("AL_FLANGER_MAX_RATE" to "10.0f") + float("AL_FLANGER_DEFAULT_RATE" to "0.27f") + + float("AL_FLANGER_MIN_DEPTH" to "0.0f") + float("AL_FLANGER_MAX_DEPTH" to "1.0f") + float("AL_FLANGER_DEFAULT_DEPTH" to "1.0f") + + float("AL_FLANGER_MIN_FEEDBACK" to "-1.0f") + float("AL_FLANGER_MAX_FEEDBACK" to "1.0f") + float("AL_FLANGER_DEFAULT_FEEDBACK" to "-0.5f") + + float("AL_FLANGER_MIN_DELAY" to "0.0f") + float("AL_FLANGER_MAX_DELAY" to "0.004f") + float("AL_FLANGER_DEFAULT_DELAY" to "0.002f") + + float("AL_FREQUENCY_SHIFTER_MIN_FREQUENCY" to "0.0f") + float("AL_FREQUENCY_SHIFTER_MAX_FREQUENCY" to "24000.0f") + float("AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY" to "0.0f") + + int("AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION" to "0") + int("AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION" to "2") + int("AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION" to "0") + + int("AL_FREQUENCY_SHIFTER_DIRECTION_DOWN" to "0") + int("AL_FREQUENCY_SHIFTER_DIRECTION_UP" to "1") + int("AL_FREQUENCY_SHIFTER_DIRECTION_OFF" to "2") + + int("AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION" to "0") + int("AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION" to "2") + int("AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION" to "0") + + int("AL_VOCAL_MORPHER_MIN_PHONEMEA" to "0") + int("AL_VOCAL_MORPHER_MAX_PHONEMEA" to "29") + int("AL_VOCAL_MORPHER_DEFAULT_PHONEMEA" to "0") + + int("AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING" to "-24") + int("AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING" to "24") + int("AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING" to "0") + + int("AL_VOCAL_MORPHER_MIN_PHONEMEB" to "0") + int("AL_VOCAL_MORPHER_MAX_PHONEMEB" to "29") + int("AL_VOCAL_MORPHER_DEFAULT_PHONEMEB" to "10") + + int("AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING" to "-24") + int("AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING" to "24") + int("AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING" to "0") + + int("AL_VOCAL_MORPHER_PHONEME_A" to "0") + int("AL_VOCAL_MORPHER_PHONEME_E" to "1") + int("AL_VOCAL_MORPHER_PHONEME_I" to "2") + int("AL_VOCAL_MORPHER_PHONEME_O" to "3") + int("AL_VOCAL_MORPHER_PHONEME_U" to "4") + int("AL_VOCAL_MORPHER_PHONEME_AA" to "5") + int("AL_VOCAL_MORPHER_PHONEME_AE" to "6") + int("AL_VOCAL_MORPHER_PHONEME_AH" to "7") + int("AL_VOCAL_MORPHER_PHONEME_AO" to "8") + int("AL_VOCAL_MORPHER_PHONEME_EH" to "9") + int("AL_VOCAL_MORPHER_PHONEME_ER" to "10") + int("AL_VOCAL_MORPHER_PHONEME_IH" to "11") + int("AL_VOCAL_MORPHER_PHONEME_IY" to "12") + int("AL_VOCAL_MORPHER_PHONEME_UH" to "13") + int("AL_VOCAL_MORPHER_PHONEME_UW" to "14") + int("AL_VOCAL_MORPHER_PHONEME_B" to "15") + int("AL_VOCAL_MORPHER_PHONEME_D" to "16") + int("AL_VOCAL_MORPHER_PHONEME_F" to "17") + int("AL_VOCAL_MORPHER_PHONEME_G" to "18") + int("AL_VOCAL_MORPHER_PHONEME_J" to "19") + int("AL_VOCAL_MORPHER_PHONEME_K" to "20") + int("AL_VOCAL_MORPHER_PHONEME_L" to "21") + int("AL_VOCAL_MORPHER_PHONEME_M" to "22") + int("AL_VOCAL_MORPHER_PHONEME_N" to "23") + int("AL_VOCAL_MORPHER_PHONEME_P" to "24") + int("AL_VOCAL_MORPHER_PHONEME_R" to "25") + int("AL_VOCAL_MORPHER_PHONEME_S" to "26") + int("AL_VOCAL_MORPHER_PHONEME_T" to "27") + int("AL_VOCAL_MORPHER_PHONEME_V" to "28") + int("AL_VOCAL_MORPHER_PHONEME_Z" to "29") + + int("AL_VOCAL_MORPHER_WAVEFORM_SINUSOID" to "0") + int("AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE" to "1") + int("AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH" to "2") + + int("AL_VOCAL_MORPHER_MIN_WAVEFORM" to "0") + int("AL_VOCAL_MORPHER_MAX_WAVEFORM" to "2") + int("AL_VOCAL_MORPHER_DEFAULT_WAVEFORM" to "0") + + float("AL_VOCAL_MORPHER_MIN_RATE" to "0.0f") + float("AL_VOCAL_MORPHER_MAX_RATE" to "10.0f") + float("AL_VOCAL_MORPHER_DEFAULT_RATE" to "1.41f") + + int("AL_PITCH_SHIFTER_MIN_COARSE_TUNE" to "-12") + int("AL_PITCH_SHIFTER_MAX_COARSE_TUNE" to "12") + int("AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE" to "12") + + int("AL_PITCH_SHIFTER_MIN_FINE_TUNE" to "-50") + int("AL_PITCH_SHIFTER_MAX_FINE_TUNE" to "50") + int("AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE" to "0") + + float("AL_RING_MODULATOR_MIN_FREQUENCY" to "0.0f") + float("AL_RING_MODULATOR_MAX_FREQUENCY" to "8000.0f") + float("AL_RING_MODULATOR_DEFAULT_FREQUENCY" to "440.0f") + + float("AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF" to "0.0f") + float("AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF" to "24000.0f") + float("AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF" to "800.0f") + + int("AL_RING_MODULATOR_SINUSOID" to "0") + int("AL_RING_MODULATOR_SAWTOOTH" to "1") + int("AL_RING_MODULATOR_SQUARE" to "2") + + int("AL_RING_MODULATOR_MIN_WAVEFORM" to "0") + int("AL_RING_MODULATOR_MAX_WAVEFORM" to "2") + int("AL_RING_MODULATOR_DEFAULT_WAVEFORM" to "0") + + float("AL_AUTOWAH_MIN_ATTACK_TIME" to "0.0001f") + float("AL_AUTOWAH_MAX_ATTACK_TIME" to "1.0f") + float("AL_AUTOWAH_DEFAULT_ATTACK_TIME" to "0.06f") + + float("AL_AUTOWAH_MIN_RELEASE_TIME" to "0.0001f") + float("AL_AUTOWAH_MAX_RELEASE_TIME" to "1.0f") + float("AL_AUTOWAH_DEFAULT_RELEASE_TIME" to "0.06f") + + float("AL_AUTOWAH_MIN_RESONANCE" to "2.0f") + float("AL_AUTOWAH_MAX_RESONANCE" to "1000.0f") + float("AL_AUTOWAH_DEFAULT_RESONANCE" to "1000.0f") + + float("AL_AUTOWAH_MIN_PEAK_GAIN" to "0.00003f") + float("AL_AUTOWAH_MAX_PEAK_GAIN" to "31621.0f") + float("AL_AUTOWAH_DEFAULT_PEAK_GAIN" to "11.22f") + + int("AL_COMPRESSOR_MIN_ONOFF" to "0") + int("AL_COMPRESSOR_MAX_ONOFF" to "1") + int("AL_COMPRESSOR_DEFAULT_ONOFF" to "1") + + float("AL_EQUALIZER_MIN_LOW_GAIN" to "0.126f") + float("AL_EQUALIZER_MAX_LOW_GAIN" to "7.943f") + float("AL_EQUALIZER_DEFAULT_LOW_GAIN" to "1.0f") + + float("AL_EQUALIZER_MIN_LOW_CUTOFF" to "50.0f") + float("AL_EQUALIZER_MAX_LOW_CUTOFF" to "800.0f") + float("AL_EQUALIZER_DEFAULT_LOW_CUTOFF" to "200.0f") + + float("AL_EQUALIZER_MIN_MID1_GAIN" to "0.126f") + float("AL_EQUALIZER_MAX_MID1_GAIN" to "7.943f") + float("AL_EQUALIZER_DEFAULT_MID1_GAIN" to "1.0f") + + float("AL_EQUALIZER_MIN_MID1_CENTER" to "200.0f") + float("AL_EQUALIZER_MAX_MID1_CENTER" to "3000.0f") + float("AL_EQUALIZER_DEFAULT_MID1_CENTER" to "500.0f") + + float("AL_EQUALIZER_MIN_MID1_WIDTH" to "0.01f") + float("AL_EQUALIZER_MAX_MID1_WIDTH" to "1.0f") + float("AL_EQUALIZER_DEFAULT_MID1_WIDTH" to "1.0f") + + float("AL_EQUALIZER_MIN_MID2_GAIN" to "0.126f") + float("AL_EQUALIZER_MAX_MID2_GAIN" to "7.943f") + float("AL_EQUALIZER_DEFAULT_MID2_GAIN" to "1.0f") + + float("AL_EQUALIZER_MIN_MID2_CENTER" to "1000.0f") + float("AL_EQUALIZER_MAX_MID2_CENTER" to "8000.0f") + float("AL_EQUALIZER_DEFAULT_MID2_CENTER" to "3000.0f") + + float("AL_EQUALIZER_MIN_MID2_WIDTH" to "0.01f") + float("AL_EQUALIZER_MAX_MID2_WIDTH" to "1.0f") + float("AL_EQUALIZER_DEFAULT_MID2_WIDTH" to "1.0f") + + float("AL_EQUALIZER_MIN_HIGH_GAIN" to "0.126f") + float("AL_EQUALIZER_MAX_HIGH_GAIN" to "7.943f") + float("AL_EQUALIZER_DEFAULT_HIGH_GAIN" to "1.0f") + + float("AL_EQUALIZER_MIN_HIGH_CUTOFF" to "4000.0f") + float("AL_EQUALIZER_MAX_HIGH_CUTOFF" to "16000.0f") + float("AL_EQUALIZER_DEFAULT_HIGH_CUTOFF" to "6000.0f") + + float("AL_MIN_AIR_ABSORPTION_FACTOR" to "0.0f") + float("AL_MAX_AIR_ABSORPTION_FACTOR" to "10.0f") + float("AL_DEFAULT_AIR_ABSORPTION_FACTOR" to "0.0f") + + float("AL_MIN_ROOM_ROLLOFF_FACTOR" to "0.0f") + float("AL_MAX_ROOM_ROLLOFF_FACTOR" to "10.0f") + float("AL_DEFAULT_ROOM_ROLLOFF_FACTOR" to "0.0f") + + float("AL_MIN_CONE_OUTER_GAINHF" to "0.0f") + float("AL_MAX_CONE_OUTER_GAINHF" to "1.0f") + float("AL_DEFAULT_CONE_OUTER_GAINHF" to "1.0f") + + int("AL_MIN_DIRECT_FILTER_GAINHF_AUTO" to "AL.AL_FALSE") + int("AL_MAX_DIRECT_FILTER_GAINHF_AUTO" to "AL.AL_TRUE") + int("AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO" to "AL.AL_TRUE") + + int("AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO" to "AL.AL_FALSE") + int("AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO" to "AL.AL_TRUE") + int("AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO" to "AL.AL_TRUE") + + int("AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO" to "AL.AL_FALSE") + int("AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO" to "AL.AL_TRUE") + int("AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO" to "AL.AL_TRUE") + + float("AL_MIN_METERS_PER_UNIT" to "Float.MIN_VALUE") + float("AL_MAX_METERS_PER_UNIT" to "Float.MAX_VALUE") + float("AL_DEFAULT_METERS_PER_UNIT" to "1.0f") + } +} diff --git a/generators/openal/src/main/kotlin/overrungl/openal/OpenALGenerator.kt b/generators/openal/src/main/kotlin/overrungl/openal/OpenALGenerator.kt index a909fdca..29ac909e 100644 --- a/generators/openal/src/main/kotlin/overrungl/openal/OpenALGenerator.kt +++ b/generators/openal/src/main/kotlin/overrungl/openal/OpenALGenerator.kt @@ -31,17 +31,26 @@ val ALenum = int c "ALenum" val ALfloat = float c "ALfloat" val ALdouble = double c "ALdouble" +val ALvoid_ptr = address c "ALvoid *" +val ALvoid_ptr_ptr = address c "ALvoid **" val ALboolean_ptr = address c "ALboolean *" +val ALchar_ptr = string_u8 c "ALchar*" val ALint_ptr = jint_array c "ALint *" val ALuint_ptr = jint_array c "ALuint *" +val ALsizei_ptr = jint_array c "ALsizei *" +val ALenum_ptr = jint_array c "ALenum *" val ALfloat_ptr = jfloat_array c "ALfloat *" val ALdouble_ptr = jdouble_array c "ALdouble *" +val const_ALuint = uint c "const ALuint" + val const_ALvoid_ptr = address c "const ALvoid *" val const_ALchar_ptr = string_u8 c "const ALchar*" val const_ALint_ptr = address c "const ALint *" val const_ALuint_ptr = address c "const ALuint *" +val const_ALenum_ptr = address c "const ALenum *" val const_ALfloat_ptr = address c "const ALfloat *" +val const_ALdouble_ptr = address c "const ALdouble *" val ALCdevice_ptr = address c "ALCdevice *" @@ -66,6 +75,21 @@ val ALCint_ptr = jint_array c "ALCint *" val const_ALCvoid_ptr = address c "const ALCvoid *" val const_ALCchar_ptr = string_u8 c "const ALCchar*" val const_ALCint_ptr = address c "const ALCint *" +val const_ALCenum_ptr = address c "const ALCenum *" + +val ALint64SOFT = jlong c "ALint64SOFT" +val ALuint64SOFT = jlong c "ALuint64SOFT" +val ALint64SOFT_ptr = address c "ALint64SOFT *" +val ALuint64SOFT_ptr = address c "ALuint64SOFT *" +val const_ALint64SOFT_ptr = address c "const ALint64SOFT *" +val const_ALuint64SOFT_ptr = address c "const ALuint64SOFT *" + +val ALCint64SOFT = jlong c "ALCint64SOFT" +val ALCuint64SOFT = jlong c "ALCuint64SOFT" +val ALCint64SOFT_ptr = address c "ALCint64SOFT *" +val ALCuint64SOFT_ptr = address c "ALCuint64SOFT *" +val const_ALCint64SOFT_ptr = address c "const ALCint64SOFT *" +val const_ALCuint64SOFT_ptr = address c "const ALCuint64SOFT *" const val alPackage = "overrungl.openal" @@ -74,4 +98,6 @@ const val alLookup = "ALInternal.lookup()" fun main() { AL() ALC() + alext() + efx() } diff --git a/generators/opengl/src/main/kotlin/overrungl/opengl/OpenGLGenerator.kt b/generators/opengl/src/main/kotlin/overrungl/opengl/OpenGLGenerator.kt index c37b35a1..d79246f3 100644 --- a/generators/opengl/src/main/kotlin/overrungl/opengl/OpenGLGenerator.kt +++ b/generators/opengl/src/main/kotlin/overrungl/opengl/OpenGLGenerator.kt @@ -765,7 +765,7 @@ fun main() { if (extension.requires.isNotEmpty()) { val vendor = extension.name.substring(3).substringBefore('_') val className = extension.name.split('_') - .joinToString("") { it.replaceFirstChar(Char::uppercase) } + .joinToString("") { it.replaceFirstChar(Char::uppercaseChar) } InstanceDowncall(extPackage(vendor), className) { modifier = "final" if (extension.requires.all { it.commands.isEmpty() }) { diff --git a/generators/src/main/kotlin/overrungl/gen/CustomTypeSpec.kt b/generators/src/main/kotlin/overrungl/gen/CustomTypeSpec.kt index 049c0419..12b27e2b 100644 --- a/generators/src/main/kotlin/overrungl/gen/CustomTypeSpec.kt +++ b/generators/src/main/kotlin/overrungl/gen/CustomTypeSpec.kt @@ -124,3 +124,5 @@ val short_ptr = jshort_array c "short*" val int_ptr = jint_array c "int*" val float_ptr = jfloat_array c "float*" val double_ptr = jdouble_array c "double*" + +val void_ptr_ptr = address c "void**" diff --git a/generators/src/main/kotlin/overrungl/gen/StaticDowncall.kt b/generators/src/main/kotlin/overrungl/gen/StaticDowncall.kt index 44c6dd95..82e80986 100644 --- a/generators/src/main/kotlin/overrungl/gen/StaticDowncall.kt +++ b/generators/src/main/kotlin/overrungl/gen/StaticDowncall.kt @@ -24,6 +24,7 @@ class StaticDowncall( packageName: String, name: String, private val symbolLookup: String, + private val writeWholeFile: Boolean = false, action: StaticDowncall.() -> Unit ) { private val fields = mutableListOf() @@ -87,6 +88,34 @@ class StaticDowncall( fun write(packageName: String, name: String) { val path = Path("${packageName.replace('.', '/')}/$name.java") + val wholeFile = StringBuilder() + if (writeWholeFile) { + wholeFile.appendLine(commentedFileHeader) + wholeFile.appendLine("package $packageName;") + if (methods.isNotEmpty()) { + wholeFile.appendLine( + """ + import java.lang.foreign.*; + import java.lang.invoke.*; + import overrungl.annotation.*; + import overrungl.internal.*; + import overrungl.util.*; + """.trimIndent() + ) + } + wholeFile.appendLine( + """ + public final class $name { + $GENERATOR_BEGIN + $GENERATOR_END + + private $name() { + } + } + """.trimIndent() + ) + } + val sb = StringBuilder() sb.appendLine(formatter_off) @@ -98,175 +127,172 @@ class StaticDowncall( } sb.appendLine(" //endregion") - // method handles - sb.appendLine(" //region Method handles") - sb.appendLine(" /// Method handles.") - sb.appendLine(" public static final class Handles {") - sb.appendLine(" private Handles() { }") - mutableListOf().also { l -> - methods.forEach { - if (it.entrypoint != null) { - val functionDescriptor = it.functionDescriptor - val indexOf = l.indexOfFirst { e -> e.entrypoint == it.entrypoint } - val m1 = if (indexOf != -1) l[indexOf] else null - if (m1 != null) { - if (functionDescriptor != m1.functionDescriptor) { - error("Redefining method ${it.name} (entrypoint ${it.entrypoint}, descriptor $functionDescriptor) with method ${m1.name} (entrypoint ${m1.entrypoint}, descriptor ${m1.functionDescriptor})") - } - } else { - sb.appendLine( - """ + if (methods.isNotEmpty()) { + // method handles + sb.appendLine(" //region Method handles") + sb.appendLine(" /// Method handles.") + sb.appendLine(" public static final class Handles {") + sb.appendLine(" private Handles() { }") + mutableListOf().also { l -> + methods.forEach { + if (it.entrypoint != null) { + val functionDescriptor = it.functionDescriptor + val indexOf = l.indexOfFirst { e -> e.entrypoint == it.entrypoint } + val m1 = if (indexOf != -1) l[indexOf] else null + if (m1 != null) { + if (functionDescriptor != m1.functionDescriptor) { + error("Redefining method ${it.name} (entrypoint ${it.entrypoint}, descriptor $functionDescriptor) with method ${m1.name} (entrypoint ${m1.entrypoint}, descriptor ${m1.functionDescriptor})") + } + } else { + sb.appendLine( + """ | /// The method handle of `${it.entrypoint}`. | public static final MethodHandle MH_${it.entrypoint} = RuntimeHelper.${if (it.optional) "downcallOrNull" else "downcall"}($symbolLookup, "${it.entrypoint}", $functionDescriptor); """.trimMargin() - ) - l.add(it) + ) + l.add(it) + } } } } - } - sb.appendLine(" }") - sb.appendLine(" //endregion") + sb.appendLine(" }") + sb.appendLine(" //endregion") - sb.appendLine() + sb.appendLine() - // methods - methods.forEach { m -> - val chosenReturnType = m.returnType.selectTypeName(m.overload) - val returnVoid = chosenReturnType == TypeName.VOID - if (m.javadoc != null) { - sb.appendLine(m.javadoc.prependIndent(" ///")) - } - sb.appendLine( - " public static ${m.returnType.typeNameWithC(chosenReturnType)} ${m.name}(${ - m.parameters.joinToString { p -> - p.toString(p.type.selectTypeName(m.overload)) - } - }) {" - ) - if (m.code != null) { - sb.appendLine(m.code.prependIndent(" ")) - } else { - val finalAllocatorRequirement = if (m.overload) m.allocatorRequirement else AllocatorRequirement.NO - val allocatorParam: DowncallParameter? = if (m.overload) when (finalAllocatorRequirement) { - AllocatorRequirement.NO -> null - - AllocatorRequirement.STACK -> - m.parameters.firstOrNull { p -> - p.type.javaType == Arena_ || p.type.javaType == SegmentAllocator_ + // methods + methods.forEach { m -> + val chosenReturnType = m.returnType.selectTypeName(m.overload) + val returnVoid = chosenReturnType == TypeName.VOID + if (m.javadoc != null) { + sb.appendLine(m.javadoc.prependIndent(" ///")) + } + sb.appendLine( + " public static ${m.returnType.typeNameWithC(chosenReturnType)} ${m.name}(${ + m.parameters.joinToString { p -> + p.toString(p.type.selectTypeName(m.overload)) } + }) {" + ) + if (m.code != null) { + sb.appendLine(m.code.prependIndent(" ")) + } else { + val finalAllocatorRequirement = if (m.overload) m.allocatorRequirement else AllocatorRequirement.NO + val allocatorParam: DowncallParameter? = if (m.overload) when (finalAllocatorRequirement) { + AllocatorRequirement.NO -> null - AllocatorRequirement.BY_VALUE_SEGMENT_ALLOCATOR, AllocatorRequirement.SEGMENT_ALLOCATOR -> - m.parameters.firstOrNull { p -> - p.type.javaType == Arena_ || p.type.javaType == SegmentAllocator_ - } ?: error("A segment allocator or an Arena is required by ${m.name}") - - AllocatorRequirement.ARENA -> - m.parameters.firstOrNull { p -> - p.type.javaType == Arena_ - } ?: error("An arena is required by ${m.name}") - } else null - val useMemStack = finalAllocatorRequirement == AllocatorRequirement.STACK && allocatorParam == null - val allocatorName = if (useMemStack) "__overrungl_stack" else allocatorParam?.name - val refParams = m.parameters.filter { p -> p.marshalRef(m.overload) } - val writtenParams = - m.parameters.map { p -> - if (p.marshalRef(m.overload)) DowncallParameter(address, "__overrungl_ref_${p.name}") - else p - } - - // optional - if (m.optional) { - sb.appendLine(" if (Handles.MH_${m.entrypoint} != null) {") - } + AllocatorRequirement.STACK -> + m.parameters.firstOrNull { p -> + p.type.javaType == Arena_ || p.type.javaType == SegmentAllocator_ + } - // header - sb.append(" try ") - if (useMemStack) { - sb.append("(var __overrungl_stack = MemoryStack.pushLocal()) ") - } - sb.appendLine("{") - - // ref - refParams.forEach { p -> - sb.append(" var __overrungl_ref_${p.name} = ") - p.type.processor.marshal( - ProcessorContext( - allocatorName = allocatorName, sb - ) { it.append(p.name) }) - sb.appendLine(";") - } + AllocatorRequirement.BY_VALUE_SEGMENT_ALLOCATOR, AllocatorRequirement.SEGMENT_ALLOCATOR -> + m.parameters.firstOrNull { p -> + p.type.javaType == Arena_ || p.type.javaType == SegmentAllocator_ + } ?: error("A segment allocator or an Arena is required by ${m.name}") + + AllocatorRequirement.ARENA -> + m.parameters.firstOrNull { p -> + p.type.javaType == Arena_ + } ?: error("An arena is required by ${m.name}") + } else null + val useMemStack = finalAllocatorRequirement == AllocatorRequirement.STACK && allocatorParam == null + val allocatorName = if (useMemStack) "__overrungl_stack" else allocatorParam?.name + val refParams = m.parameters.filter { p -> p.marshalRef(m.overload) } + val writtenParams = + m.parameters.map { p -> + if (p.marshalRef(m.overload)) DowncallParameter(address, "__overrungl_ref_${p.name}") + else p + } - // invocation - sb.append(" ") - if (!returnVoid) { - if (refParams.isNotEmpty()) { - sb.append("var __overrungl_result = ") - } else { - sb.append("return ") + // optional + if (m.optional) { + sb.appendLine(" if (Handles.MH_${m.entrypoint} != null) {") } - } - val invocation = { b: StringBuilder -> - if (!returnVoid) { - b.append("(${m.returnType.carrier}) ") + + // header + sb.append(" try ") + if (useMemStack) { + sb.append("(var __overrungl_stack = MemoryStack.pushLocal()) ") } - b.append("Handles.MH_${m.entrypoint}.invokeExact(") - b.append(writtenParams.joinToString { p -> - if (m.overload) { - buildString { - p.type.processor.marshal( - ProcessorContext( - allocatorName = allocatorName, - this - ) { it.append(p.name) }) - } - } else p.name - }) - b.append(")") - Unit - } - if (m.overload) { - m.returnType.processor.unmarshal(ProcessorContext(allocatorName = null, sb, invocation)) - } else { - invocation(sb) - } - sb.appendLine(";") + sb.appendLine("{") - // ref - if (refParams.isNotEmpty()) { + // ref refParams.forEach { p -> - sb.append(" ") - p.type.processor.copy( + sb.append(" var __overrungl_ref_${p.name} = ") + p.type.processor.marshal( ProcessorContext( - allocatorName = null, - sb - ) { it.append("__overrungl_ref_${p.name}, ${p.name}") }) + allocatorName = allocatorName, sb + ) { it.append(p.name) }) sb.appendLine(";") } + + // invocation + sb.append(" ") if (!returnVoid) { - sb.appendLine(" return __overrungl_result;") + if (refParams.isNotEmpty()) { + sb.append("var __overrungl_result = ") + } else { + sb.append("return ") + } } - } + val invocation = { b: StringBuilder -> + if (!returnVoid) { + b.append("(${m.returnType.carrier}) ") + } + b.append("Handles.MH_${m.entrypoint}.invokeExact(") + b.append(writtenParams.joinToString { p -> + if (m.overload) { + buildString { + p.type.processor.marshal( + ProcessorContext( + allocatorName = allocatorName, + this + ) { it.append(p.name) }) + } + } else p.name + }) + b.append(")") + Unit + } + if (m.overload) { + m.returnType.processor.unmarshal(ProcessorContext(allocatorName = null, sb, invocation)) + } else { + invocation(sb) + } + sb.appendLine(";") - sb.appendLine(""" } catch (Throwable e) { throw new RuntimeException("error in ${m.entrypoint}", e); }""") + // ref + if (refParams.isNotEmpty()) { + refParams.forEach { p -> + sb.append(" ") + p.type.processor.copy( + ProcessorContext( + allocatorName = null, + sb + ) { it.append("__overrungl_ref_${p.name}, ${p.name}") }) + sb.appendLine(";") + } + if (!returnVoid) { + sb.appendLine(" return __overrungl_result;") + } + } - if (m.optional) { - sb.append(" }") - if (m.defaultCode != null) { - sb.appendLine(" else {") - sb.appendLine(m.defaultCode.prependIndent(" ")) - sb.append(" }") + sb.appendLine(""" } catch (Throwable e) { throw new RuntimeException("error in ${m.entrypoint}", e); }""") + + if (m.optional) { + sb.appendLine(""" } else { throw new SymbolNotFoundError("Symbol not found: ${m.entrypoint}"); }""") } - sb.appendLine() } + sb.appendLine(" }") + sb.appendLine() } - sb.appendLine(" }") - sb.appendLine() } sb.appendLine(formatter_on) - writeString(path, replaceCode(Files.readString(path), sb.toString())) + val replaceSrc = if (writeWholeFile) wholeFile.toString() else Files.readString(path) + writeString(path, replaceCode(replaceSrc, sb.toString())) } } diff --git a/modules/overrungl.core/src/main/java/module-info.java b/modules/overrungl.core/src/main/java/module-info.java index fe784f3b..8ee624f8 100644 --- a/modules/overrungl.core/src/main/java/module-info.java +++ b/modules/overrungl.core/src/main/java/module-info.java @@ -29,6 +29,7 @@ exports overrungl.internal to overrungl.glfw, overrungl.nfd, + overrungl.openal, overrungl.opengl, overrungl.stb, overrungl.vulkan; diff --git a/modules/overrungl.core/src/main/java/overrungl/util/SymbolNotFoundError.java b/modules/overrungl.core/src/main/java/overrungl/util/SymbolNotFoundError.java new file mode 100644 index 00000000..405e01d8 --- /dev/null +++ b/modules/overrungl.core/src/main/java/overrungl/util/SymbolNotFoundError.java @@ -0,0 +1,37 @@ +/* + * MIT License + * + * Copyright (c) 2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +package overrungl.util; + +/** + * Indicates that a symbol of a function in a native library was not found. + * + * @author squid233 + * @since 0.1.0 + */ +public class SymbolNotFoundError extends Error { + /** + * Constructs a new error with the specified detail message. The + * cause is not initialized, and may subsequently be initialized by + * a call to {@link #initCause}. + * + * @param message the detail message. The detail message is saved for + * later retrieval by the {@link #getMessage()} method. + */ + public SymbolNotFoundError(String message) { + super(message); + } +} diff --git a/modules/overrungl.openal/src/main/java/module-info.java b/modules/overrungl.openal/src/main/java/module-info.java new file mode 100644 index 00000000..df3b621e --- /dev/null +++ b/modules/overrungl.openal/src/main/java/module-info.java @@ -0,0 +1,29 @@ +/* + * MIT License + * + * Copyright (c) 2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +/// The [OpenAL](https://www.openal.org/) binding. +/// +/// OverrunGL uses [openal-soft](https://openal-soft.org/). +/// +/// - [Source](https://github.com/kcat/openal-soft) +/// +/// @author squid233 +/// @since 0.1.0 +module overrungl.openal { + exports overrungl.openal; + + requires transitive overrungl.core; +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/AL.java b/modules/overrungl.openal/src/main/java/overrungl/openal/AL.java index e524208b..fb6facb7 100644 --- a/modules/overrungl.openal/src/main/java/overrungl/openal/AL.java +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/AL.java @@ -24,6 +24,7 @@ import overrungl.util.Unmarshal; import java.lang.foreign.FunctionDescriptor; +import java.lang.foreign.SymbolLookup; import java.lang.foreign.ValueLayout; import java.lang.invoke.MethodHandle; @@ -37,282 +38,67 @@ public final class AL { //region ---[BEGIN GENERATOR BEGIN]--- //@formatter:off //region Fields - ///No distance model or no buffer public static final int AL_NONE = 0; - ///Boolean False. public static final int AL_FALSE = 0; - ///Boolean True. public static final int AL_TRUE = 1; - ///Relative source. - ///- Type: ALboolean - ///- Range: \[AL_FALSE, AL_TRUE\] - ///- Default: AL_FALSE - /// - ///Specifies if the source uses relative coordinates. public static final int AL_SOURCE_RELATIVE = 0x202; - ///Inner cone angle, in degrees. - ///- Type: ALint, ALfloat - ///- Range: \[0 - 360\] - ///- Default: 360 - /// - ///The angle covered by the inner cone, the area within which the source will - ///not be attenuated by direction. public static final int AL_CONE_INNER_ANGLE = 0x1001; - ///Outer cone angle, in degrees. - ///- Range: \[0 - 360\] - ///- Default: 360 - /// - ///The angle covered by the outer cone, the area outside of which the source - ///will be fully attenuated by direction. public static final int AL_CONE_OUTER_ANGLE = 0x1002; - ///Source pitch. - ///- Type: ALfloat - ///- Range: \[0.5 - 2.0\] - ///- Default: 1.0 - /// - ///A multiplier for the sample rate of the source's buffer. public static final int AL_PITCH = 0x1003; - ///Source or listener position. - ///- Type: ALfloat\[3\], ALint\[3\] - ///- Default: {0, 0, 0} - /// - ///The source or listener location in three dimensional space. - /// - ///OpenAL uses a right handed coordinate system, like OpenGL, where with a - ///default view, X points right (thumb), Y points up (index finger), and Z - ///points towards the viewer/camera (middle finger). - /// - ///To change from or to a left handed coordinate system, negate the Z - ///component. public static final int AL_POSITION = 0x1004; - ///Source direction. - ///- Type: ALfloat\[3\], ALint\[3\] - ///- Default: {0, 0, 0} - /// - ///Specifies the current direction in local space. A zero-length vector - ///specifies an omni-directional source (cone is ignored). - /// - ///To change from or to a left handed coordinate system, negate the Z - ///component. public static final int AL_DIRECTION = 0x1005; - ///Source or listener velocity. - ///- Type: ALfloat\[3\], ALint\[3]\ - ///- Default: {0, 0, 0} - /// - ///Specifies the current velocity, relative to the position. - /// - ///To change from or to a left handed coordinate system, negate the Z - ///component. public static final int AL_VELOCITY = 0x1006; - ///Source looping. - ///- Type: ALboolean - ///- Range: \[AL_FALSE, AL_TRUE\] - ///- Default: AL_FALSE - /// - ///Specifies whether source playback loops. public static final int AL_LOOPING = 0x1007; - ///Source buffer. - ///- Type: ALuint - ///- Range: any valid Buffer ID - ///- Default: AL_NONE - /// - ///Specifies the buffer to provide sound samples for a source. public static final int AL_BUFFER = 0x1009; - ///Source or listener gain. - ///- Type: ALfloat - ///- Range: \[0.0 - \] - /// - ///For sources, an initial linear gain value (before attenuation is applied). - ///For the listener, an output linear gain adjustment. - /// - ///A value of 1.0 means unattenuated. Each division by 2 equals an attenuation - ///of about -6dB. Each multiplication by 2 equals an amplification of about - ///+6dB. public static final int AL_GAIN = 0x100A; - ///Minimum source gain. - ///- Type: ALfloat - ///- Range: \[0.0 - 1.0\] - /// - ///The minimum gain allowed for a source, after distance and cone attenuation - ///are applied (if applicable). public static final int AL_MIN_GAIN = 0x100D; - ///Maximum source gain. - ///- Type: ALfloat - ///- Range: \[0.0 - 1.0\] - /// - ///The maximum gain allowed for a source, after distance and cone attenuation - ///are applied (if applicable). public static final int AL_MAX_GAIN = 0x100E; - ///Listener orientation. - ///- Type: ALfloat\[6\] - ///- Default: {0.0, 0.0, -1.0, 0.0, 1.0, 0.0} - /// - ///Effectively two three dimensional vectors. The first vector is the front (or - ///"at") and the second is the top (or "up"). Both vectors are relative to the - ///listener position. - /// - ///To change from or to a left handed coordinate system, negate the Z - ///component of both vectors. public static final int AL_ORIENTATION = 0x100F; - ///Source state (query only). - ///- Type: ALenum - ///- Range: \[AL_INITIAL, AL_PLAYING, AL_PAUSED, AL_STOPPED\] public static final int AL_SOURCE_STATE = 0x1010; - ///Source state values. public static final int AL_INITIAL = 0x1011, AL_PLAYING = 0x1012, AL_PAUSED = 0x1013, AL_STOPPED = 0x1014; - ///Source Buffer Queue size (query only). - ///- Type: ALint - /// - ///The number of buffers queued using alSourceQueueBuffers, minus the buffers - ///removed with alSourceUnqueueBuffers. public static final int AL_BUFFERS_QUEUED = 0x1015; - ///Source Buffer Queue processed count (query only). - ///- Type: ALint - /// - ///The number of queued buffers that have been fully processed, and can be - ///removed with alSourceUnqueueBuffers. - /// - ///Looping sources will never fully process buffers because they will be set to - ///play again for when the source loops. public static final int AL_BUFFERS_PROCESSED = 0x1016; - ///Source reference distance. - ///- Type: ALfloat - ///- Range: \[0.0 - \] - ///- Default: 1.0 - /// - ///The distance in units that no distance attenuation occurs. - /// - ///At 0.0, no distance attenuation occurs with non-linear attenuation models. public static final int AL_REFERENCE_DISTANCE = 0x1020; - ///Source rolloff factor. - ///- Type: ALfloat - ///- Range: \[0.0 - \] - ///- Default: 1.0 - /// - ///Multiplier to exaggerate or diminish distance attenuation. - /// - ///At 0.0, no distance attenuation ever occurs. public static final int AL_ROLLOFF_FACTOR = 0x1021; - ///Outer cone gain. - ///- Type: ALfloat - ///- Range: \[0.0 - 1.0\] - ///- Default: 0.0 - /// - ///The gain attenuation applied when the listener is outside of the source's - ///outer cone angle. public static final int AL_CONE_OUTER_GAIN = 0x1022; - ///Source maximum distance. - ///- Type: ALfloat - ///- Range: \[0.0 - \] - ///- Default: FLT_MAX - /// - ///The distance above which the source is not attenuated any further with a - ///clamped distance model, or where attenuation reaches 0.0 gain for linear - ///distance models with a default rolloff factor. public static final int AL_MAX_DISTANCE = 0x1023; - ///Source buffer offset, in seconds public static final int AL_SEC_OFFSET = 0x1024; - ///Source buffer offset, in sample frames public static final int AL_SAMPLE_OFFSET = 0x1025; - ///Source buffer offset, in bytes public static final int AL_BYTE_OFFSET = 0x1026; - ///Source type (query only). - ///- Type: ALenum - ///- Range: \[AL_STATIC, AL_STREAMING, AL_UNDETERMINED\] - /// - ///A Source is Static if a Buffer has been attached using AL_BUFFER. - /// - ///A Source is Streaming if one or more Buffers have been attached using - ///alSourceQueueBuffers. - /// - ///A Source is Undetermined when it has the NULL buffer attached using - ///AL_BUFFER. public static final int AL_SOURCE_TYPE = 0x1027; - ///Source type values. public static final int AL_STATIC = 0x1028, AL_STREAMING = 0x1029, AL_UNDETERMINED = 0x1030; - ///Unsigned 8-bit mono buffer format. public static final int AL_FORMAT_MONO8 = 0x1100; - ///Signed 16-bit mono buffer format. public static final int AL_FORMAT_MONO16 = 0x1101; - ///Unsigned 8-bit stereo buffer format. public static final int AL_FORMAT_STEREO8 = 0x1102; - ///Signed 16-bit stereo buffer format. public static final int AL_FORMAT_STEREO16 = 0x1103; - ///Buffer frequency/sample rate (query only). public static final int AL_FREQUENCY = 0x2001; - ///Buffer bits per sample (query only). public static final int AL_BITS = 0x2002; - ///Buffer channel count (query only). public static final int AL_CHANNELS = 0x2003; - ///Buffer data size in bytes (query only). public static final int AL_SIZE = 0x2004; - ///Buffer state. Not for public use. public static final int AL_UNUSED = 0x2010, AL_PENDING = 0x2011, AL_PROCESSED = 0x2012; - ///No error. public static final int AL_NO_ERROR = 0; - ///Invalid name (ID) passed to an AL call. public static final int AL_INVALID_NAME = 0xA001; - ///Invalid enumeration passed to AL call. public static final int AL_INVALID_ENUM = 0xA002; - ///Invalid value passed to AL call. public static final int AL_INVALID_VALUE = 0xA003; - ///Illegal AL call. public static final int AL_INVALID_OPERATION = 0xA004; - ///Not enough memory to execute the AL call. public static final int AL_OUT_OF_MEMORY = 0xA005; - ///Context string: Vendor name. public static final int AL_VENDOR = 0xB001; - ///Context string: Version. public static final int AL_VERSION = 0xB002; - ///Context string: Renderer name. public static final int AL_RENDERER = 0xB003; - ///Context string: Space-separated extension list. public static final int AL_EXTENSIONS = 0xB004; - ///Doppler scale. - ///- Type: ALfloat - ///- Range: \[0.0 - \] - ///- Default: 1.0 - /// - ///Scale for source and listener velocities. public static final int AL_DOPPLER_FACTOR = 0xC000; - ///Doppler velocity (deprecated). - /// - ///A multiplier applied to the Speed of Sound. public static final int AL_DOPPLER_VELOCITY = 0xC001; - ///Speed of Sound, in units per second. - ///- Type: ALfloat - ///- Range: \[0.0001 - \] - ///- Default: 343.3 - /// - ///The speed at which sound waves are assumed to travel, when calculating the - ///doppler effect from source and listener velocities. public static final int AL_SPEED_OF_SOUND = 0xC003; - ///Distance attenuation model. - ///- Type: ALenum - ///- Range: \[AL_NONE, AL_INVERSE_DISTANCE, AL_INVERSE_DISTANCE_CLAMPED, - /// AL_LINEAR_DISTANCE, AL_LINEAR_DISTANCE_CLAMPED, - /// AL_EXPONENT_DISTANCE, AL_EXPONENT_DISTANCE_CLAMPED\] - ///- Default: AL_INVERSE_DISTANCE_CLAMPED - /// - ///The model by which sources attenuate with distance. - /// - ///- None - No distance attenuation. - ///- Inverse - Doubling the distance halves the source gain. - ///- Linear - Linear gain scaling between the reference and max distances. - ///- Exponent - Exponential gain dropoff. - /// - ///Clamped variations work like the non-clamped counterparts, except the - ///distance calculated is clamped between the reference and max distances. public static final int AL_DISTANCE_MODEL = 0xD000; ///Distance model values. public static final int @@ -602,52 +388,42 @@ public static void alGetDoublev(@CType("ALenum") int param, @Out @CType("ALdoubl } catch (Throwable e) { throw new RuntimeException("error in alGetDouble", e); } } - ///Obtain the first error generated in the AL context since the last call to - ///this function. public static @CType("ALenum") int alGetError() { try { return (int) Handles.MH_alGetError.invokeExact(); } catch (Throwable e) { throw new RuntimeException("error in alGetError", e); } } - ///Query for the presence of an extension on the AL context. public static @CType("ALboolean") boolean alIsExtensionPresent(@CType("const ALchar*") java.lang.foreign.MemorySegment extname) { try { return (boolean) Handles.MH_alIsExtensionPresent.invokeExact(extname); } catch (Throwable e) { throw new RuntimeException("error in alIsExtensionPresent", e); } } - ///Query for the presence of an extension on the AL context. public static @CType("ALboolean") boolean alIsExtensionPresent(@CType("const ALchar*") java.lang.String extname) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (boolean) Handles.MH_alIsExtensionPresent.invokeExact(Marshal.marshal(__overrungl_stack, extname)); } catch (Throwable e) { throw new RuntimeException("error in alIsExtensionPresent", e); } } - ///Retrieve the address of a function. The returned function may be context- - ///specific. public static @CType("void*") java.lang.foreign.MemorySegment alGetProcAddress(@CType("const ALchar*") java.lang.foreign.MemorySegment fname) { try { return (java.lang.foreign.MemorySegment) Handles.MH_alGetProcAddress.invokeExact(fname); } catch (Throwable e) { throw new RuntimeException("error in alGetProcAddress", e); } } - ///Retrieve the address of a function. The returned function may be context- - ///specific. public static @CType("void*") java.lang.foreign.MemorySegment alGetProcAddress(@CType("const ALchar*") java.lang.String fname) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (java.lang.foreign.MemorySegment) Handles.MH_alGetProcAddress.invokeExact(Marshal.marshal(__overrungl_stack, fname)); } catch (Throwable e) { throw new RuntimeException("error in alGetProcAddress", e); } } - ///Retrieve the value of an enum. The returned value may be context-specific. public static @CType("ALenum") int alGetEnumValue(@CType("const ALchar*") java.lang.foreign.MemorySegment ename) { try { return (int) Handles.MH_alGetEnumValue.invokeExact(ename); } catch (Throwable e) { throw new RuntimeException("error in alGetEnumValue", e); } } - ///Retrieve the value of an enum. The returned value may be context-specific. public static @CType("ALenum") int alGetEnumValue(@CType("const ALchar*") java.lang.String ename) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (int) Handles.MH_alGetEnumValue.invokeExact(Marshal.marshal(__overrungl_stack, ename)); @@ -782,21 +558,18 @@ public static void alGetListeneriv(@CType("ALenum") int param, @Out @CType("ALin } catch (Throwable e) { throw new RuntimeException("error in alGetListeneriv", e); } } - ///Create source objects. public static void alGenSources(@CType("ALsizei") int n, @Out @CType("ALuint *") java.lang.foreign.MemorySegment sources) { try { Handles.MH_alGenSources.invokeExact(n, sources); } catch (Throwable e) { throw new RuntimeException("error in alGenSources", e); } } - ///Delete source objects. public static void alDeleteSources(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { try { Handles.MH_alDeleteSources.invokeExact(n, sources); } catch (Throwable e) { throw new RuntimeException("error in alDeleteSources", e); } } - ///Verify an ID is for a valid source. public static @CType("ALboolean") boolean alIsSource(@CType("ALuint") int source) { try { return (boolean) Handles.MH_alIsSource.invokeExact(source); @@ -931,99 +704,84 @@ public static void alGetSourceiv(@CType("ALuint") int source, @CType("ALenum") i } catch (Throwable e) { throw new RuntimeException("error in alGetSourceiv", e); } } - ///Play, restart, or resume a source, setting its state to AL_PLAYING. public static void alSourcePlay(@CType("ALuint") int source) { try { Handles.MH_alSourcePlay.invokeExact(source); } catch (Throwable e) { throw new RuntimeException("error in alSourcePlay", e); } } - ///Stop a source, setting its state to AL_STOPPED if playing or paused. public static void alSourceStop(@CType("ALuint") int source) { try { Handles.MH_alSourceStop.invokeExact(source); } catch (Throwable e) { throw new RuntimeException("error in alSourceStop", e); } } - ///Rewind a source, setting its state to AL_INITIAL. public static void alSourceRewind(@CType("ALuint") int source) { try { Handles.MH_alSourceRewind.invokeExact(source); } catch (Throwable e) { throw new RuntimeException("error in alSourceRewind", e); } } - ///Pause a source, setting its state to AL_PAUSED if playing. public static void alSourcePause(@CType("ALuint") int source) { try { Handles.MH_alSourcePause.invokeExact(source); } catch (Throwable e) { throw new RuntimeException("error in alSourcePause", e); } } - ///Play, restart, or resume a list of sources atomically. public static void alSourcePlayv(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { try { Handles.MH_alSourcePlayv.invokeExact(n, sources); } catch (Throwable e) { throw new RuntimeException("error in alSourcePlayv", e); } } - ///Stop a list of sources atomically. public static void alSourceStopv(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { try { Handles.MH_alSourceStopv.invokeExact(n, sources); } catch (Throwable e) { throw new RuntimeException("error in alSourceStopv", e); } } - ///Rewind a list of sources atomically. public static void alSourceRewindv(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { try { Handles.MH_alSourceRewindv.invokeExact(n, sources); } catch (Throwable e) { throw new RuntimeException("error in alSourceRewindv", e); } } - ///Pause a list of sources atomically. public static void alSourcePausev(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { try { Handles.MH_alSourcePausev.invokeExact(n, sources); } catch (Throwable e) { throw new RuntimeException("error in alSourcePausev", e); } } - ///Queue buffers onto a source public static void alSourceQueueBuffers(@CType("ALuint") int source, @CType("ALsizei") int nb, @CType("const ALuint *") java.lang.foreign.MemorySegment buffers) { try { Handles.MH_alSourceQueueBuffers.invokeExact(source, nb, buffers); } catch (Throwable e) { throw new RuntimeException("error in alSourceQueueBuffers", e); } } - ///Unqueue processed buffers from a source public static void alSourceUnqueueBuffers(@CType("ALuint") int source, @CType("ALsizei") int nb, @Out @CType("ALuint *") java.lang.foreign.MemorySegment buffers) { try { Handles.MH_alSourceUnqueueBuffers.invokeExact(source, nb, buffers); } catch (Throwable e) { throw new RuntimeException("error in alSourceUnqueueBuffers", e); } } - ///Create buffer objects public static void alGenBuffers(@CType("ALsizei") int n, @Out @CType("ALuint *") java.lang.foreign.MemorySegment buffers) { try { Handles.MH_alGenBuffers.invokeExact(n, buffers); } catch (Throwable e) { throw new RuntimeException("error in alGenBuffers", e); } } - ///Delete buffer objects public static void alDeleteBuffers(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment buffers) { try { Handles.MH_alDeleteBuffers.invokeExact(n, buffers); } catch (Throwable e) { throw new RuntimeException("error in alDeleteBuffers", e); } } - ///Verify an ID is a valid buffer (including the NULL buffer) public static @CType("ALboolean") boolean alIsBuffer(@CType("ALuint") int source) { try { return (boolean) Handles.MH_alIsBuffer.invokeExact(source); } catch (Throwable e) { throw new RuntimeException("error in alIsBuffer", e); } } - ///Copies data into the buffer, interpreting it using the specified format and - ///samplerate. public static void alBufferData(@CType("ALuint") int buffer, @CType("ALenum") int format, @CType("const ALvoid *") java.lang.foreign.MemorySegment data, @CType("ALsizei") int size, @CType("ALsizei") int samplerate) { try { Handles.MH_alBufferData.invokeExact(buffer, format, data, size, samplerate); diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALBufferCallbackTypeSOFT.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALBufferCallbackTypeSOFT.java new file mode 100644 index 00000000..f0f2a555 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALBufferCallbackTypeSOFT.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; + +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.upcall.*; +import overrungl.util.*; + +@FunctionalInterface +public interface ALBufferCallbackTypeSOFT extends Upcall { + /// The function descriptor. + FunctionDescriptor DESCRIPTOR = FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_INT); + /// The method handle of the target method. + MethodHandle HANDLE = Upcall.findTarget(ALBufferCallbackTypeSOFT.class, "invoke", DESCRIPTOR); + + ///The target method of the upcall. + @CType("ALsizei") int invoke(@CType("ALvoid *") java.lang.foreign.MemorySegment userptr, @CType("ALvoid *") java.lang.foreign.MemorySegment sampledata, @CType("ALsizei") int numbytes); + + @Override + default MemorySegment stub(Arena arena) { return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, arena); } + + ///A static invoker of the target method. + ///@param stub the upcall stub + static @CType("ALsizei") int invoke(MemorySegment stub, @CType("ALvoid *") java.lang.foreign.MemorySegment userptr, @CType("ALvoid *") java.lang.foreign.MemorySegment sampledata, @CType("ALsizei") int numbytes) { + try { return (int) HANDLE.invokeExact(stub, userptr, sampledata, numbytes); } + catch (Throwable e) { throw new RuntimeException("error in ALBufferCallbackTypeSOFT::invoke (static invoker)", e); } + } + + /// A wrapper for the target method. + /// @param stub the upcall stub + /// @return an instance that wraps the static invoker + static ALBufferCallbackTypeSOFT wrap(MemorySegment stub) { + return (userptr, sampledata, numbytes) -> + invoke(stub, userptr, sampledata, numbytes); + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALC.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALC.java index e30b3e23..d6f579e8 100644 --- a/modules/overrungl.openal/src/main/java/overrungl/openal/ALC.java +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALC.java @@ -36,68 +36,33 @@ public final class ALC { //region ---[BEGIN GENERATOR BEGIN]--- //@formatter:off //region Fields - ///Boolean False. public static final int ALC_FALSE = 0; - ///Boolean True. public static final int ALC_TRUE = 1; - ///Context attribute: <int> Hz. public static final int ALC_FREQUENCY = 0x1007; - ///Context attribute: <int> Hz. public static final int ALC_REFRESH = 0x1008; - ///Context attribute: AL_TRUE or AL_FALSE synchronous context? public static final int ALC_SYNC = 0x1009; - ///Context attribute: <int> requested Mono (3D) Sources. public static final int ALC_MONO_SOURCES = 0x1010; - ///Context attribute: <int> requested Stereo Sources. public static final int ALC_STEREO_SOURCES = 0x1011; - ///No error. public static final int ALC_NO_ERROR = 0; - ///Invalid device handle. public static final int ALC_INVALID_DEVICE = 0xA001; - ///Invalid context handle. public static final int ALC_INVALID_CONTEXT = 0xA002; - ///Invalid enumeration passed to an ALC call. public static final int ALC_INVALID_ENUM = 0xA003; - ///Invalid value passed to an ALC call. public static final int ALC_INVALID_VALUE = 0xA004; - ///Out of memory. public static final int ALC_OUT_OF_MEMORY = 0xA005; - ///Runtime ALC major version. public static final int ALC_MAJOR_VERSION = 0x1000; - ///Runtime ALC minor version. public static final int ALC_MINOR_VERSION = 0x1001; - ///Context attribute list size. public static final int ALC_ATTRIBUTES_SIZE = 0x1002; - ///Context attribute list properties. public static final int ALC_ALL_ATTRIBUTES = 0x1003; - ///String for the default device specifier. public static final int ALC_DEFAULT_DEVICE_SPECIFIER = 0x1004; - ///Device specifier string. - /// - ///If device handle is NULL, it is instead a null-character separated list of - ///strings of known device specifiers (list ends with an empty string). public static final int ALC_DEVICE_SPECIFIER = 0x1005; - ///String for space-separated list of ALC extensions. public static final int ALC_EXTENSIONS = 0x1006; ///Capture extension public static final int ALC_EXT_CAPTURE = 1; - ///Capture device specifier string. - /// - ///If device handle is NULL, it is instead a null-character separated list of - ///strings of known capture device specifiers (list ends with an empty string). public static final int ALC_CAPTURE_DEVICE_SPECIFIER = 0x310; - ///String for the default capture device specifier. public static final int ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER = 0x311; - ///Number of sample frames available for capture. public static final int ALC_CAPTURE_SAMPLES = 0x312; - ///Enumerate All extension public static final int ALC_ENUMERATE_ALL_EXT = 1; - ///String for the default extended device specifier. public static final int ALC_DEFAULT_ALL_DEVICES_SPECIFIER = 0x1012; - ///Device's extended specifier string. - /// - ///If device handle is NULL, it is instead a null-character separated list of - ///strings of known extended device specifiers (list ends with an empty string). public static final int ALC_ALL_DEVICES_SPECIFIER = 0x1013; //endregion //region Method handles @@ -147,191 +112,156 @@ private Handles() { } } //endregion - ///Create and attach a context to the given device. public static @CType("ALCcontext *") java.lang.foreign.MemorySegment alcCreateContext(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCint *") java.lang.foreign.MemorySegment attrlist) { try { return (java.lang.foreign.MemorySegment) Handles.MH_alcCreateContext.invokeExact(device, attrlist); } catch (Throwable e) { throw new RuntimeException("error in alcCreateContext", e); } } - ///Makes the given context the active process-wide context. Passing NULL clears - ///the active context. public static @CType("ALCboolean") boolean alcMakeContextCurrent(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { try { return (boolean) Handles.MH_alcMakeContextCurrent.invokeExact(context); } catch (Throwable e) { throw new RuntimeException("error in alcMakeContextCurrent", e); } } - ///Resumes processing updates for the given context. public static void alcProcessContext(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { try { Handles.MH_alcProcessContext.invokeExact(context); } catch (Throwable e) { throw new RuntimeException("error in alcProcessContext", e); } } - ///Suspends updates for the given context. public static void alcSuspendContext(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { try { Handles.MH_alcSuspendContext.invokeExact(context); } catch (Throwable e) { throw new RuntimeException("error in alcSuspendContext", e); } } - ///Remove a context from its device and destroys it. public static void alcDestroyContext(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { try { Handles.MH_alcDestroyContext.invokeExact(context); } catch (Throwable e) { throw new RuntimeException("error in alcDestroyContext", e); } } - ///Returns the currently active context. public static @CType("ALCcontext *") java.lang.foreign.MemorySegment alcGetCurrentContext() { try { return (java.lang.foreign.MemorySegment) Handles.MH_alcGetCurrentContext.invokeExact(); } catch (Throwable e) { throw new RuntimeException("error in alcGetCurrentContext", e); } } - ///Returns the device that a particular context is attached to. public static @CType("ALCdevice *") java.lang.foreign.MemorySegment alcGetContextsDevice(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { try { return (java.lang.foreign.MemorySegment) Handles.MH_alcGetContextsDevice.invokeExact(context); } catch (Throwable e) { throw new RuntimeException("error in alcGetContextsDevice", e); } } - ///Opens the named playback device. public static @CType("ALCdevice *") java.lang.foreign.MemorySegment alcOpenDevice(@CType("const ALCchar*") java.lang.foreign.MemorySegment devicename) { try { return (java.lang.foreign.MemorySegment) Handles.MH_alcOpenDevice.invokeExact(devicename); } catch (Throwable e) { throw new RuntimeException("error in alcOpenDevice", e); } } - ///Opens the named playback device. public static @CType("ALCdevice *") java.lang.foreign.MemorySegment alcOpenDevice(@CType("const ALCchar*") java.lang.String devicename) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (java.lang.foreign.MemorySegment) Handles.MH_alcOpenDevice.invokeExact(Marshal.marshal(__overrungl_stack, devicename)); } catch (Throwable e) { throw new RuntimeException("error in alcOpenDevice", e); } } - ///Closes the given playback device. public static @CType("ALCboolean") boolean alcCloseDevice(@CType("ALCdevice *") java.lang.foreign.MemorySegment device) { try { return (boolean) Handles.MH_alcCloseDevice.invokeExact(device); } catch (Throwable e) { throw new RuntimeException("error in alcCloseDevice", e); } } - ///Obtain the most recent Device error. public static @CType("ALCenum") int alcGetError(@CType("ALCdevice *") java.lang.foreign.MemorySegment device) { try { return (int) Handles.MH_alcGetError.invokeExact(device); } catch (Throwable e) { throw new RuntimeException("error in alcGetError", e); } } - ///Query for the presence of an extension on the device. Pass a NULL device to - ///query a device-inspecific extension. public static @CType("ALCboolean") boolean alcIsExtensionPresent(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.foreign.MemorySegment extname) { try { return (boolean) Handles.MH_alcIsExtensionPresent.invokeExact(device, extname); } catch (Throwable e) { throw new RuntimeException("error in alcIsExtensionPresent", e); } } - ///Query for the presence of an extension on the device. Pass a NULL device to - ///query a device-inspecific extension. public static @CType("ALCboolean") boolean alcIsExtensionPresent(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.String extname) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (boolean) Handles.MH_alcIsExtensionPresent.invokeExact(device, Marshal.marshal(__overrungl_stack, extname)); } catch (Throwable e) { throw new RuntimeException("error in alcIsExtensionPresent", e); } } - ///Retrieve the address of a function. Given a non-NULL device, the returned - ///function may be device-specific. public static @CType("ALCvoid *") java.lang.foreign.MemorySegment alcGetProcAddress(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.foreign.MemorySegment funcname) { try { return (java.lang.foreign.MemorySegment) Handles.MH_alcGetProcAddress.invokeExact(device, funcname); } catch (Throwable e) { throw new RuntimeException("error in alcGetProcAddress", e); } } - ///Retrieve the address of a function. Given a non-NULL device, the returned - ///function may be device-specific. public static @CType("ALCvoid *") java.lang.foreign.MemorySegment alcGetProcAddress(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.String funcname) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (java.lang.foreign.MemorySegment) Handles.MH_alcGetProcAddress.invokeExact(device, Marshal.marshal(__overrungl_stack, funcname)); } catch (Throwable e) { throw new RuntimeException("error in alcGetProcAddress", e); } } - ///Retrieve the value of an enum. Given a non-NULL device, the returned value - ///may be device-specific. public static @CType("ALCenum") int alcGetEnumValue(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.foreign.MemorySegment enumname) { try { return (int) Handles.MH_alcGetEnumValue.invokeExact(device, enumname); } catch (Throwable e) { throw new RuntimeException("error in alcGetEnumValue", e); } } - ///Retrieve the value of an enum. Given a non-NULL device, the returned value - ///may be device-specific. public static @CType("ALCenum") int alcGetEnumValue(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.String enumname) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (int) Handles.MH_alcGetEnumValue.invokeExact(device, Marshal.marshal(__overrungl_stack, enumname)); } catch (Throwable e) { throw new RuntimeException("error in alcGetEnumValue", e); } } - ///Returns information about the device, and error strings. public static @CType("const ALCchar*") java.lang.foreign.MemorySegment alcGetString_(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCenum") int param) { try { return (java.lang.foreign.MemorySegment) Handles.MH_alcGetString.invokeExact(device, param); } catch (Throwable e) { throw new RuntimeException("error in alcGetString", e); } } - ///Returns information about the device, and error strings. public static @CType("const ALCchar*") java.lang.String alcGetString(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCenum") int param) { try { return Unmarshal.unmarshalAsString((java.lang.foreign.MemorySegment) Handles.MH_alcGetString.invokeExact(device, param)); } catch (Throwable e) { throw new RuntimeException("error in alcGetString", e); } } - ///Returns information about the device and the version of OpenAL. public static void alcGetIntegerv(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCenum") int param, @CType("ALCsizei") int size, @CType("ALCint *") java.lang.foreign.MemorySegment values) { try { Handles.MH_alcGetIntegerv.invokeExact(device, param, size, values); } catch (Throwable e) { throw new RuntimeException("error in alcGetIntegerv", e); } } - ///Opens the named capture device with the given frequency, format, and buffer - ///size. public static @CType("ALCdevice *") java.lang.foreign.MemorySegment alcCaptureOpenDevice(@CType("const ALCchar*") java.lang.foreign.MemorySegment devicename, @CType("ALCuint") int frequency, @CType("ALCenum") int format, @CType("ALCsizei") int buffersize) { try { return (java.lang.foreign.MemorySegment) Handles.MH_alcCaptureOpenDevice.invokeExact(devicename, frequency, format, buffersize); } catch (Throwable e) { throw new RuntimeException("error in alcCaptureOpenDevice", e); } } - ///Opens the named capture device with the given frequency, format, and buffer - ///size. public static @CType("ALCdevice *") java.lang.foreign.MemorySegment alcCaptureOpenDevice(@CType("const ALCchar*") java.lang.String devicename, @CType("ALCuint") int frequency, @CType("ALCenum") int format, @CType("ALCsizei") int buffersize) { try (var __overrungl_stack = MemoryStack.pushLocal()) { return (java.lang.foreign.MemorySegment) Handles.MH_alcCaptureOpenDevice.invokeExact(Marshal.marshal(__overrungl_stack, devicename), frequency, format, buffersize); } catch (Throwable e) { throw new RuntimeException("error in alcCaptureOpenDevice", e); } } - ///Closes the given capture device. public static @CType("ALCboolean") boolean alcCaptureCloseDevice(@CType("ALCdevice *") java.lang.foreign.MemorySegment device) { try { return (boolean) Handles.MH_alcCaptureCloseDevice.invokeExact(device); } catch (Throwable e) { throw new RuntimeException("error in alcCaptureCloseDevice", e); } } - ///Starts capturing samples into the device buffer. public static void alcCaptureStart(@CType("ALCdevice *") java.lang.foreign.MemorySegment device) { try { Handles.MH_alcCaptureStart.invokeExact(device); } catch (Throwable e) { throw new RuntimeException("error in alcCaptureStart", e); } } - ///Stops capturing samples. Samples in the device buffer remain available. public static void alcCaptureStop(@CType("ALCdevice *") java.lang.foreign.MemorySegment device) { try { Handles.MH_alcCaptureStop.invokeExact(device); } catch (Throwable e) { throw new RuntimeException("error in alcCaptureStop", e); } } - ///Reads samples from the device buffer. public static void alcCaptureSamples(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCvoid *") java.lang.foreign.MemorySegment buffer, @CType("ALCsizei") int samples) { try { Handles.MH_alcCaptureSamples.invokeExact(device, buffer, samples); diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDEDICATED.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDEDICATED.java new file mode 100644 index 00000000..a43e2456 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDEDICATED.java @@ -0,0 +1,32 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCEXTDEDICATED { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_DEDICATED_GAIN = 0x0001; + public static final int AL_EFFECT_DEDICATED_DIALOGUE = 0x9001; + public static final int AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT = 0x9000; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCEXTDEDICATED() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDEFAULTFILTERORDER.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDEFAULTFILTERORDER.java new file mode 100644 index 00000000..92895c40 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDEFAULTFILTERORDER.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCEXTDEFAULTFILTERORDER { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_DEFAULT_FILTER_ORDER = 0x1100; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCEXTDEFAULTFILTERORDER() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDebug.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDebug.java new file mode 100644 index 00000000..59b8f2fd --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDebug.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCEXTDebug { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_CONTEXT_FLAGS_EXT = 0x19CF; + public static final int ALC_CONTEXT_DEBUG_BIT_EXT = 0x0001; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCEXTDebug() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDisconnect.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDisconnect.java new file mode 100644 index 00000000..a6ae965a --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTDisconnect.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCEXTDisconnect { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_CONNECTED = 0x313; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCEXTDisconnect() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTEFX.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTEFX.java new file mode 100644 index 00000000..5cbcab6c --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTEFX.java @@ -0,0 +1,848 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCEXTEFX { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final java.lang.String ALC_EXT_EFX_NAME = "ALC_EXT_EFX"; + public static final int ALC_EFX_MAJOR_VERSION = 0x20001; + public static final int ALC_EFX_MINOR_VERSION = 0x20002; + public static final int ALC_MAX_AUXILIARY_SENDS = 0x20003; + public static final int AL_METERS_PER_UNIT = 0x20004; + public static final int AL_DIRECT_FILTER = 0x20005; + public static final int AL_AUXILIARY_SEND_FILTER = 0x20006; + public static final int AL_AIR_ABSORPTION_FACTOR = 0x20007; + public static final int AL_ROOM_ROLLOFF_FACTOR = 0x20008; + public static final int AL_CONE_OUTER_GAINHF = 0x20009; + public static final int AL_DIRECT_FILTER_GAINHF_AUTO = 0x2000A; + public static final int AL_AUXILIARY_SEND_FILTER_GAIN_AUTO = 0x2000B; + public static final int AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO = 0x2000C; + public static final int AL_REVERB_DENSITY = 0x0001; + public static final int AL_REVERB_DIFFUSION = 0x0002; + public static final int AL_REVERB_GAIN = 0x0003; + public static final int AL_REVERB_GAINHF = 0x0004; + public static final int AL_REVERB_DECAY_TIME = 0x0005; + public static final int AL_REVERB_DECAY_HFRATIO = 0x0006; + public static final int AL_REVERB_REFLECTIONS_GAIN = 0x0007; + public static final int AL_REVERB_REFLECTIONS_DELAY = 0x0008; + public static final int AL_REVERB_LATE_REVERB_GAIN = 0x0009; + public static final int AL_REVERB_LATE_REVERB_DELAY = 0x000A; + public static final int AL_REVERB_AIR_ABSORPTION_GAINHF = 0x000B; + public static final int AL_REVERB_ROOM_ROLLOFF_FACTOR = 0x000C; + public static final int AL_REVERB_DECAY_HFLIMIT = 0x000D; + public static final int AL_EAXREVERB_DENSITY = 0x0001; + public static final int AL_EAXREVERB_DIFFUSION = 0x0002; + public static final int AL_EAXREVERB_GAIN = 0x0003; + public static final int AL_EAXREVERB_GAINHF = 0x0004; + public static final int AL_EAXREVERB_GAINLF = 0x0005; + public static final int AL_EAXREVERB_DECAY_TIME = 0x0006; + public static final int AL_EAXREVERB_DECAY_HFRATIO = 0x0007; + public static final int AL_EAXREVERB_DECAY_LFRATIO = 0x0008; + public static final int AL_EAXREVERB_REFLECTIONS_GAIN = 0x0009; + public static final int AL_EAXREVERB_REFLECTIONS_DELAY = 0x000A; + public static final int AL_EAXREVERB_REFLECTIONS_PAN = 0x000B; + public static final int AL_EAXREVERB_LATE_REVERB_GAIN = 0x000C; + public static final int AL_EAXREVERB_LATE_REVERB_DELAY = 0x000D; + public static final int AL_EAXREVERB_LATE_REVERB_PAN = 0x000E; + public static final int AL_EAXREVERB_ECHO_TIME = 0x000F; + public static final int AL_EAXREVERB_ECHO_DEPTH = 0x0010; + public static final int AL_EAXREVERB_MODULATION_TIME = 0x0011; + public static final int AL_EAXREVERB_MODULATION_DEPTH = 0x0012; + public static final int AL_EAXREVERB_AIR_ABSORPTION_GAINHF = 0x0013; + public static final int AL_EAXREVERB_HFREFERENCE = 0x0014; + public static final int AL_EAXREVERB_LFREFERENCE = 0x0015; + public static final int AL_EAXREVERB_ROOM_ROLLOFF_FACTOR = 0x0016; + public static final int AL_EAXREVERB_DECAY_HFLIMIT = 0x0017; + public static final int AL_CHORUS_WAVEFORM = 0x0001; + public static final int AL_CHORUS_PHASE = 0x0002; + public static final int AL_CHORUS_RATE = 0x0003; + public static final int AL_CHORUS_DEPTH = 0x0004; + public static final int AL_CHORUS_FEEDBACK = 0x0005; + public static final int AL_CHORUS_DELAY = 0x0006; + public static final int AL_DISTORTION_EDGE = 0x0001; + public static final int AL_DISTORTION_GAIN = 0x0002; + public static final int AL_DISTORTION_LOWPASS_CUTOFF = 0x0003; + public static final int AL_DISTORTION_EQCENTER = 0x0004; + public static final int AL_DISTORTION_EQBANDWIDTH = 0x0005; + public static final int AL_ECHO_DELAY = 0x0001; + public static final int AL_ECHO_LRDELAY = 0x0002; + public static final int AL_ECHO_DAMPING = 0x0003; + public static final int AL_ECHO_FEEDBACK = 0x0004; + public static final int AL_ECHO_SPREAD = 0x0005; + public static final int AL_FLANGER_WAVEFORM = 0x0001; + public static final int AL_FLANGER_PHASE = 0x0002; + public static final int AL_FLANGER_RATE = 0x0003; + public static final int AL_FLANGER_DEPTH = 0x0004; + public static final int AL_FLANGER_FEEDBACK = 0x0005; + public static final int AL_FLANGER_DELAY = 0x0006; + public static final int AL_FREQUENCY_SHIFTER_FREQUENCY = 0x0001; + public static final int AL_FREQUENCY_SHIFTER_LEFT_DIRECTION = 0x0002; + public static final int AL_FREQUENCY_SHIFTER_RIGHT_DIRECTION = 0x0003; + public static final int AL_VOCAL_MORPHER_PHONEMEA = 0x0001; + public static final int AL_VOCAL_MORPHER_PHONEMEA_COARSE_TUNING = 0x0002; + public static final int AL_VOCAL_MORPHER_PHONEMEB = 0x0003; + public static final int AL_VOCAL_MORPHER_PHONEMEB_COARSE_TUNING = 0x0004; + public static final int AL_VOCAL_MORPHER_WAVEFORM = 0x0005; + public static final int AL_VOCAL_MORPHER_RATE = 0x0006; + public static final int AL_PITCH_SHIFTER_COARSE_TUNE = 0x0001; + public static final int AL_PITCH_SHIFTER_FINE_TUNE = 0x0002; + public static final int AL_RING_MODULATOR_FREQUENCY = 0x0001; + public static final int AL_RING_MODULATOR_HIGHPASS_CUTOFF = 0x0002; + public static final int AL_RING_MODULATOR_WAVEFORM = 0x0003; + public static final int AL_AUTOWAH_ATTACK_TIME = 0x0001; + public static final int AL_AUTOWAH_RELEASE_TIME = 0x0002; + public static final int AL_AUTOWAH_RESONANCE = 0x0003; + public static final int AL_AUTOWAH_PEAK_GAIN = 0x0004; + public static final int AL_COMPRESSOR_ONOFF = 0x0001; + public static final int AL_EQUALIZER_LOW_GAIN = 0x0001; + public static final int AL_EQUALIZER_LOW_CUTOFF = 0x0002; + public static final int AL_EQUALIZER_MID1_GAIN = 0x0003; + public static final int AL_EQUALIZER_MID1_CENTER = 0x0004; + public static final int AL_EQUALIZER_MID1_WIDTH = 0x0005; + public static final int AL_EQUALIZER_MID2_GAIN = 0x0006; + public static final int AL_EQUALIZER_MID2_CENTER = 0x0007; + public static final int AL_EQUALIZER_MID2_WIDTH = 0x0008; + public static final int AL_EQUALIZER_HIGH_GAIN = 0x0009; + public static final int AL_EQUALIZER_HIGH_CUTOFF = 0x000A; + public static final int AL_EFFECT_FIRST_PARAMETER = 0x0000; + public static final int AL_EFFECT_LAST_PARAMETER = 0x8000; + public static final int AL_EFFECT_TYPE = 0x8001; + public static final int AL_EFFECT_NULL = 0x0000; + public static final int AL_EFFECT_REVERB = 0x0001; + public static final int AL_EFFECT_CHORUS = 0x0002; + public static final int AL_EFFECT_DISTORTION = 0x0003; + public static final int AL_EFFECT_ECHO = 0x0004; + public static final int AL_EFFECT_FLANGER = 0x0005; + public static final int AL_EFFECT_FREQUENCY_SHIFTER = 0x0006; + public static final int AL_EFFECT_VOCAL_MORPHER = 0x0007; + public static final int AL_EFFECT_PITCH_SHIFTER = 0x0008; + public static final int AL_EFFECT_RING_MODULATOR = 0x0009; + public static final int AL_EFFECT_AUTOWAH = 0x000A; + public static final int AL_EFFECT_COMPRESSOR = 0x000B; + public static final int AL_EFFECT_EQUALIZER = 0x000C; + public static final int AL_EFFECT_EAXREVERB = 0x8000; + public static final int AL_EFFECTSLOT_EFFECT = 0x0001; + public static final int AL_EFFECTSLOT_GAIN = 0x0002; + public static final int AL_EFFECTSLOT_AUXILIARY_SEND_AUTO = 0x0003; + public static final int AL_EFFECTSLOT_NULL = 0x0000; + public static final int AL_LOWPASS_GAIN = 0x0001; + public static final int AL_LOWPASS_GAINHF = 0x0002; + public static final int AL_HIGHPASS_GAIN = 0x0001; + public static final int AL_HIGHPASS_GAINLF = 0x0002; + public static final int AL_BANDPASS_GAIN = 0x0001; + public static final int AL_BANDPASS_GAINLF = 0x0002; + public static final int AL_BANDPASS_GAINHF = 0x0003; + public static final int AL_FILTER_FIRST_PARAMETER = 0x0000; + public static final int AL_FILTER_LAST_PARAMETER = 0x8000; + public static final int AL_FILTER_TYPE = 0x8001; + public static final int AL_FILTER_NULL = 0x0000; + public static final int AL_FILTER_LOWPASS = 0x0001; + public static final int AL_FILTER_HIGHPASS = 0x0002; + public static final int AL_FILTER_BANDPASS = 0x0003; + public static final float AL_LOWPASS_MIN_GAIN = 0.0f; + public static final float AL_LOWPASS_MAX_GAIN = 1.0f; + public static final float AL_LOWPASS_DEFAULT_GAIN = 1.0f; + public static final float AL_LOWPASS_MIN_GAINHF = 0.0f; + public static final float AL_LOWPASS_MAX_GAINHF = 1.0f; + public static final float AL_LOWPASS_DEFAULT_GAINHF = 1.0f; + public static final float AL_HIGHPASS_MIN_GAIN = 0.0f; + public static final float AL_HIGHPASS_MAX_GAIN = 1.0f; + public static final float AL_HIGHPASS_DEFAULT_GAIN = 1.0f; + public static final float AL_HIGHPASS_MIN_GAINLF = 0.0f; + public static final float AL_HIGHPASS_MAX_GAINLF = 1.0f; + public static final float AL_HIGHPASS_DEFAULT_GAINLF = 1.0f; + public static final float AL_BANDPASS_MIN_GAIN = 0.0f; + public static final float AL_BANDPASS_MAX_GAIN = 1.0f; + public static final float AL_BANDPASS_DEFAULT_GAIN = 1.0f; + public static final float AL_BANDPASS_MIN_GAINHF = 0.0f; + public static final float AL_BANDPASS_MAX_GAINHF = 1.0f; + public static final float AL_BANDPASS_DEFAULT_GAINHF = 1.0f; + public static final float AL_BANDPASS_MIN_GAINLF = 0.0f; + public static final float AL_BANDPASS_MAX_GAINLF = 1.0f; + public static final float AL_BANDPASS_DEFAULT_GAINLF = 1.0f; + public static final float AL_REVERB_MIN_DENSITY = 0.0f; + public static final float AL_REVERB_MAX_DENSITY = 1.0f; + public static final float AL_REVERB_DEFAULT_DENSITY = 1.0f; + public static final float AL_REVERB_MIN_DIFFUSION = 0.0f; + public static final float AL_REVERB_MAX_DIFFUSION = 1.0f; + public static final float AL_REVERB_DEFAULT_DIFFUSION = 1.0f; + public static final float AL_REVERB_MIN_GAIN = 0.0f; + public static final float AL_REVERB_MAX_GAIN = 1.0f; + public static final float AL_REVERB_DEFAULT_GAIN = 0.32f; + public static final float AL_REVERB_MIN_GAINHF = 0.0f; + public static final float AL_REVERB_MAX_GAINHF = 1.0f; + public static final float AL_REVERB_DEFAULT_GAINHF = 0.89f; + public static final float AL_REVERB_MIN_DECAY_TIME = 0.1f; + public static final float AL_REVERB_MAX_DECAY_TIME = 20.0f; + public static final float AL_REVERB_DEFAULT_DECAY_TIME = 1.49f; + public static final float AL_REVERB_MIN_DECAY_HFRATIO = 0.1f; + public static final float AL_REVERB_MAX_DECAY_HFRATIO = 2.0f; + public static final float AL_REVERB_DEFAULT_DECAY_HFRATIO = 0.83f; + public static final float AL_REVERB_MIN_REFLECTIONS_GAIN = 0.0f; + public static final float AL_REVERB_MAX_REFLECTIONS_GAIN = 3.16f; + public static final float AL_REVERB_DEFAULT_REFLECTIONS_GAIN = 0.05f; + public static final float AL_REVERB_MIN_REFLECTIONS_DELAY = 0.0f; + public static final float AL_REVERB_MAX_REFLECTIONS_DELAY = 0.3f; + public static final float AL_REVERB_DEFAULT_REFLECTIONS_DELAY = 0.007f; + public static final float AL_REVERB_MIN_LATE_REVERB_GAIN = 0.0f; + public static final float AL_REVERB_MAX_LATE_REVERB_GAIN = 10.0f; + public static final float AL_REVERB_DEFAULT_LATE_REVERB_GAIN = 1.26f; + public static final float AL_REVERB_MIN_LATE_REVERB_DELAY = 0.0f; + public static final float AL_REVERB_MAX_LATE_REVERB_DELAY = 0.1f; + public static final float AL_REVERB_DEFAULT_LATE_REVERB_DELAY = 0.011f; + public static final float AL_REVERB_MIN_AIR_ABSORPTION_GAINHF = 0.892f; + public static final float AL_REVERB_MAX_AIR_ABSORPTION_GAINHF = 1.0f; + public static final float AL_REVERB_DEFAULT_AIR_ABSORPTION_GAINHF = 0.994f; + public static final float AL_REVERB_MIN_ROOM_ROLLOFF_FACTOR = 0.0f; + public static final float AL_REVERB_MAX_ROOM_ROLLOFF_FACTOR = 10.0f; + public static final float AL_REVERB_DEFAULT_ROOM_ROLLOFF_FACTOR = 0.0f; + public static final int AL_REVERB_MIN_DECAY_HFLIMIT = AL.AL_FALSE; + public static final int AL_REVERB_MAX_DECAY_HFLIMIT = AL.AL_TRUE; + public static final int AL_REVERB_DEFAULT_DECAY_HFLIMIT = AL.AL_TRUE; + public static final float AL_EAXREVERB_MIN_DENSITY = 0.0f; + public static final float AL_EAXREVERB_MAX_DENSITY = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_DENSITY = 1.0f; + public static final float AL_EAXREVERB_MIN_DIFFUSION = 0.0f; + public static final float AL_EAXREVERB_MAX_DIFFUSION = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_DIFFUSION = 1.0f; + public static final float AL_EAXREVERB_MIN_GAIN = 0.0f; + public static final float AL_EAXREVERB_MAX_GAIN = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_GAIN = 0.32f; + public static final float AL_EAXREVERB_MIN_GAINHF = 0.0f; + public static final float AL_EAXREVERB_MAX_GAINHF = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_GAINHF = 0.89f; + public static final float AL_EAXREVERB_MIN_GAINLF = 0.0f; + public static final float AL_EAXREVERB_MAX_GAINLF = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_GAINLF = 1.0f; + public static final float AL_EAXREVERB_MIN_DECAY_TIME = 0.1f; + public static final float AL_EAXREVERB_MAX_DECAY_TIME = 20.0f; + public static final float AL_EAXREVERB_DEFAULT_DECAY_TIME = 1.49f; + public static final float AL_EAXREVERB_MIN_DECAY_HFRATIO = 0.1f; + public static final float AL_EAXREVERB_MAX_DECAY_HFRATIO = 2.0f; + public static final float AL_EAXREVERB_DEFAULT_DECAY_HFRATIO = 0.83f; + public static final float AL_EAXREVERB_MIN_DECAY_LFRATIO = 0.1f; + public static final float AL_EAXREVERB_MAX_DECAY_LFRATIO = 2.0f; + public static final float AL_EAXREVERB_DEFAULT_DECAY_LFRATIO = 1.0f; + public static final float AL_EAXREVERB_MIN_REFLECTIONS_GAIN = 0.0f; + public static final float AL_EAXREVERB_MAX_REFLECTIONS_GAIN = 3.16f; + public static final float AL_EAXREVERB_DEFAULT_REFLECTIONS_GAIN = 0.05f; + public static final float AL_EAXREVERB_MIN_REFLECTIONS_DELAY = 0.0f; + public static final float AL_EAXREVERB_MAX_REFLECTIONS_DELAY = 0.3f; + public static final float AL_EAXREVERB_DEFAULT_REFLECTIONS_DELAY = 0.007f; + public static final float AL_EAXREVERB_DEFAULT_REFLECTIONS_PAN_XYZ = 0.0f; + public static final float AL_EAXREVERB_MIN_LATE_REVERB_GAIN = 0.0f; + public static final float AL_EAXREVERB_MAX_LATE_REVERB_GAIN = 10.0f; + public static final float AL_EAXREVERB_DEFAULT_LATE_REVERB_GAIN = 1.26f; + public static final float AL_EAXREVERB_MIN_LATE_REVERB_DELAY = 0.0f; + public static final float AL_EAXREVERB_MAX_LATE_REVERB_DELAY = 0.1f; + public static final float AL_EAXREVERB_DEFAULT_LATE_REVERB_DELAY = 0.011f; + public static final float AL_EAXREVERB_DEFAULT_LATE_REVERB_PAN_XYZ = 0.0f; + public static final float AL_EAXREVERB_MIN_ECHO_TIME = 0.075f; + public static final float AL_EAXREVERB_MAX_ECHO_TIME = 0.25f; + public static final float AL_EAXREVERB_DEFAULT_ECHO_TIME = 0.25f; + public static final float AL_EAXREVERB_MIN_ECHO_DEPTH = 0.0f; + public static final float AL_EAXREVERB_MAX_ECHO_DEPTH = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_ECHO_DEPTH = 0.0f; + public static final float AL_EAXREVERB_MIN_MODULATION_TIME = 0.04f; + public static final float AL_EAXREVERB_MAX_MODULATION_TIME = 4.0f; + public static final float AL_EAXREVERB_DEFAULT_MODULATION_TIME = 0.25f; + public static final float AL_EAXREVERB_MIN_MODULATION_DEPTH = 0.0f; + public static final float AL_EAXREVERB_MAX_MODULATION_DEPTH = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_MODULATION_DEPTH = 0.0f; + public static final float AL_EAXREVERB_MIN_AIR_ABSORPTION_GAINHF = 0.892f; + public static final float AL_EAXREVERB_MAX_AIR_ABSORPTION_GAINHF = 1.0f; + public static final float AL_EAXREVERB_DEFAULT_AIR_ABSORPTION_GAINHF = 0.994f; + public static final float AL_EAXREVERB_MIN_HFREFERENCE = 1000.0f; + public static final float AL_EAXREVERB_MAX_HFREFERENCE = 20000.0f; + public static final float AL_EAXREVERB_DEFAULT_HFREFERENCE = 5000.0f; + public static final float AL_EAXREVERB_MIN_LFREFERENCE = 20.0f; + public static final float AL_EAXREVERB_MAX_LFREFERENCE = 1000.0f; + public static final float AL_EAXREVERB_DEFAULT_LFREFERENCE = 250.0f; + public static final float AL_EAXREVERB_MIN_ROOM_ROLLOFF_FACTOR = 0.0f; + public static final float AL_EAXREVERB_MAX_ROOM_ROLLOFF_FACTOR = 10.0f; + public static final float AL_EAXREVERB_DEFAULT_ROOM_ROLLOFF_FACTOR = 0.0f; + public static final int AL_EAXREVERB_MIN_DECAY_HFLIMIT = AL.AL_FALSE; + public static final int AL_EAXREVERB_MAX_DECAY_HFLIMIT = AL.AL_TRUE; + public static final int AL_EAXREVERB_DEFAULT_DECAY_HFLIMIT = AL.AL_TRUE; + public static final int AL_CHORUS_WAVEFORM_SINUSOID = 0; + public static final int AL_CHORUS_WAVEFORM_TRIANGLE = 1; + public static final int AL_CHORUS_MIN_WAVEFORM = 0; + public static final int AL_CHORUS_MAX_WAVEFORM = 1; + public static final int AL_CHORUS_DEFAULT_WAVEFORM = 1; + public static final int AL_CHORUS_MIN_PHASE = -180; + public static final int AL_CHORUS_MAX_PHASE = 180; + public static final int AL_CHORUS_DEFAULT_PHASE = 90; + public static final float AL_CHORUS_MIN_RATE = 0.0f; + public static final float AL_CHORUS_MAX_RATE = 10.0f; + public static final float AL_CHORUS_DEFAULT_RATE = 1.1f; + public static final float AL_CHORUS_MIN_DEPTH = 0.0f; + public static final float AL_CHORUS_MAX_DEPTH = 1.0f; + public static final float AL_CHORUS_DEFAULT_DEPTH = 0.1f; + public static final float AL_CHORUS_MIN_FEEDBACK = -1.0f; + public static final float AL_CHORUS_MAX_FEEDBACK = 1.0f; + public static final float AL_CHORUS_DEFAULT_FEEDBACK = 0.25f; + public static final float AL_CHORUS_MIN_DELAY = 0.0f; + public static final float AL_CHORUS_MAX_DELAY = 0.016f; + public static final float AL_CHORUS_DEFAULT_DELAY = 0.016f; + public static final float AL_DISTORTION_MIN_EDGE = 0.0f; + public static final float AL_DISTORTION_MAX_EDGE = 1.0f; + public static final float AL_DISTORTION_DEFAULT_EDGE = 0.2f; + public static final float AL_DISTORTION_MIN_GAIN = 0.01f; + public static final float AL_DISTORTION_MAX_GAIN = 1.0f; + public static final float AL_DISTORTION_DEFAULT_GAIN = 0.05f; + public static final float AL_DISTORTION_MIN_LOWPASS_CUTOFF = 80.0f; + public static final float AL_DISTORTION_MAX_LOWPASS_CUTOFF = 24000.0f; + public static final float AL_DISTORTION_DEFAULT_LOWPASS_CUTOFF = 8000.0f; + public static final float AL_DISTORTION_MIN_EQCENTER = 80.0f; + public static final float AL_DISTORTION_MAX_EQCENTER = 24000.0f; + public static final float AL_DISTORTION_DEFAULT_EQCENTER = 3600.0f; + public static final float AL_DISTORTION_MIN_EQBANDWIDTH = 80.0f; + public static final float AL_DISTORTION_MAX_EQBANDWIDTH = 24000.0f; + public static final float AL_DISTORTION_DEFAULT_EQBANDWIDTH = 3600.0f; + public static final float AL_ECHO_MIN_DELAY = 0.0f; + public static final float AL_ECHO_MAX_DELAY = 0.207f; + public static final float AL_ECHO_DEFAULT_DELAY = 0.1f; + public static final float AL_ECHO_MIN_LRDELAY = 0.0f; + public static final float AL_ECHO_MAX_LRDELAY = 0.404f; + public static final float AL_ECHO_DEFAULT_LRDELAY = 0.1f; + public static final float AL_ECHO_MIN_DAMPING = 0.0f; + public static final float AL_ECHO_MAX_DAMPING = 0.99f; + public static final float AL_ECHO_DEFAULT_DAMPING = 0.5f; + public static final float AL_ECHO_MIN_FEEDBACK = 0.0f; + public static final float AL_ECHO_MAX_FEEDBACK = 1.0f; + public static final float AL_ECHO_DEFAULT_FEEDBACK = 0.5f; + public static final float AL_ECHO_MIN_SPREAD = -1.0f; + public static final float AL_ECHO_MAX_SPREAD = 1.0f; + public static final float AL_ECHO_DEFAULT_SPREAD = -1.0f; + public static final int AL_FLANGER_WAVEFORM_SINUSOID = 0; + public static final int AL_FLANGER_WAVEFORM_TRIANGLE = 1; + public static final int AL_FLANGER_MIN_WAVEFORM = 0; + public static final int AL_FLANGER_MAX_WAVEFORM = 1; + public static final int AL_FLANGER_DEFAULT_WAVEFORM = 1; + public static final int AL_FLANGER_MIN_PHASE = -180; + public static final int AL_FLANGER_MAX_PHASE = 180; + public static final int AL_FLANGER_DEFAULT_PHASE = 0; + public static final float AL_FLANGER_MIN_RATE = 0.0f; + public static final float AL_FLANGER_MAX_RATE = 10.0f; + public static final float AL_FLANGER_DEFAULT_RATE = 0.27f; + public static final float AL_FLANGER_MIN_DEPTH = 0.0f; + public static final float AL_FLANGER_MAX_DEPTH = 1.0f; + public static final float AL_FLANGER_DEFAULT_DEPTH = 1.0f; + public static final float AL_FLANGER_MIN_FEEDBACK = -1.0f; + public static final float AL_FLANGER_MAX_FEEDBACK = 1.0f; + public static final float AL_FLANGER_DEFAULT_FEEDBACK = -0.5f; + public static final float AL_FLANGER_MIN_DELAY = 0.0f; + public static final float AL_FLANGER_MAX_DELAY = 0.004f; + public static final float AL_FLANGER_DEFAULT_DELAY = 0.002f; + public static final float AL_FREQUENCY_SHIFTER_MIN_FREQUENCY = 0.0f; + public static final float AL_FREQUENCY_SHIFTER_MAX_FREQUENCY = 24000.0f; + public static final float AL_FREQUENCY_SHIFTER_DEFAULT_FREQUENCY = 0.0f; + public static final int AL_FREQUENCY_SHIFTER_MIN_LEFT_DIRECTION = 0; + public static final int AL_FREQUENCY_SHIFTER_MAX_LEFT_DIRECTION = 2; + public static final int AL_FREQUENCY_SHIFTER_DEFAULT_LEFT_DIRECTION = 0; + public static final int AL_FREQUENCY_SHIFTER_DIRECTION_DOWN = 0; + public static final int AL_FREQUENCY_SHIFTER_DIRECTION_UP = 1; + public static final int AL_FREQUENCY_SHIFTER_DIRECTION_OFF = 2; + public static final int AL_FREQUENCY_SHIFTER_MIN_RIGHT_DIRECTION = 0; + public static final int AL_FREQUENCY_SHIFTER_MAX_RIGHT_DIRECTION = 2; + public static final int AL_FREQUENCY_SHIFTER_DEFAULT_RIGHT_DIRECTION = 0; + public static final int AL_VOCAL_MORPHER_MIN_PHONEMEA = 0; + public static final int AL_VOCAL_MORPHER_MAX_PHONEMEA = 29; + public static final int AL_VOCAL_MORPHER_DEFAULT_PHONEMEA = 0; + public static final int AL_VOCAL_MORPHER_MIN_PHONEMEA_COARSE_TUNING = -24; + public static final int AL_VOCAL_MORPHER_MAX_PHONEMEA_COARSE_TUNING = 24; + public static final int AL_VOCAL_MORPHER_DEFAULT_PHONEMEA_COARSE_TUNING = 0; + public static final int AL_VOCAL_MORPHER_MIN_PHONEMEB = 0; + public static final int AL_VOCAL_MORPHER_MAX_PHONEMEB = 29; + public static final int AL_VOCAL_MORPHER_DEFAULT_PHONEMEB = 10; + public static final int AL_VOCAL_MORPHER_MIN_PHONEMEB_COARSE_TUNING = -24; + public static final int AL_VOCAL_MORPHER_MAX_PHONEMEB_COARSE_TUNING = 24; + public static final int AL_VOCAL_MORPHER_DEFAULT_PHONEMEB_COARSE_TUNING = 0; + public static final int AL_VOCAL_MORPHER_PHONEME_A = 0; + public static final int AL_VOCAL_MORPHER_PHONEME_E = 1; + public static final int AL_VOCAL_MORPHER_PHONEME_I = 2; + public static final int AL_VOCAL_MORPHER_PHONEME_O = 3; + public static final int AL_VOCAL_MORPHER_PHONEME_U = 4; + public static final int AL_VOCAL_MORPHER_PHONEME_AA = 5; + public static final int AL_VOCAL_MORPHER_PHONEME_AE = 6; + public static final int AL_VOCAL_MORPHER_PHONEME_AH = 7; + public static final int AL_VOCAL_MORPHER_PHONEME_AO = 8; + public static final int AL_VOCAL_MORPHER_PHONEME_EH = 9; + public static final int AL_VOCAL_MORPHER_PHONEME_ER = 10; + public static final int AL_VOCAL_MORPHER_PHONEME_IH = 11; + public static final int AL_VOCAL_MORPHER_PHONEME_IY = 12; + public static final int AL_VOCAL_MORPHER_PHONEME_UH = 13; + public static final int AL_VOCAL_MORPHER_PHONEME_UW = 14; + public static final int AL_VOCAL_MORPHER_PHONEME_B = 15; + public static final int AL_VOCAL_MORPHER_PHONEME_D = 16; + public static final int AL_VOCAL_MORPHER_PHONEME_F = 17; + public static final int AL_VOCAL_MORPHER_PHONEME_G = 18; + public static final int AL_VOCAL_MORPHER_PHONEME_J = 19; + public static final int AL_VOCAL_MORPHER_PHONEME_K = 20; + public static final int AL_VOCAL_MORPHER_PHONEME_L = 21; + public static final int AL_VOCAL_MORPHER_PHONEME_M = 22; + public static final int AL_VOCAL_MORPHER_PHONEME_N = 23; + public static final int AL_VOCAL_MORPHER_PHONEME_P = 24; + public static final int AL_VOCAL_MORPHER_PHONEME_R = 25; + public static final int AL_VOCAL_MORPHER_PHONEME_S = 26; + public static final int AL_VOCAL_MORPHER_PHONEME_T = 27; + public static final int AL_VOCAL_MORPHER_PHONEME_V = 28; + public static final int AL_VOCAL_MORPHER_PHONEME_Z = 29; + public static final int AL_VOCAL_MORPHER_WAVEFORM_SINUSOID = 0; + public static final int AL_VOCAL_MORPHER_WAVEFORM_TRIANGLE = 1; + public static final int AL_VOCAL_MORPHER_WAVEFORM_SAWTOOTH = 2; + public static final int AL_VOCAL_MORPHER_MIN_WAVEFORM = 0; + public static final int AL_VOCAL_MORPHER_MAX_WAVEFORM = 2; + public static final int AL_VOCAL_MORPHER_DEFAULT_WAVEFORM = 0; + public static final float AL_VOCAL_MORPHER_MIN_RATE = 0.0f; + public static final float AL_VOCAL_MORPHER_MAX_RATE = 10.0f; + public static final float AL_VOCAL_MORPHER_DEFAULT_RATE = 1.41f; + public static final int AL_PITCH_SHIFTER_MIN_COARSE_TUNE = -12; + public static final int AL_PITCH_SHIFTER_MAX_COARSE_TUNE = 12; + public static final int AL_PITCH_SHIFTER_DEFAULT_COARSE_TUNE = 12; + public static final int AL_PITCH_SHIFTER_MIN_FINE_TUNE = -50; + public static final int AL_PITCH_SHIFTER_MAX_FINE_TUNE = 50; + public static final int AL_PITCH_SHIFTER_DEFAULT_FINE_TUNE = 0; + public static final float AL_RING_MODULATOR_MIN_FREQUENCY = 0.0f; + public static final float AL_RING_MODULATOR_MAX_FREQUENCY = 8000.0f; + public static final float AL_RING_MODULATOR_DEFAULT_FREQUENCY = 440.0f; + public static final float AL_RING_MODULATOR_MIN_HIGHPASS_CUTOFF = 0.0f; + public static final float AL_RING_MODULATOR_MAX_HIGHPASS_CUTOFF = 24000.0f; + public static final float AL_RING_MODULATOR_DEFAULT_HIGHPASS_CUTOFF = 800.0f; + public static final int AL_RING_MODULATOR_SINUSOID = 0; + public static final int AL_RING_MODULATOR_SAWTOOTH = 1; + public static final int AL_RING_MODULATOR_SQUARE = 2; + public static final int AL_RING_MODULATOR_MIN_WAVEFORM = 0; + public static final int AL_RING_MODULATOR_MAX_WAVEFORM = 2; + public static final int AL_RING_MODULATOR_DEFAULT_WAVEFORM = 0; + public static final float AL_AUTOWAH_MIN_ATTACK_TIME = 0.0001f; + public static final float AL_AUTOWAH_MAX_ATTACK_TIME = 1.0f; + public static final float AL_AUTOWAH_DEFAULT_ATTACK_TIME = 0.06f; + public static final float AL_AUTOWAH_MIN_RELEASE_TIME = 0.0001f; + public static final float AL_AUTOWAH_MAX_RELEASE_TIME = 1.0f; + public static final float AL_AUTOWAH_DEFAULT_RELEASE_TIME = 0.06f; + public static final float AL_AUTOWAH_MIN_RESONANCE = 2.0f; + public static final float AL_AUTOWAH_MAX_RESONANCE = 1000.0f; + public static final float AL_AUTOWAH_DEFAULT_RESONANCE = 1000.0f; + public static final float AL_AUTOWAH_MIN_PEAK_GAIN = 0.00003f; + public static final float AL_AUTOWAH_MAX_PEAK_GAIN = 31621.0f; + public static final float AL_AUTOWAH_DEFAULT_PEAK_GAIN = 11.22f; + public static final int AL_COMPRESSOR_MIN_ONOFF = 0; + public static final int AL_COMPRESSOR_MAX_ONOFF = 1; + public static final int AL_COMPRESSOR_DEFAULT_ONOFF = 1; + public static final float AL_EQUALIZER_MIN_LOW_GAIN = 0.126f; + public static final float AL_EQUALIZER_MAX_LOW_GAIN = 7.943f; + public static final float AL_EQUALIZER_DEFAULT_LOW_GAIN = 1.0f; + public static final float AL_EQUALIZER_MIN_LOW_CUTOFF = 50.0f; + public static final float AL_EQUALIZER_MAX_LOW_CUTOFF = 800.0f; + public static final float AL_EQUALIZER_DEFAULT_LOW_CUTOFF = 200.0f; + public static final float AL_EQUALIZER_MIN_MID1_GAIN = 0.126f; + public static final float AL_EQUALIZER_MAX_MID1_GAIN = 7.943f; + public static final float AL_EQUALIZER_DEFAULT_MID1_GAIN = 1.0f; + public static final float AL_EQUALIZER_MIN_MID1_CENTER = 200.0f; + public static final float AL_EQUALIZER_MAX_MID1_CENTER = 3000.0f; + public static final float AL_EQUALIZER_DEFAULT_MID1_CENTER = 500.0f; + public static final float AL_EQUALIZER_MIN_MID1_WIDTH = 0.01f; + public static final float AL_EQUALIZER_MAX_MID1_WIDTH = 1.0f; + public static final float AL_EQUALIZER_DEFAULT_MID1_WIDTH = 1.0f; + public static final float AL_EQUALIZER_MIN_MID2_GAIN = 0.126f; + public static final float AL_EQUALIZER_MAX_MID2_GAIN = 7.943f; + public static final float AL_EQUALIZER_DEFAULT_MID2_GAIN = 1.0f; + public static final float AL_EQUALIZER_MIN_MID2_CENTER = 1000.0f; + public static final float AL_EQUALIZER_MAX_MID2_CENTER = 8000.0f; + public static final float AL_EQUALIZER_DEFAULT_MID2_CENTER = 3000.0f; + public static final float AL_EQUALIZER_MIN_MID2_WIDTH = 0.01f; + public static final float AL_EQUALIZER_MAX_MID2_WIDTH = 1.0f; + public static final float AL_EQUALIZER_DEFAULT_MID2_WIDTH = 1.0f; + public static final float AL_EQUALIZER_MIN_HIGH_GAIN = 0.126f; + public static final float AL_EQUALIZER_MAX_HIGH_GAIN = 7.943f; + public static final float AL_EQUALIZER_DEFAULT_HIGH_GAIN = 1.0f; + public static final float AL_EQUALIZER_MIN_HIGH_CUTOFF = 4000.0f; + public static final float AL_EQUALIZER_MAX_HIGH_CUTOFF = 16000.0f; + public static final float AL_EQUALIZER_DEFAULT_HIGH_CUTOFF = 6000.0f; + public static final float AL_MIN_AIR_ABSORPTION_FACTOR = 0.0f; + public static final float AL_MAX_AIR_ABSORPTION_FACTOR = 10.0f; + public static final float AL_DEFAULT_AIR_ABSORPTION_FACTOR = 0.0f; + public static final float AL_MIN_ROOM_ROLLOFF_FACTOR = 0.0f; + public static final float AL_MAX_ROOM_ROLLOFF_FACTOR = 10.0f; + public static final float AL_DEFAULT_ROOM_ROLLOFF_FACTOR = 0.0f; + public static final float AL_MIN_CONE_OUTER_GAINHF = 0.0f; + public static final float AL_MAX_CONE_OUTER_GAINHF = 1.0f; + public static final float AL_DEFAULT_CONE_OUTER_GAINHF = 1.0f; + public static final int AL_MIN_DIRECT_FILTER_GAINHF_AUTO = AL.AL_FALSE; + public static final int AL_MAX_DIRECT_FILTER_GAINHF_AUTO = AL.AL_TRUE; + public static final int AL_DEFAULT_DIRECT_FILTER_GAINHF_AUTO = AL.AL_TRUE; + public static final int AL_MIN_AUXILIARY_SEND_FILTER_GAIN_AUTO = AL.AL_FALSE; + public static final int AL_MAX_AUXILIARY_SEND_FILTER_GAIN_AUTO = AL.AL_TRUE; + public static final int AL_DEFAULT_AUXILIARY_SEND_FILTER_GAIN_AUTO = AL.AL_TRUE; + public static final int AL_MIN_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL.AL_FALSE; + public static final int AL_MAX_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL.AL_TRUE; + public static final int AL_DEFAULT_AUXILIARY_SEND_FILTER_GAINHF_AUTO = AL.AL_TRUE; + public static final float AL_MIN_METERS_PER_UNIT = Float.MIN_VALUE; + public static final float AL_MAX_METERS_PER_UNIT = Float.MAX_VALUE; + public static final float AL_DEFAULT_METERS_PER_UNIT = 1.0f; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alGenEffects`. + public static final MethodHandle MH_alGenEffects = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenEffects", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteEffects`. + public static final MethodHandle MH_alDeleteEffects = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteEffects", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsEffect`. + public static final MethodHandle MH_alIsEffect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsEffect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.JAVA_INT)); + /// The method handle of `alEffecti`. + public static final MethodHandle MH_alEffecti = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffecti", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alEffectiv`. + public static final MethodHandle MH_alEffectiv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffectiv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alEffectf`. + public static final MethodHandle MH_alEffectf = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffectf", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alEffectfv`. + public static final MethodHandle MH_alEffectfv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffectfv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffecti`. + public static final MethodHandle MH_alGetEffecti = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffecti", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffectiv`. + public static final MethodHandle MH_alGetEffectiv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffectiv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffectf`. + public static final MethodHandle MH_alGetEffectf = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffectf", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffectfv`. + public static final MethodHandle MH_alGetEffectfv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffectfv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGenFilters`. + public static final MethodHandle MH_alGenFilters = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenFilters", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteFilters`. + public static final MethodHandle MH_alDeleteFilters = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteFilters", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsFilter`. + public static final MethodHandle MH_alIsFilter = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsFilter", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.JAVA_INT)); + /// The method handle of `alFilteri`. + public static final MethodHandle MH_alFilteri = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilteri", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alFilteriv`. + public static final MethodHandle MH_alFilteriv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilteriv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alFilterf`. + public static final MethodHandle MH_alFilterf = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilterf", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alFilterfv`. + public static final MethodHandle MH_alFilterfv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilterfv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilteri`. + public static final MethodHandle MH_alGetFilteri = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilteri", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilteriv`. + public static final MethodHandle MH_alGetFilteriv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilteriv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilterf`. + public static final MethodHandle MH_alGetFilterf = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilterf", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilterfv`. + public static final MethodHandle MH_alGetFilterfv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilterfv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGenAuxiliaryEffectSlots`. + public static final MethodHandle MH_alGenAuxiliaryEffectSlots = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenAuxiliaryEffectSlots", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteAuxiliaryEffectSlots`. + public static final MethodHandle MH_alDeleteAuxiliaryEffectSlots = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteAuxiliaryEffectSlots", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsAuxiliaryEffectSlot`. + public static final MethodHandle MH_alIsAuxiliaryEffectSlot = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsAuxiliaryEffectSlot", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.JAVA_INT)); + /// The method handle of `alAuxiliaryEffectSloti`. + public static final MethodHandle MH_alAuxiliaryEffectSloti = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSloti", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alAuxiliaryEffectSlotiv`. + public static final MethodHandle MH_alAuxiliaryEffectSlotiv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSlotiv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alAuxiliaryEffectSlotf`. + public static final MethodHandle MH_alAuxiliaryEffectSlotf = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSlotf", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alAuxiliaryEffectSlotfv`. + public static final MethodHandle MH_alAuxiliaryEffectSlotfv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSlotfv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSloti`. + public static final MethodHandle MH_alGetAuxiliaryEffectSloti = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSloti", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSlotiv`. + public static final MethodHandle MH_alGetAuxiliaryEffectSlotiv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSlotiv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSlotf`. + public static final MethodHandle MH_alGetAuxiliaryEffectSlotf = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSlotf", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSlotfv`. + public static final MethodHandle MH_alGetAuxiliaryEffectSlotfv = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSlotfv", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + } + //endregion + + public static void alGenEffects(@CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment effects) { + if (Handles.MH_alGenEffects != null) { + try { + Handles.MH_alGenEffects.invokeExact(n, effects); + } catch (Throwable e) { throw new RuntimeException("error in alGenEffects", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenEffects"); } + } + + public static void alDeleteEffects(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment effects) { + if (Handles.MH_alDeleteEffects != null) { + try { + Handles.MH_alDeleteEffects.invokeExact(n, effects); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteEffects", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteEffects"); } + } + + public static @CType("ALboolean") boolean alIsEffect(@CType("ALuint") int effect) { + if (Handles.MH_alIsEffect != null) { + try { + return (boolean) Handles.MH_alIsEffect.invokeExact(effect); + } catch (Throwable e) { throw new RuntimeException("error in alIsEffect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsEffect"); } + } + + public static void alEffecti(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALint") int iValue) { + if (Handles.MH_alEffecti != null) { + try { + Handles.MH_alEffecti.invokeExact(effect, param, iValue); + } catch (Throwable e) { throw new RuntimeException("error in alEffecti", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffecti"); } + } + + public static void alEffectiv(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alEffectiv != null) { + try { + Handles.MH_alEffectiv.invokeExact(effect, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alEffectiv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffectiv"); } + } + + public static void alEffectf(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALfloat") float flValue) { + if (Handles.MH_alEffectf != null) { + try { + Handles.MH_alEffectf.invokeExact(effect, param, flValue); + } catch (Throwable e) { throw new RuntimeException("error in alEffectf", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffectf"); } + } + + public static void alEffectfv(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alEffectfv != null) { + try { + Handles.MH_alEffectfv.invokeExact(effect, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alEffectfv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffectfv"); } + } + + public static void alGetEffecti(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValue) { + if (Handles.MH_alGetEffecti != null) { + try { + Handles.MH_alGetEffecti.invokeExact(effect, param, piValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffecti", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffecti"); } + } + + public static void alGetEffectiv(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alGetEffectiv != null) { + try { + Handles.MH_alGetEffectiv.invokeExact(effect, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffectiv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffectiv"); } + } + + public static void alGetEffectf(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValue) { + if (Handles.MH_alGetEffectf != null) { + try { + Handles.MH_alGetEffectf.invokeExact(effect, param, pflValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffectf", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffectf"); } + } + + public static void alGetEffectfv(@CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alGetEffectfv != null) { + try { + Handles.MH_alGetEffectfv.invokeExact(effect, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffectfv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffectfv"); } + } + + public static void alGenFilters(@CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment filters) { + if (Handles.MH_alGenFilters != null) { + try { + Handles.MH_alGenFilters.invokeExact(n, filters); + } catch (Throwable e) { throw new RuntimeException("error in alGenFilters", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenFilters"); } + } + + public static void alDeleteFilters(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment filters) { + if (Handles.MH_alDeleteFilters != null) { + try { + Handles.MH_alDeleteFilters.invokeExact(n, filters); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteFilters", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteFilters"); } + } + + public static @CType("ALboolean") boolean alIsFilter(@CType("ALuint") int filter) { + if (Handles.MH_alIsFilter != null) { + try { + return (boolean) Handles.MH_alIsFilter.invokeExact(filter); + } catch (Throwable e) { throw new RuntimeException("error in alIsFilter", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsFilter"); } + } + + public static void alFilteri(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALint") int iValue) { + if (Handles.MH_alFilteri != null) { + try { + Handles.MH_alFilteri.invokeExact(filter, param, iValue); + } catch (Throwable e) { throw new RuntimeException("error in alFilteri", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilteri"); } + } + + public static void alFilteriv(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alFilteriv != null) { + try { + Handles.MH_alFilteriv.invokeExact(filter, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alFilteriv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilteriv"); } + } + + public static void alFilterf(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALfloat") float flValue) { + if (Handles.MH_alFilterf != null) { + try { + Handles.MH_alFilterf.invokeExact(filter, param, flValue); + } catch (Throwable e) { throw new RuntimeException("error in alFilterf", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilterf"); } + } + + public static void alFilterfv(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alFilterfv != null) { + try { + Handles.MH_alFilterfv.invokeExact(filter, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alFilterfv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilterfv"); } + } + + public static void alGetFilteri(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValue) { + if (Handles.MH_alGetFilteri != null) { + try { + Handles.MH_alGetFilteri.invokeExact(filter, param, piValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilteri", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilteri"); } + } + + public static void alGetFilteriv(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alGetFilteriv != null) { + try { + Handles.MH_alGetFilteriv.invokeExact(filter, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilteriv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilteriv"); } + } + + public static void alGetFilterf(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValue) { + if (Handles.MH_alGetFilterf != null) { + try { + Handles.MH_alGetFilterf.invokeExact(filter, param, pflValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilterf", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilterf"); } + } + + public static void alGetFilterfv(@CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alGetFilterfv != null) { + try { + Handles.MH_alGetFilterfv.invokeExact(filter, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilterfv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilterfv"); } + } + + public static void alGenAuxiliaryEffectSlots(@CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment effectslots) { + if (Handles.MH_alGenAuxiliaryEffectSlots != null) { + try { + Handles.MH_alGenAuxiliaryEffectSlots.invokeExact(n, effectslots); + } catch (Throwable e) { throw new RuntimeException("error in alGenAuxiliaryEffectSlots", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenAuxiliaryEffectSlots"); } + } + + public static void alDeleteAuxiliaryEffectSlots(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment effectslots) { + if (Handles.MH_alDeleteAuxiliaryEffectSlots != null) { + try { + Handles.MH_alDeleteAuxiliaryEffectSlots.invokeExact(n, effectslots); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteAuxiliaryEffectSlots", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteAuxiliaryEffectSlots"); } + } + + public static @CType("ALboolean") boolean alIsAuxiliaryEffectSlot(@CType("ALuint") int effectslot) { + if (Handles.MH_alIsAuxiliaryEffectSlot != null) { + try { + return (boolean) Handles.MH_alIsAuxiliaryEffectSlot.invokeExact(effectslot); + } catch (Throwable e) { throw new RuntimeException("error in alIsAuxiliaryEffectSlot", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsAuxiliaryEffectSlot"); } + } + + public static void alAuxiliaryEffectSloti(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALint") int iValue) { + if (Handles.MH_alAuxiliaryEffectSloti != null) { + try { + Handles.MH_alAuxiliaryEffectSloti.invokeExact(effectslot, param, iValue); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSloti", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSloti"); } + } + + public static void alAuxiliaryEffectSlotiv(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alAuxiliaryEffectSlotiv != null) { + try { + Handles.MH_alAuxiliaryEffectSlotiv.invokeExact(effectslot, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSlotiv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSlotiv"); } + } + + public static void alAuxiliaryEffectSlotf(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALfloat") float flValue) { + if (Handles.MH_alAuxiliaryEffectSlotf != null) { + try { + Handles.MH_alAuxiliaryEffectSlotf.invokeExact(effectslot, param, flValue); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSlotf", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSlotf"); } + } + + public static void alAuxiliaryEffectSlotfv(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alAuxiliaryEffectSlotfv != null) { + try { + Handles.MH_alAuxiliaryEffectSlotfv.invokeExact(effectslot, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSlotfv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSlotfv"); } + } + + public static void alGetAuxiliaryEffectSloti(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValue) { + if (Handles.MH_alGetAuxiliaryEffectSloti != null) { + try { + Handles.MH_alGetAuxiliaryEffectSloti.invokeExact(effectslot, param, piValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSloti", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSloti"); } + } + + public static void alGetAuxiliaryEffectSlotiv(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alGetAuxiliaryEffectSlotiv != null) { + try { + Handles.MH_alGetAuxiliaryEffectSlotiv.invokeExact(effectslot, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSlotiv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSlotiv"); } + } + + public static void alGetAuxiliaryEffectSlotf(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValue) { + if (Handles.MH_alGetAuxiliaryEffectSlotf != null) { + try { + Handles.MH_alGetAuxiliaryEffectSlotf.invokeExact(effectslot, param, pflValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSlotf", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSlotf"); } + } + + public static void alGetAuxiliaryEffectSlotfv(@CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alGetAuxiliaryEffectSlotfv != null) { + try { + Handles.MH_alGetAuxiliaryEffectSlotfv.invokeExact(effectslot, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSlotfv", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSlotfv"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCEXTEFX() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTThreadLocalContext.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTThreadLocalContext.java new file mode 100644 index 00000000..4fc02d27 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEXTThreadLocalContext.java @@ -0,0 +1,61 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCEXTThreadLocalContext { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcSetThreadContext`. + public static final MethodHandle MH_alcSetThreadContext = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcSetThreadContext", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS)); + /// The method handle of `alcGetThreadContext`. + public static final MethodHandle MH_alcGetThreadContext = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcGetThreadContext", FunctionDescriptor.of(ValueLayout.ADDRESS)); + } + //endregion + + public static @CType("ALCboolean") boolean alcSetThreadContext(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { + if (Handles.MH_alcSetThreadContext != null) { + try { + return (boolean) Handles.MH_alcSetThreadContext.invokeExact(context); + } catch (Throwable e) { throw new RuntimeException("error in alcSetThreadContext", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcSetThreadContext"); } + } + + public static @CType("ALCcontext *") java.lang.foreign.MemorySegment alcGetThreadContext() { + if (Handles.MH_alcGetThreadContext != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alcGetThreadContext.invokeExact(); + } catch (Throwable e) { throw new RuntimeException("error in alcGetThreadContext", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcGetThreadContext"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCEXTThreadLocalContext() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEventProcTypeSOFT.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEventProcTypeSOFT.java new file mode 100644 index 00000000..f0d49d58 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCEventProcTypeSOFT.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; + +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.upcall.*; +import overrungl.util.*; + +@FunctionalInterface +public interface ALCEventProcTypeSOFT extends Upcall { + /// The function descriptor. + FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT, ValueLayout.ADDRESS); + /// The method handle of the target method. + MethodHandle HANDLE = Upcall.findTarget(ALCEventProcTypeSOFT.class, "invoke", DESCRIPTOR); + + ///The target method of the upcall. + void invoke(@CType("ALCenum") int eventType, @CType("ALCenum") int deviceType, @CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCsizei") int length, @CType("const ALCchar*") java.lang.foreign.MemorySegment message, @CType("void*") java.lang.foreign.MemorySegment userParam); + + @Override + default MemorySegment stub(Arena arena) { return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, arena); } + + ///A static invoker of the target method. + ///@param stub the upcall stub + static void invoke(MemorySegment stub, @CType("ALCenum") int eventType, @CType("ALCenum") int deviceType, @CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCsizei") int length, @CType("const ALCchar*") java.lang.foreign.MemorySegment message, @CType("void*") java.lang.foreign.MemorySegment userParam) { + try { HANDLE.invokeExact(stub, eventType, deviceType, device, length, message, userParam); } + catch (Throwable e) { throw new RuntimeException("error in ALCEventProcTypeSOFT::invoke (static invoker)", e); } + } + + /// A wrapper for the target method. + /// @param stub the upcall stub + /// @return an instance that wraps the static invoker + static ALCEventProcTypeSOFT wrap(MemorySegment stub) { + return (eventType, deviceType, device, length, message, userParam) -> { try (var __overrungl_stack = MemoryStack.pushLocal()) { + invoke(stub, eventType, deviceType, device, length, Marshal.marshal(__overrungl_stack, message), userParam); + } }; + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCLOKIAudioChannel.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCLOKIAudioChannel.java new file mode 100644 index 00000000..91bf7e86 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCLOKIAudioChannel.java @@ -0,0 +1,32 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCLOKIAudioChannel { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_CHAN_MAIN_LOKI = 0x500001; + public static final int ALC_CHAN_PCM_LOKI = 0x500002; + public static final int ALC_CHAN_CD_LOKI = 0x500003; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCLOKIAudioChannel() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTDeviceClock.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTDeviceClock.java new file mode 100644 index 00000000..e517e2e6 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTDeviceClock.java @@ -0,0 +1,56 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCSOFTDeviceClock { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_DEVICE_CLOCK_SOFT = 0x1600; + public static final int ALC_DEVICE_LATENCY_SOFT = 0x1601; + public static final int ALC_DEVICE_CLOCK_LATENCY_SOFT = 0x1602; + public static final int AL_SAMPLE_OFFSET_CLOCK_SOFT = 0x1202; + public static final int AL_SEC_OFFSET_CLOCK_SOFT = 0x1203; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcGetInteger64vSOFT`. + public static final MethodHandle MH_alcGetInteger64vSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcGetInteger64vSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + } + //endregion + + public static void alcGetInteger64vSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCenum") int pname, @CType("ALsizei") int size, @CType("ALCint64SOFT *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alcGetInteger64vSOFT != null) { + try { + Handles.MH_alcGetInteger64vSOFT.invokeExact(device, pname, size, values); + } catch (Throwable e) { throw new RuntimeException("error in alcGetInteger64vSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcGetInteger64vSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTDeviceClock() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTHRTF.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTHRTF.java new file mode 100644 index 00000000..9f741db0 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTHRTF.java @@ -0,0 +1,73 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCSOFTHRTF { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_HRTF_SOFT = 0x1992; + public static final int ALC_DONT_CARE_SOFT = 0x0002; + public static final int ALC_HRTF_STATUS_SOFT = 0x1993; + public static final int ALC_HRTF_DISABLED_SOFT = 0x0000; + public static final int ALC_HRTF_ENABLED_SOFT = 0x0001; + public static final int ALC_HRTF_DENIED_SOFT = 0x0002; + public static final int ALC_HRTF_REQUIRED_SOFT = 0x0003; + public static final int ALC_HRTF_HEADPHONES_DETECTED_SOFT = 0x0004; + public static final int ALC_HRTF_UNSUPPORTED_FORMAT_SOFT = 0x0005; + public static final int ALC_NUM_HRTF_SPECIFIERS_SOFT = 0x1994; + public static final int ALC_HRTF_SPECIFIER_SOFT = 0x1995; + public static final int ALC_HRTF_ID_SOFT = 0x1996; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcGetStringiSOFT`. + public static final MethodHandle MH_alcGetStringiSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcGetStringiSOFT", FunctionDescriptor.of(Unmarshal.STR_LAYOUT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alcResetDeviceSOFT`. + public static final MethodHandle MH_alcResetDeviceSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcResetDeviceSOFT", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + } + //endregion + + public static @CType("const ALCchar*") java.lang.foreign.MemorySegment alcGetStringiSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCenum") int paramName, @CType("ALCsizei") int index) { + if (Handles.MH_alcGetStringiSOFT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alcGetStringiSOFT.invokeExact(device, paramName, index); + } catch (Throwable e) { throw new RuntimeException("error in alcGetStringiSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcGetStringiSOFT"); } + } + + public static @CType("ALCboolean") boolean alcResetDeviceSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCint *") java.lang.foreign.MemorySegment attribs) { + if (Handles.MH_alcResetDeviceSOFT != null) { + try { + return (boolean) Handles.MH_alcResetDeviceSOFT.invokeExact(device, attribs); + } catch (Throwable e) { throw new RuntimeException("error in alcResetDeviceSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcResetDeviceSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTHRTF() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTLoopback.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTLoopback.java new file mode 100644 index 00000000..a4fcee2d --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTLoopback.java @@ -0,0 +1,86 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCSOFTLoopback { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_FORMAT_CHANNELS_SOFT = 0x1990; + public static final int ALC_FORMAT_TYPE_SOFT = 0x1991; + public static final int ALC_BYTE_SOFT = 0x1400; + public static final int ALC_UNSIGNED_BYTE_SOFT = 0x1401; + public static final int ALC_SHORT_SOFT = 0x1402; + public static final int ALC_UNSIGNED_SHORT_SOFT = 0x1403; + public static final int ALC_INT_SOFT = 0x1404; + public static final int ALC_UNSIGNED_INT_SOFT = 0x1405; + public static final int ALC_FLOAT_SOFT = 0x1406; + public static final int ALC_MONO_SOFT = 0x1500; + public static final int ALC_STEREO_SOFT = 0x1501; + public static final int ALC_QUAD_SOFT = 0x1503; + public static final int ALC_5POINT1_SOFT = 0x1504; + public static final int ALC_6POINT1_SOFT = 0x1505; + public static final int ALC_7POINT1_SOFT = 0x1506; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcLoopbackOpenDeviceSOFT`. + public static final MethodHandle MH_alcLoopbackOpenDeviceSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcLoopbackOpenDeviceSOFT", FunctionDescriptor.of(ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alcIsRenderFormatSupportedSOFT`. + public static final MethodHandle MH_alcIsRenderFormatSupportedSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcIsRenderFormatSupportedSOFT", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alcRenderSamplesSOFT`. + public static final MethodHandle MH_alcRenderSamplesSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcRenderSamplesSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + } + //endregion + + public static @CType("ALCdevice *") java.lang.foreign.MemorySegment alcLoopbackOpenDeviceSOFT(@CType("const ALCchar*") java.lang.foreign.MemorySegment deviceName) { + if (Handles.MH_alcLoopbackOpenDeviceSOFT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alcLoopbackOpenDeviceSOFT.invokeExact(deviceName); + } catch (Throwable e) { throw new RuntimeException("error in alcLoopbackOpenDeviceSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcLoopbackOpenDeviceSOFT"); } + } + + public static @CType("ALCboolean") boolean alcIsRenderFormatSupportedSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCsizei") int freq, @CType("ALCenum") int channels, @CType("ALCenum") int type) { + if (Handles.MH_alcIsRenderFormatSupportedSOFT != null) { + try { + return (boolean) Handles.MH_alcIsRenderFormatSupportedSOFT.invokeExact(device, freq, channels, type); + } catch (Throwable e) { throw new RuntimeException("error in alcIsRenderFormatSupportedSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcIsRenderFormatSupportedSOFT"); } + } + + public static void alcRenderSamplesSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("ALCvoid *") java.lang.foreign.MemorySegment buffer, @CType("ALCsizei") int samples) { + if (Handles.MH_alcRenderSamplesSOFT != null) { + try { + Handles.MH_alcRenderSamplesSOFT.invokeExact(device, buffer, samples); + } catch (Throwable e) { throw new RuntimeException("error in alcRenderSamplesSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcRenderSamplesSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTLoopback() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTLoopbackBformat.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTLoopbackBformat.java new file mode 100644 index 00000000..d9c78928 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTLoopbackBformat.java @@ -0,0 +1,38 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCSOFTLoopbackBformat { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_AMBISONIC_LAYOUT_SOFT = 0x1997; + public static final int ALC_AMBISONIC_SCALING_SOFT = 0x1998; + public static final int ALC_AMBISONIC_ORDER_SOFT = 0x1999; + public static final int ALC_MAX_AMBISONIC_ORDER_SOFT = 0x199B; + public static final int ALC_BFORMAT3D_SOFT = 0x1507; + public static final int ALC_FUMA_SOFT = 0x0000; + public static final int ALC_ACN_SOFT = 0x0001; + public static final int ALC_SN3D_SOFT = 0x0001; + public static final int ALC_N3D_SOFT = 0x0002; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTLoopbackBformat() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTOutputLimiter.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTOutputLimiter.java new file mode 100644 index 00000000..bd893441 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTOutputLimiter.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCSOFTOutputLimiter { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_OUTPUT_LIMITER_SOFT = 0x199A; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTOutputLimiter() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTOutputMode.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTOutputMode.java new file mode 100644 index 00000000..34d46550 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTOutputMode.java @@ -0,0 +1,37 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALCSOFTOutputMode { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_OUTPUT_MODE_SOFT = 0x19AC; + public static final int ALC_ANY_SOFT = 0x19AD; + public static final int ALC_STEREO_BASIC_SOFT = 0x19AE; + public static final int ALC_STEREO_UHJ_SOFT = 0x19AF; + public static final int ALC_STEREO_HRTF_SOFT = 0x19B2; + public static final int ALC_SURROUND_5_1_SOFT = 0x1504; + public static final int ALC_SURROUND_6_1_SOFT = 0x1505; + public static final int ALC_SURROUND_7_1_SOFT = 0x1506; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTOutputMode() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTPauseDevice.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTPauseDevice.java new file mode 100644 index 00000000..f94ba70c --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTPauseDevice.java @@ -0,0 +1,61 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCSOFTPauseDevice { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcDevicePauseSOFT`. + public static final MethodHandle MH_alcDevicePauseSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcDevicePauseSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS)); + /// The method handle of `alcDeviceResumeSOFT`. + public static final MethodHandle MH_alcDeviceResumeSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcDeviceResumeSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS)); + } + //endregion + + public static void alcDevicePauseSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device) { + if (Handles.MH_alcDevicePauseSOFT != null) { + try { + Handles.MH_alcDevicePauseSOFT.invokeExact(device); + } catch (Throwable e) { throw new RuntimeException("error in alcDevicePauseSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcDevicePauseSOFT"); } + } + + public static void alcDeviceResumeSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device) { + if (Handles.MH_alcDeviceResumeSOFT != null) { + try { + Handles.MH_alcDeviceResumeSOFT.invokeExact(device); + } catch (Throwable e) { throw new RuntimeException("error in alcDeviceResumeSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcDeviceResumeSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTPauseDevice() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTReopenDevice.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTReopenDevice.java new file mode 100644 index 00000000..0d20a4c7 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTReopenDevice.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCSOFTReopenDevice { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcReopenDeviceSOFT`. + public static final MethodHandle MH_alcReopenDeviceSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcReopenDeviceSOFT", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT, ValueLayout.ADDRESS)); + } + //endregion + + public static @CType("ALCboolean") boolean alcReopenDeviceSOFT(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.foreign.MemorySegment deviceName, @CType("const ALCint *") java.lang.foreign.MemorySegment attribs) { + if (Handles.MH_alcReopenDeviceSOFT != null) { + try { + return (boolean) Handles.MH_alcReopenDeviceSOFT.invokeExact(device, deviceName, attribs); + } catch (Throwable e) { throw new RuntimeException("error in alcReopenDeviceSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcReopenDeviceSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTReopenDevice() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTSystemEvents.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTSystemEvents.java new file mode 100644 index 00000000..78c6eaa5 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALCSOFTSystemEvents.java @@ -0,0 +1,78 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALCSOFTSystemEvents { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int ALC_PLAYBACK_DEVICE_SOFT = 0x19D4; + public static final int ALC_CAPTURE_DEVICE_SOFT = 0x19D5; + public static final int ALC_EVENT_TYPE_DEFAULT_DEVICE_CHANGED_SOFT = 0x19D6; + public static final int ALC_EVENT_TYPE_DEVICE_ADDED_SOFT = 0x19D7; + public static final int ALC_EVENT_TYPE_DEVICE_REMOVED_SOFT = 0x19D8; + public static final int ALC_EVENT_SUPPORTED_SOFT = 0x19D9; + public static final int ALC_EVENT_NOT_SUPPORTED_SOFT = 0x19DA; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcEventIsSupportedSOFT`. + public static final MethodHandle MH_alcEventIsSupportedSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcEventIsSupportedSOFT", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alcEventControlSOFT`. + public static final MethodHandle MH_alcEventControlSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcEventControlSOFT", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_BOOLEAN)); + /// The method handle of `alcEventCallbackSOFT`. + public static final MethodHandle MH_alcEventCallbackSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcEventCallbackSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + } + //endregion + + public static @CType("ALCenum") int alcEventIsSupportedSOFT(@CType("ALCenum") int eventType, @CType("ALCenum") int deviceType) { + if (Handles.MH_alcEventIsSupportedSOFT != null) { + try { + return (int) Handles.MH_alcEventIsSupportedSOFT.invokeExact(eventType, deviceType); + } catch (Throwable e) { throw new RuntimeException("error in alcEventIsSupportedSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcEventIsSupportedSOFT"); } + } + + public static @CType("ALCboolean") boolean alcEventControlSOFT(@CType("ALCsizei") int count, @CType("const ALCenum *") java.lang.foreign.MemorySegment events, @CType("ALCboolean") boolean enable) { + if (Handles.MH_alcEventControlSOFT != null) { + try { + return (boolean) Handles.MH_alcEventControlSOFT.invokeExact(count, events, enable); + } catch (Throwable e) { throw new RuntimeException("error in alcEventControlSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcEventControlSOFT"); } + } + + public static void alcEventCallbackSOFT(@CType("ALCEVENTPROCTYPESOFT") java.lang.foreign.MemorySegment callback, @CType("void*") java.lang.foreign.MemorySegment userParam) { + if (Handles.MH_alcEventCallbackSOFT != null) { + try { + Handles.MH_alcEventCallbackSOFT.invokeExact(callback, userParam); + } catch (Throwable e) { throw new RuntimeException("error in alcEventCallbackSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcEventCallbackSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALCSOFTSystemEvents() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALDebugProcEXT.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALDebugProcEXT.java new file mode 100644 index 00000000..b1ba18bf --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALDebugProcEXT.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; + +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.upcall.*; +import overrungl.util.*; + +@FunctionalInterface +public interface ALDebugProcEXT extends Upcall { + /// The function descriptor. + FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT, ValueLayout.ADDRESS); + /// The method handle of the target method. + MethodHandle HANDLE = Upcall.findTarget(ALDebugProcEXT.class, "invoke", DESCRIPTOR); + + ///The target method of the upcall. + void invoke(@CType("ALenum") int source, @CType("ALenum") int type, @CType("ALuint") int id, @CType("ALenum") int severity, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message, @CType("void*") java.lang.foreign.MemorySegment userParam); + + @Override + default MemorySegment stub(Arena arena) { return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, arena); } + + ///A static invoker of the target method. + ///@param stub the upcall stub + static void invoke(MemorySegment stub, @CType("ALenum") int source, @CType("ALenum") int type, @CType("ALuint") int id, @CType("ALenum") int severity, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message, @CType("void*") java.lang.foreign.MemorySegment userParam) { + try { HANDLE.invokeExact(stub, source, type, id, severity, length, message, userParam); } + catch (Throwable e) { throw new RuntimeException("error in ALDebugProcEXT::invoke (static invoker)", e); } + } + + /// A wrapper for the target method. + /// @param stub the upcall stub + /// @return an instance that wraps the static invoker + static ALDebugProcEXT wrap(MemorySegment stub) { + return (source, type, id, severity, length, message, userParam) -> { try (var __overrungl_stack = MemoryStack.pushLocal()) { + invoke(stub, source, type, id, severity, length, Marshal.marshal(__overrungl_stack, message), userParam); + } }; + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTALAW.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTALAW.java new file mode 100644 index 00000000..b71eb672 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTALAW.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTALAW { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_MONO_ALAW_EXT = 0x10016; + public static final int AL_FORMAT_STEREO_ALAW_EXT = 0x10017; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTALAW() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTBFORMAT.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTBFORMAT.java new file mode 100644 index 00000000..70623253 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTBFORMAT.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTBFORMAT { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_BFORMAT2D_8 = 0x20021; + public static final int AL_FORMAT_BFORMAT2D_16 = 0x20022; + public static final int AL_FORMAT_BFORMAT2D_FLOAT32 = 0x20023; + public static final int AL_FORMAT_BFORMAT3D_8 = 0x20031; + public static final int AL_FORMAT_BFORMAT3D_16 = 0x20032; + public static final int AL_FORMAT_BFORMAT3D_FLOAT32 = 0x20033; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTBFORMAT() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDebug.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDebug.java new file mode 100644 index 00000000..c871e2a1 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDebug.java @@ -0,0 +1,177 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALEXTDebug { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_DONT_CARE_EXT = 0x0002; + public static final int AL_DEBUG_OUTPUT_EXT = 0x19B2; + public static final int AL_DEBUG_CALLBACK_FUNCTION_EXT = 0x19B3; + public static final int AL_DEBUG_CALLBACK_USER_PARAM_EXT = 0x19B4; + public static final int AL_DEBUG_SOURCE_API_EXT = 0x19B5; + public static final int AL_DEBUG_SOURCE_AUDIO_SYSTEM_EXT = 0x19B6; + public static final int AL_DEBUG_SOURCE_THIRD_PARTY_EXT = 0x19B7; + public static final int AL_DEBUG_SOURCE_APPLICATION_EXT = 0x19B8; + public static final int AL_DEBUG_SOURCE_OTHER_EXT = 0x19B9; + public static final int AL_DEBUG_TYPE_ERROR_EXT = 0x19BA; + public static final int AL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_EXT = 0x19BB; + public static final int AL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_EXT = 0x19BC; + public static final int AL_DEBUG_TYPE_PORTABILITY_EXT = 0x19BD; + public static final int AL_DEBUG_TYPE_PERFORMANCE_EXT = 0x19BE; + public static final int AL_DEBUG_TYPE_MARKER_EXT = 0x19BF; + public static final int AL_DEBUG_TYPE_PUSH_GROUP_EXT = 0x19C0; + public static final int AL_DEBUG_TYPE_POP_GROUP_EXT = 0x19C1; + public static final int AL_DEBUG_TYPE_OTHER_EXT = 0x19C2; + public static final int AL_DEBUG_SEVERITY_HIGH_EXT = 0x19C3; + public static final int AL_DEBUG_SEVERITY_MEDIUM_EXT = 0x19C4; + public static final int AL_DEBUG_SEVERITY_LOW_EXT = 0x19C5; + public static final int AL_DEBUG_SEVERITY_NOTIFICATION_EXT = 0x19C6; + public static final int AL_DEBUG_LOGGED_MESSAGES_EXT = 0x19C7; + public static final int AL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_EXT = 0x19C8; + public static final int AL_MAX_DEBUG_MESSAGE_LENGTH_EXT = 0x19C9; + public static final int AL_MAX_DEBUG_LOGGED_MESSAGES_EXT = 0x19CA; + public static final int AL_MAX_DEBUG_GROUP_STACK_DEPTH_EXT = 0x19CB; + public static final int AL_MAX_LABEL_LENGTH_EXT = 0x19CC; + public static final int AL_STACK_OVERFLOW_EXT = 0x19CD; + public static final int AL_STACK_UNDERFLOW_EXT = 0x19CE; + public static final int AL_CONTEXT_FLAGS_EXT = 0x19CF; + public static final int AL_BUFFER_EXT = 0x1009; + public static final int AL_SOURCE_EXT = 0x19D0; + public static final int AL_FILTER_EXT = 0x19D1; + public static final int AL_EFFECT_EXT = 0x19D2; + public static final int AL_AUXILIARY_EFFECT_SLOT_EXT = 0x19D3; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alDebugMessageCallbackEXT`. + public static final MethodHandle MH_alDebugMessageCallbackEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDebugMessageCallbackEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alDebugMessageInsertEXT`. + public static final MethodHandle MH_alDebugMessageInsertEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDebugMessageInsertEXT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT)); + /// The method handle of `alDebugMessageControlEXT`. + public static final MethodHandle MH_alDebugMessageControlEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDebugMessageControlEXT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_BOOLEAN)); + /// The method handle of `alPushDebugGroupEXT`. + public static final MethodHandle MH_alPushDebugGroupEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alPushDebugGroupEXT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT)); + /// The method handle of `alPopDebugGroupEXT`. + public static final MethodHandle MH_alPopDebugGroupEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alPopDebugGroupEXT", FunctionDescriptor.ofVoid()); + /// The method handle of `alGetDebugMessageLogEXT`. + public static final MethodHandle MH_alGetDebugMessageLogEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetDebugMessageLogEXT", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alObjectLabelEXT`. + public static final MethodHandle MH_alObjectLabelEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alObjectLabelEXT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT)); + /// The method handle of `alGetObjectLabelEXT`. + public static final MethodHandle MH_alGetObjectLabelEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetObjectLabelEXT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alGetPointerEXT`. + public static final MethodHandle MH_alGetPointerEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointerEXT", FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetPointervEXT`. + public static final MethodHandle MH_alGetPointervEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointervEXT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + } + //endregion + + public static void alDebugMessageCallbackEXT(@CType("ALDEBUGPROCEXT") java.lang.foreign.MemorySegment callback, @CType("void*") java.lang.foreign.MemorySegment userParam) { + if (Handles.MH_alDebugMessageCallbackEXT != null) { + try { + Handles.MH_alDebugMessageCallbackEXT.invokeExact(callback, userParam); + } catch (Throwable e) { throw new RuntimeException("error in alDebugMessageCallbackEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDebugMessageCallbackEXT"); } + } + + public static void alDebugMessageInsertEXT(@CType("ALenum") int source, @CType("ALenum") int type, @CType("ALuint") int id, @CType("ALenum") int severity, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message) { + if (Handles.MH_alDebugMessageInsertEXT != null) { + try { + Handles.MH_alDebugMessageInsertEXT.invokeExact(source, type, id, severity, length, message); + } catch (Throwable e) { throw new RuntimeException("error in alDebugMessageInsertEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDebugMessageInsertEXT"); } + } + + public static void alDebugMessageControlEXT(@CType("ALenum") int source, @CType("ALenum") int type, @CType("ALenum") int severity, @CType("ALsizei") int count, @CType("const ALuint *") java.lang.foreign.MemorySegment ids, @CType("ALboolean") boolean enable) { + if (Handles.MH_alDebugMessageControlEXT != null) { + try { + Handles.MH_alDebugMessageControlEXT.invokeExact(source, type, severity, count, ids, enable); + } catch (Throwable e) { throw new RuntimeException("error in alDebugMessageControlEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDebugMessageControlEXT"); } + } + + public static void alPushDebugGroupEXT(@CType("ALenum") int source, @CType("ALuint") int id, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message) { + if (Handles.MH_alPushDebugGroupEXT != null) { + try { + Handles.MH_alPushDebugGroupEXT.invokeExact(source, id, length, message); + } catch (Throwable e) { throw new RuntimeException("error in alPushDebugGroupEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alPushDebugGroupEXT"); } + } + + public static void alPopDebugGroupEXT() { + if (Handles.MH_alPopDebugGroupEXT != null) { + try { + Handles.MH_alPopDebugGroupEXT.invokeExact(); + } catch (Throwable e) { throw new RuntimeException("error in alPopDebugGroupEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alPopDebugGroupEXT"); } + } + + public static @CType("ALuint") int alGetDebugMessageLogEXT(@CType("ALuint") int count, @CType("ALsizei") int logBufSize, @CType("ALenum *") java.lang.foreign.MemorySegment sources, @CType("ALenum *") java.lang.foreign.MemorySegment types, @CType("ALuint *") java.lang.foreign.MemorySegment ids, @CType("ALenum *") java.lang.foreign.MemorySegment severities, @CType("ALsizei *") java.lang.foreign.MemorySegment lengths, @CType("ALchar*") java.lang.foreign.MemorySegment logBuf) { + if (Handles.MH_alGetDebugMessageLogEXT != null) { + try { + return (int) Handles.MH_alGetDebugMessageLogEXT.invokeExact(count, logBufSize, sources, types, ids, severities, lengths, logBuf); + } catch (Throwable e) { throw new RuntimeException("error in alGetDebugMessageLogEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetDebugMessageLogEXT"); } + } + + public static void alObjectLabelEXT(@CType("ALenum") int identifier, @CType("ALuint") int name, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment label) { + if (Handles.MH_alObjectLabelEXT != null) { + try { + Handles.MH_alObjectLabelEXT.invokeExact(identifier, name, length, label); + } catch (Throwable e) { throw new RuntimeException("error in alObjectLabelEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alObjectLabelEXT"); } + } + + public static void alGetObjectLabelEXT(@CType("ALenum") int identifier, @CType("ALuint") int name, @CType("ALsizei") int bufSize, @CType("ALsizei *") java.lang.foreign.MemorySegment length, @CType("ALchar*") java.lang.foreign.MemorySegment label) { + if (Handles.MH_alGetObjectLabelEXT != null) { + try { + Handles.MH_alGetObjectLabelEXT.invokeExact(identifier, name, bufSize, length, label); + } catch (Throwable e) { throw new RuntimeException("error in alGetObjectLabelEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetObjectLabelEXT"); } + } + + public static @CType("void*") java.lang.foreign.MemorySegment alGetPointerEXT(@CType("ALenum") int pname) { + if (Handles.MH_alGetPointerEXT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetPointerEXT.invokeExact(pname); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointerEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointerEXT"); } + } + + public static void alGetPointervEXT(@CType("ALenum") int pname, @CType("void**") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetPointervEXT != null) { + try { + Handles.MH_alGetPointervEXT.invokeExact(pname, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointervEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointervEXT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTDebug() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDirectContext.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDirectContext.java new file mode 100644 index 00000000..4fbd3f6a --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDirectContext.java @@ -0,0 +1,1531 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALEXTDirectContext { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alcGetProcAddress2`. + public static final MethodHandle MH_alcGetProcAddress2 = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alcGetProcAddress2", FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alEnableDirect`. + public static final MethodHandle MH_alEnableDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEnableDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alDisableDirect`. + public static final MethodHandle MH_alDisableDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDisableDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alIsEnabledDirect`. + public static final MethodHandle MH_alIsEnabledDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsEnabledDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alDopplerFactorDirect`. + public static final MethodHandle MH_alDopplerFactorDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDopplerFactorDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alSpeedOfSoundDirect`. + public static final MethodHandle MH_alSpeedOfSoundDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSpeedOfSoundDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alDistanceModelDirect`. + public static final MethodHandle MH_alDistanceModelDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDistanceModelDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetStringDirect`. + public static final MethodHandle MH_alGetStringDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetStringDirect", FunctionDescriptor.of(Unmarshal.STR_LAYOUT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetBooleanvDirect`. + public static final MethodHandle MH_alGetBooleanvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBooleanvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetIntegervDirect`. + public static final MethodHandle MH_alGetIntegervDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetIntegervDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFloatvDirect`. + public static final MethodHandle MH_alGetFloatvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFloatvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetDoublevDirect`. + public static final MethodHandle MH_alGetDoublevDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetDoublevDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBooleanDirect`. + public static final MethodHandle MH_alGetBooleanDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBooleanDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetIntegerDirect`. + public static final MethodHandle MH_alGetIntegerDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetIntegerDirect", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetFloatDirect`. + public static final MethodHandle MH_alGetFloatDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFloatDirect", FunctionDescriptor.of(ValueLayout.JAVA_FLOAT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetDoubleDirect`. + public static final MethodHandle MH_alGetDoubleDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetDoubleDirect", FunctionDescriptor.of(ValueLayout.JAVA_DOUBLE, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetErrorDirect`. + public static final MethodHandle MH_alGetErrorDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetErrorDirect", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsExtensionPresentDirect`. + public static final MethodHandle MH_alIsExtensionPresentDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsExtensionPresentDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alGetProcAddressDirect`. + public static final MethodHandle MH_alGetProcAddressDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetProcAddressDirect", FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alGetEnumValueDirect`. + public static final MethodHandle MH_alGetEnumValueDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEnumValueDirect", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alListenerfDirect`. + public static final MethodHandle MH_alListenerfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alListenerfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alListener3fDirect`. + public static final MethodHandle MH_alListener3fDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alListener3fDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT, ValueLayout.JAVA_FLOAT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alListenerfvDirect`. + public static final MethodHandle MH_alListenerfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alListenerfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alListeneriDirect`. + public static final MethodHandle MH_alListeneriDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alListeneriDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alListener3iDirect`. + public static final MethodHandle MH_alListener3iDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alListener3iDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alListenerivDirect`. + public static final MethodHandle MH_alListenerivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alListenerivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetListenerfDirect`. + public static final MethodHandle MH_alGetListenerfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetListenerfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetListener3fDirect`. + public static final MethodHandle MH_alGetListener3fDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetListener3fDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetListenerfvDirect`. + public static final MethodHandle MH_alGetListenerfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetListenerfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetListeneriDirect`. + public static final MethodHandle MH_alGetListeneriDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetListeneriDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetListener3iDirect`. + public static final MethodHandle MH_alGetListener3iDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetListener3iDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetListenerivDirect`. + public static final MethodHandle MH_alGetListenerivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetListenerivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGenSourcesDirect`. + public static final MethodHandle MH_alGenSourcesDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenSourcesDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteSourcesDirect`. + public static final MethodHandle MH_alDeleteSourcesDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteSourcesDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsSourceDirect`. + public static final MethodHandle MH_alIsSourceDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsSourceDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alSourcefDirect`. + public static final MethodHandle MH_alSourcefDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcefDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alSource3fDirect`. + public static final MethodHandle MH_alSource3fDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSource3fDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT, ValueLayout.JAVA_FLOAT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alSourcefvDirect`. + public static final MethodHandle MH_alSourcefvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcefvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourceiDirect`. + public static final MethodHandle MH_alSourceiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alSource3iDirect`. + public static final MethodHandle MH_alSource3iDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSource3iDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alSourceivDirect`. + public static final MethodHandle MH_alSourceivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcefDirect`. + public static final MethodHandle MH_alGetSourcefDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcefDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSource3fDirect`. + public static final MethodHandle MH_alGetSource3fDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSource3fDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcefvDirect`. + public static final MethodHandle MH_alGetSourcefvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcefvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourceiDirect`. + public static final MethodHandle MH_alGetSourceiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourceiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSource3iDirect`. + public static final MethodHandle MH_alGetSource3iDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSource3iDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourceivDirect`. + public static final MethodHandle MH_alGetSourceivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourceivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourcePlayDirect`. + public static final MethodHandle MH_alSourcePlayDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePlayDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alSourceStopDirect`. + public static final MethodHandle MH_alSourceStopDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceStopDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alSourceRewindDirect`. + public static final MethodHandle MH_alSourceRewindDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceRewindDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alSourcePauseDirect`. + public static final MethodHandle MH_alSourcePauseDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePauseDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alSourcePlayvDirect`. + public static final MethodHandle MH_alSourcePlayvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePlayvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourceStopvDirect`. + public static final MethodHandle MH_alSourceStopvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceStopvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourceRewindvDirect`. + public static final MethodHandle MH_alSourceRewindvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceRewindvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourcePausevDirect`. + public static final MethodHandle MH_alSourcePausevDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePausevDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourceQueueBuffersDirect`. + public static final MethodHandle MH_alSourceQueueBuffersDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceQueueBuffersDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourceUnqueueBuffersDirect`. + public static final MethodHandle MH_alSourceUnqueueBuffersDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourceUnqueueBuffersDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGenBuffersDirect`. + public static final MethodHandle MH_alGenBuffersDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenBuffersDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteBuffersDirect`. + public static final MethodHandle MH_alDeleteBuffersDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteBuffersDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsBufferDirect`. + public static final MethodHandle MH_alIsBufferDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsBufferDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alBufferDataDirect`. + public static final MethodHandle MH_alBufferDataDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferDataDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alBufferfDirect`. + public static final MethodHandle MH_alBufferfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alBuffer3fDirect`. + public static final MethodHandle MH_alBuffer3fDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBuffer3fDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT, ValueLayout.JAVA_FLOAT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alBufferfvDirect`. + public static final MethodHandle MH_alBufferfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alBufferiDirect`. + public static final MethodHandle MH_alBufferiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alBuffer3iDirect`. + public static final MethodHandle MH_alBuffer3iDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBuffer3iDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alBufferivDirect`. + public static final MethodHandle MH_alBufferivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferfDirect`. + public static final MethodHandle MH_alGetBufferfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBuffer3fDirect`. + public static final MethodHandle MH_alGetBuffer3fDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBuffer3fDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferfvDirect`. + public static final MethodHandle MH_alGetBufferfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferiDirect`. + public static final MethodHandle MH_alGetBufferiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBuffer3iDirect`. + public static final MethodHandle MH_alGetBuffer3iDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBuffer3iDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferivDirect`. + public static final MethodHandle MH_alGetBufferivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGenEffectsDirect`. + public static final MethodHandle MH_alGenEffectsDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenEffectsDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteEffectsDirect`. + public static final MethodHandle MH_alDeleteEffectsDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteEffectsDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsEffectDirect`. + public static final MethodHandle MH_alIsEffectDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsEffectDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alEffectiDirect`. + public static final MethodHandle MH_alEffectiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffectiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alEffectivDirect`. + public static final MethodHandle MH_alEffectivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffectivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alEffectfDirect`. + public static final MethodHandle MH_alEffectfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffectfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alEffectfvDirect`. + public static final MethodHandle MH_alEffectfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEffectfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffectiDirect`. + public static final MethodHandle MH_alGetEffectiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffectiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffectivDirect`. + public static final MethodHandle MH_alGetEffectivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffectivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffectfDirect`. + public static final MethodHandle MH_alGetEffectfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffectfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetEffectfvDirect`. + public static final MethodHandle MH_alGetEffectfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetEffectfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGenFiltersDirect`. + public static final MethodHandle MH_alGenFiltersDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenFiltersDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteFiltersDirect`. + public static final MethodHandle MH_alDeleteFiltersDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteFiltersDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsFilterDirect`. + public static final MethodHandle MH_alIsFilterDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsFilterDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alFilteriDirect`. + public static final MethodHandle MH_alFilteriDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilteriDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alFilterivDirect`. + public static final MethodHandle MH_alFilterivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilterivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alFilterfDirect`. + public static final MethodHandle MH_alFilterfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilterfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alFilterfvDirect`. + public static final MethodHandle MH_alFilterfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alFilterfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilteriDirect`. + public static final MethodHandle MH_alGetFilteriDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilteriDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilterivDirect`. + public static final MethodHandle MH_alGetFilterivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilterivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilterfDirect`. + public static final MethodHandle MH_alGetFilterfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilterfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetFilterfvDirect`. + public static final MethodHandle MH_alGetFilterfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetFilterfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGenAuxiliaryEffectSlotsDirect`. + public static final MethodHandle MH_alGenAuxiliaryEffectSlotsDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGenAuxiliaryEffectSlotsDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeleteAuxiliaryEffectSlotsDirect`. + public static final MethodHandle MH_alDeleteAuxiliaryEffectSlotsDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeleteAuxiliaryEffectSlotsDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsAuxiliaryEffectSlotDirect`. + public static final MethodHandle MH_alIsAuxiliaryEffectSlotDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsAuxiliaryEffectSlotDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alAuxiliaryEffectSlotiDirect`. + public static final MethodHandle MH_alAuxiliaryEffectSlotiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSlotiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alAuxiliaryEffectSlotivDirect`. + public static final MethodHandle MH_alAuxiliaryEffectSlotivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSlotivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alAuxiliaryEffectSlotfDirect`. + public static final MethodHandle MH_alAuxiliaryEffectSlotfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSlotfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_FLOAT)); + /// The method handle of `alAuxiliaryEffectSlotfvDirect`. + public static final MethodHandle MH_alAuxiliaryEffectSlotfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alAuxiliaryEffectSlotfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSlotiDirect`. + public static final MethodHandle MH_alGetAuxiliaryEffectSlotiDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSlotiDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSlotivDirect`. + public static final MethodHandle MH_alGetAuxiliaryEffectSlotivDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSlotivDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSlotfDirect`. + public static final MethodHandle MH_alGetAuxiliaryEffectSlotfDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSlotfDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetAuxiliaryEffectSlotfvDirect`. + public static final MethodHandle MH_alGetAuxiliaryEffectSlotfvDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetAuxiliaryEffectSlotfvDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alBufferDataStaticDirect`. + public static final MethodHandle MH_alBufferDataStaticDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferDataStaticDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alDebugMessageCallbackDirectEXT`. + public static final MethodHandle MH_alDebugMessageCallbackDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDebugMessageCallbackDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alDebugMessageInsertDirectEXT`. + public static final MethodHandle MH_alDebugMessageInsertDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDebugMessageInsertDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT)); + /// The method handle of `alDebugMessageControlDirectEXT`. + public static final MethodHandle MH_alDebugMessageControlDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDebugMessageControlDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_BOOLEAN)); + /// The method handle of `alPushDebugGroupDirectEXT`. + public static final MethodHandle MH_alPushDebugGroupDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alPushDebugGroupDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT)); + /// The method handle of `alPopDebugGroupDirectEXT`. + public static final MethodHandle MH_alPopDebugGroupDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alPopDebugGroupDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS)); + /// The method handle of `alGetDebugMessageLogDirectEXT`. + public static final MethodHandle MH_alGetDebugMessageLogDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetDebugMessageLogDirectEXT", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alObjectLabelDirectEXT`. + public static final MethodHandle MH_alObjectLabelDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alObjectLabelDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT)); + /// The method handle of `alGetObjectLabelDirectEXT`. + public static final MethodHandle MH_alGetObjectLabelDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetObjectLabelDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, Unmarshal.STR_LAYOUT)); + /// The method handle of `alGetPointerDirectEXT`. + public static final MethodHandle MH_alGetPointerDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointerDirectEXT", FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetPointervDirectEXT`. + public static final MethodHandle MH_alGetPointervDirectEXT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointervDirectEXT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alRequestFoldbackStartDirect`. + public static final MethodHandle MH_alRequestFoldbackStartDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alRequestFoldbackStartDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alRequestFoldbackStopDirect`. + public static final MethodHandle MH_alRequestFoldbackStopDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alRequestFoldbackStopDirect", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS)); + /// The method handle of `alBufferSubDataDirectSOFT`. + public static final MethodHandle MH_alBufferSubDataDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferSubDataDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alSourcedDirectSOFT`. + public static final MethodHandle MH_alSourcedDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcedDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_DOUBLE)); + /// The method handle of `alSource3dDirectSOFT`. + public static final MethodHandle MH_alSource3dDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSource3dDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_DOUBLE, ValueLayout.JAVA_DOUBLE, ValueLayout.JAVA_DOUBLE)); + /// The method handle of `alSourcedvDirectSOFT`. + public static final MethodHandle MH_alSourcedvDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcedvDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcedDirectSOFT`. + public static final MethodHandle MH_alGetSourcedDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcedDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSource3dDirectSOFT`. + public static final MethodHandle MH_alGetSource3dDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSource3dDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcedvDirectSOFT`. + public static final MethodHandle MH_alGetSourcedvDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcedvDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourcei64DirectSOFT`. + public static final MethodHandle MH_alSourcei64DirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcei64DirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_LONG)); + /// The method handle of `alSource3i64DirectSOFT`. + public static final MethodHandle MH_alSource3i64DirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSource3i64DirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_LONG, ValueLayout.JAVA_LONG, ValueLayout.JAVA_LONG)); + /// The method handle of `alSourcei64vDirectSOFT`. + public static final MethodHandle MH_alSourcei64vDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcei64vDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcei64DirectSOFT`. + public static final MethodHandle MH_alGetSourcei64DirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcei64DirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSource3i64DirectSOFT`. + public static final MethodHandle MH_alGetSource3i64DirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSource3i64DirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcei64vDirectSOFT`. + public static final MethodHandle MH_alGetSourcei64vDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcei64vDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alDeferUpdatesDirectSOFT`. + public static final MethodHandle MH_alDeferUpdatesDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeferUpdatesDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS)); + /// The method handle of `alProcessUpdatesDirectSOFT`. + public static final MethodHandle MH_alProcessUpdatesDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alProcessUpdatesDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS)); + /// The method handle of `alGetStringiDirectSOFT`. + public static final MethodHandle MH_alGetStringiDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetStringiDirectSOFT", FunctionDescriptor.of(Unmarshal.STR_LAYOUT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + /// The method handle of `alEventControlDirectSOFT`. + public static final MethodHandle MH_alEventControlDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEventControlDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_BOOLEAN)); + /// The method handle of `alEventCallbackDirectSOFT`. + public static final MethodHandle MH_alEventCallbackDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEventCallbackDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetPointerDirectSOFT`. + public static final MethodHandle MH_alGetPointerDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointerDirectSOFT", FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetPointervDirectSOFT`. + public static final MethodHandle MH_alGetPointervDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointervDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alBufferCallbackDirectSOFT`. + public static final MethodHandle MH_alBufferCallbackDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferCallbackDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferPtrDirectSOFT`. + public static final MethodHandle MH_alGetBufferPtrDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferPtrDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBuffer3PtrDirectSOFT`. + public static final MethodHandle MH_alGetBuffer3PtrDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBuffer3PtrDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferPtrvDirectSOFT`. + public static final MethodHandle MH_alGetBufferPtrvDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferPtrvDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourcePlayAtTimeDirectSOFT`. + public static final MethodHandle MH_alSourcePlayAtTimeDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePlayAtTimeDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_LONG)); + /// The method handle of `alSourcePlayAtTimevDirectSOFT`. + public static final MethodHandle MH_alSourcePlayAtTimevDirectSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePlayAtTimevDirectSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_LONG)); + /// The method handle of `EAXSetDirect`. + public static final MethodHandle MH_EAXSetDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "EAXSetDirect", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `EAXGetDirect`. + public static final MethodHandle MH_EAXGetDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "EAXGetDirect", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `EAXSetBufferModeDirect`. + public static final MethodHandle MH_EAXSetBufferModeDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "EAXSetBufferModeDirect", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `EAXGetBufferModeDirect`. + public static final MethodHandle MH_EAXGetBufferModeDirect = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "EAXGetBufferModeDirect", FunctionDescriptor.of(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + } + //endregion + + public static @CType("ALCvoid *") java.lang.foreign.MemorySegment alcGetProcAddress2(@CType("ALCdevice *") java.lang.foreign.MemorySegment device, @CType("const ALCchar*") java.lang.foreign.MemorySegment funcName) { + if (Handles.MH_alcGetProcAddress2 != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alcGetProcAddress2.invokeExact(device, funcName); + } catch (Throwable e) { throw new RuntimeException("error in alcGetProcAddress2", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alcGetProcAddress2"); } + } + + public static void alEnableDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int capability) { + if (Handles.MH_alEnableDirect != null) { + try { + Handles.MH_alEnableDirect.invokeExact(context, capability); + } catch (Throwable e) { throw new RuntimeException("error in alEnableDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEnableDirect"); } + } + + public static void alDisableDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int capability) { + if (Handles.MH_alDisableDirect != null) { + try { + Handles.MH_alDisableDirect.invokeExact(context, capability); + } catch (Throwable e) { throw new RuntimeException("error in alDisableDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDisableDirect"); } + } + + public static @CType("ALboolean") boolean alIsEnabledDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int capability) { + if (Handles.MH_alIsEnabledDirect != null) { + try { + return (boolean) Handles.MH_alIsEnabledDirect.invokeExact(context, capability); + } catch (Throwable e) { throw new RuntimeException("error in alIsEnabledDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsEnabledDirect"); } + } + + public static void alDopplerFactorDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALfloat") float value) { + if (Handles.MH_alDopplerFactorDirect != null) { + try { + Handles.MH_alDopplerFactorDirect.invokeExact(context, value); + } catch (Throwable e) { throw new RuntimeException("error in alDopplerFactorDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDopplerFactorDirect"); } + } + + public static void alSpeedOfSoundDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALfloat") float value) { + if (Handles.MH_alSpeedOfSoundDirect != null) { + try { + Handles.MH_alSpeedOfSoundDirect.invokeExact(context, value); + } catch (Throwable e) { throw new RuntimeException("error in alSpeedOfSoundDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSpeedOfSoundDirect"); } + } + + public static void alDistanceModelDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int distanceModel) { + if (Handles.MH_alDistanceModelDirect != null) { + try { + Handles.MH_alDistanceModelDirect.invokeExact(context, distanceModel); + } catch (Throwable e) { throw new RuntimeException("error in alDistanceModelDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDistanceModelDirect"); } + } + + public static @CType("const ALchar*") java.lang.foreign.MemorySegment alGetStringDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param) { + if (Handles.MH_alGetStringDirect != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetStringDirect.invokeExact(context, param); + } catch (Throwable e) { throw new RuntimeException("error in alGetStringDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetStringDirect"); } + } + + public static void alGetBooleanvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALboolean *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetBooleanvDirect != null) { + try { + Handles.MH_alGetBooleanvDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetBooleanvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBooleanvDirect"); } + } + + public static void alGetIntegervDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetIntegervDirect != null) { + try { + Handles.MH_alGetIntegervDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetIntegervDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetIntegervDirect"); } + } + + public static void alGetFloatvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetFloatvDirect != null) { + try { + Handles.MH_alGetFloatvDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetFloatvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFloatvDirect"); } + } + + public static void alGetDoublevDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALdouble *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetDoublevDirect != null) { + try { + Handles.MH_alGetDoublevDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetDoublevDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetDoublevDirect"); } + } + + public static @CType("ALboolean") boolean alGetBooleanDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param) { + if (Handles.MH_alGetBooleanDirect != null) { + try { + return (boolean) Handles.MH_alGetBooleanDirect.invokeExact(context, param); + } catch (Throwable e) { throw new RuntimeException("error in alGetBooleanDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBooleanDirect"); } + } + + public static @CType("ALint") int alGetIntegerDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param) { + if (Handles.MH_alGetIntegerDirect != null) { + try { + return (int) Handles.MH_alGetIntegerDirect.invokeExact(context, param); + } catch (Throwable e) { throw new RuntimeException("error in alGetIntegerDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetIntegerDirect"); } + } + + public static @CType("ALfloat") float alGetFloatDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param) { + if (Handles.MH_alGetFloatDirect != null) { + try { + return (float) Handles.MH_alGetFloatDirect.invokeExact(context, param); + } catch (Throwable e) { throw new RuntimeException("error in alGetFloatDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFloatDirect"); } + } + + public static @CType("ALdouble") double alGetDoubleDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param) { + if (Handles.MH_alGetDoubleDirect != null) { + try { + return (double) Handles.MH_alGetDoubleDirect.invokeExact(context, param); + } catch (Throwable e) { throw new RuntimeException("error in alGetDoubleDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetDoubleDirect"); } + } + + public static @CType("ALenum") int alGetErrorDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { + if (Handles.MH_alGetErrorDirect != null) { + try { + return (int) Handles.MH_alGetErrorDirect.invokeExact(context); + } catch (Throwable e) { throw new RuntimeException("error in alGetErrorDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetErrorDirect"); } + } + + public static @CType("ALboolean") boolean alIsExtensionPresentDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("const ALchar*") java.lang.foreign.MemorySegment extname) { + if (Handles.MH_alIsExtensionPresentDirect != null) { + try { + return (boolean) Handles.MH_alIsExtensionPresentDirect.invokeExact(context, extname); + } catch (Throwable e) { throw new RuntimeException("error in alIsExtensionPresentDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsExtensionPresentDirect"); } + } + + public static @CType("void*") java.lang.foreign.MemorySegment alGetProcAddressDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("const ALchar*") java.lang.foreign.MemorySegment fname) { + if (Handles.MH_alGetProcAddressDirect != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetProcAddressDirect.invokeExact(context, fname); + } catch (Throwable e) { throw new RuntimeException("error in alGetProcAddressDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetProcAddressDirect"); } + } + + public static @CType("ALenum") int alGetEnumValueDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("const ALchar*") java.lang.foreign.MemorySegment ename) { + if (Handles.MH_alGetEnumValueDirect != null) { + try { + return (int) Handles.MH_alGetEnumValueDirect.invokeExact(context, ename); + } catch (Throwable e) { throw new RuntimeException("error in alGetEnumValueDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEnumValueDirect"); } + } + + public static void alListenerfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALfloat") float value) { + if (Handles.MH_alListenerfDirect != null) { + try { + Handles.MH_alListenerfDirect.invokeExact(context, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alListenerfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alListenerfDirect"); } + } + + public static void alListener3fDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALfloat") float value1, @CType("ALfloat") float value2, @CType("ALfloat") float value3) { + if (Handles.MH_alListener3fDirect != null) { + try { + Handles.MH_alListener3fDirect.invokeExact(context, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alListener3fDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alListener3fDirect"); } + } + + public static void alListenerfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alListenerfvDirect != null) { + try { + Handles.MH_alListenerfvDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alListenerfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alListenerfvDirect"); } + } + + public static void alListeneriDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALint") int value) { + if (Handles.MH_alListeneriDirect != null) { + try { + Handles.MH_alListeneriDirect.invokeExact(context, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alListeneriDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alListeneriDirect"); } + } + + public static void alListener3iDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALint") int value1, @CType("ALint") int value2, @CType("ALint") int value3) { + if (Handles.MH_alListener3iDirect != null) { + try { + Handles.MH_alListener3iDirect.invokeExact(context, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alListener3iDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alListener3iDirect"); } + } + + public static void alListenerivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alListenerivDirect != null) { + try { + Handles.MH_alListenerivDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alListenerivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alListenerivDirect"); } + } + + public static void alGetListenerfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetListenerfDirect != null) { + try { + Handles.MH_alGetListenerfDirect.invokeExact(context, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetListenerfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetListenerfDirect"); } + } + + public static void alGetListener3fDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment value1, @CType("ALfloat *") java.lang.foreign.MemorySegment value2, @CType("ALfloat *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetListener3fDirect != null) { + try { + Handles.MH_alGetListener3fDirect.invokeExact(context, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetListener3fDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetListener3fDirect"); } + } + + public static void alGetListenerfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetListenerfvDirect != null) { + try { + Handles.MH_alGetListenerfvDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetListenerfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetListenerfvDirect"); } + } + + public static void alGetListeneriDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetListeneriDirect != null) { + try { + Handles.MH_alGetListeneriDirect.invokeExact(context, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetListeneriDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetListeneriDirect"); } + } + + public static void alGetListener3iDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment value1, @CType("ALint *") java.lang.foreign.MemorySegment value2, @CType("ALint *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetListener3iDirect != null) { + try { + Handles.MH_alGetListener3iDirect.invokeExact(context, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetListener3iDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetListener3iDirect"); } + } + + public static void alGetListenerivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetListenerivDirect != null) { + try { + Handles.MH_alGetListenerivDirect.invokeExact(context, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetListenerivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetListenerivDirect"); } + } + + public static void alGenSourcesDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment sources) { + if (Handles.MH_alGenSourcesDirect != null) { + try { + Handles.MH_alGenSourcesDirect.invokeExact(context, n, sources); + } catch (Throwable e) { throw new RuntimeException("error in alGenSourcesDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenSourcesDirect"); } + } + + public static void alDeleteSourcesDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { + if (Handles.MH_alDeleteSourcesDirect != null) { + try { + Handles.MH_alDeleteSourcesDirect.invokeExact(context, n, sources); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteSourcesDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteSourcesDirect"); } + } + + public static @CType("ALboolean") boolean alIsSourceDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source) { + if (Handles.MH_alIsSourceDirect != null) { + try { + return (boolean) Handles.MH_alIsSourceDirect.invokeExact(context, source); + } catch (Throwable e) { throw new RuntimeException("error in alIsSourceDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsSourceDirect"); } + } + + public static void alSourcefDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALfloat") float value) { + if (Handles.MH_alSourcefDirect != null) { + try { + Handles.MH_alSourcefDirect.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alSourcefDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcefDirect"); } + } + + public static void alSource3fDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALfloat") float value1, @CType("ALfloat") float value2, @CType("ALfloat") float value3) { + if (Handles.MH_alSource3fDirect != null) { + try { + Handles.MH_alSource3fDirect.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alSource3fDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSource3fDirect"); } + } + + public static void alSourcefvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alSourcefvDirect != null) { + try { + Handles.MH_alSourcefvDirect.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alSourcefvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcefvDirect"); } + } + + public static void alSourceiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint") int value) { + if (Handles.MH_alSourceiDirect != null) { + try { + Handles.MH_alSourceiDirect.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alSourceiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceiDirect"); } + } + + public static void alSource3iDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint") int value1, @CType("ALint") int value2, @CType("ALint") int value3) { + if (Handles.MH_alSource3iDirect != null) { + try { + Handles.MH_alSource3iDirect.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alSource3iDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSource3iDirect"); } + } + + public static void alSourceivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alSourceivDirect != null) { + try { + Handles.MH_alSourceivDirect.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alSourceivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceivDirect"); } + } + + public static void alGetSourcefDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetSourcefDirect != null) { + try { + Handles.MH_alGetSourcefDirect.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcefDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcefDirect"); } + } + + public static void alGetSource3fDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment value1, @CType("ALfloat *") java.lang.foreign.MemorySegment value2, @CType("ALfloat *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetSource3fDirect != null) { + try { + Handles.MH_alGetSource3fDirect.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetSource3fDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSource3fDirect"); } + } + + public static void alGetSourcefvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetSourcefvDirect != null) { + try { + Handles.MH_alGetSourcefvDirect.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcefvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcefvDirect"); } + } + + public static void alGetSourceiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetSourceiDirect != null) { + try { + Handles.MH_alGetSourceiDirect.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourceiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourceiDirect"); } + } + + public static void alGetSource3iDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment value1, @CType("ALint *") java.lang.foreign.MemorySegment value2, @CType("ALint *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetSource3iDirect != null) { + try { + Handles.MH_alGetSource3iDirect.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetSource3iDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSource3iDirect"); } + } + + public static void alGetSourceivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetSourceivDirect != null) { + try { + Handles.MH_alGetSourceivDirect.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourceivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourceivDirect"); } + } + + public static void alSourcePlayDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source) { + if (Handles.MH_alSourcePlayDirect != null) { + try { + Handles.MH_alSourcePlayDirect.invokeExact(context, source); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePlayDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePlayDirect"); } + } + + public static void alSourceStopDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source) { + if (Handles.MH_alSourceStopDirect != null) { + try { + Handles.MH_alSourceStopDirect.invokeExact(context, source); + } catch (Throwable e) { throw new RuntimeException("error in alSourceStopDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceStopDirect"); } + } + + public static void alSourceRewindDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source) { + if (Handles.MH_alSourceRewindDirect != null) { + try { + Handles.MH_alSourceRewindDirect.invokeExact(context, source); + } catch (Throwable e) { throw new RuntimeException("error in alSourceRewindDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceRewindDirect"); } + } + + public static void alSourcePauseDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source) { + if (Handles.MH_alSourcePauseDirect != null) { + try { + Handles.MH_alSourcePauseDirect.invokeExact(context, source); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePauseDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePauseDirect"); } + } + + public static void alSourcePlayvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { + if (Handles.MH_alSourcePlayvDirect != null) { + try { + Handles.MH_alSourcePlayvDirect.invokeExact(context, n, sources); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePlayvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePlayvDirect"); } + } + + public static void alSourceStopvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { + if (Handles.MH_alSourceStopvDirect != null) { + try { + Handles.MH_alSourceStopvDirect.invokeExact(context, n, sources); + } catch (Throwable e) { throw new RuntimeException("error in alSourceStopvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceStopvDirect"); } + } + + public static void alSourceRewindvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { + if (Handles.MH_alSourceRewindvDirect != null) { + try { + Handles.MH_alSourceRewindvDirect.invokeExact(context, n, sources); + } catch (Throwable e) { throw new RuntimeException("error in alSourceRewindvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceRewindvDirect"); } + } + + public static void alSourcePausevDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources) { + if (Handles.MH_alSourcePausevDirect != null) { + try { + Handles.MH_alSourcePausevDirect.invokeExact(context, n, sources); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePausevDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePausevDirect"); } + } + + public static void alSourceQueueBuffersDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALsizei") int nb, @CType("const ALuint *") java.lang.foreign.MemorySegment buffers) { + if (Handles.MH_alSourceQueueBuffersDirect != null) { + try { + Handles.MH_alSourceQueueBuffersDirect.invokeExact(context, source, nb, buffers); + } catch (Throwable e) { throw new RuntimeException("error in alSourceQueueBuffersDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceQueueBuffersDirect"); } + } + + public static void alSourceUnqueueBuffersDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALsizei") int nb, @CType("ALuint *") java.lang.foreign.MemorySegment buffers) { + if (Handles.MH_alSourceUnqueueBuffersDirect != null) { + try { + Handles.MH_alSourceUnqueueBuffersDirect.invokeExact(context, source, nb, buffers); + } catch (Throwable e) { throw new RuntimeException("error in alSourceUnqueueBuffersDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourceUnqueueBuffersDirect"); } + } + + public static void alGenBuffersDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment buffers) { + if (Handles.MH_alGenBuffersDirect != null) { + try { + Handles.MH_alGenBuffersDirect.invokeExact(context, n, buffers); + } catch (Throwable e) { throw new RuntimeException("error in alGenBuffersDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenBuffersDirect"); } + } + + public static void alDeleteBuffersDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment buffers) { + if (Handles.MH_alDeleteBuffersDirect != null) { + try { + Handles.MH_alDeleteBuffersDirect.invokeExact(context, n, buffers); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteBuffersDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteBuffersDirect"); } + } + + public static @CType("ALboolean") boolean alIsBufferDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer) { + if (Handles.MH_alIsBufferDirect != null) { + try { + return (boolean) Handles.MH_alIsBufferDirect.invokeExact(context, buffer); + } catch (Throwable e) { throw new RuntimeException("error in alIsBufferDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsBufferDirect"); } + } + + public static void alBufferDataDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int format, @CType("const ALvoid *") java.lang.foreign.MemorySegment data, @CType("ALsizei") int size, @CType("ALsizei") int samplerate) { + if (Handles.MH_alBufferDataDirect != null) { + try { + Handles.MH_alBufferDataDirect.invokeExact(context, buffer, format, data, size, samplerate); + } catch (Throwable e) { throw new RuntimeException("error in alBufferDataDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferDataDirect"); } + } + + public static void alBufferfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALfloat") float value) { + if (Handles.MH_alBufferfDirect != null) { + try { + Handles.MH_alBufferfDirect.invokeExact(context, buffer, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alBufferfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferfDirect"); } + } + + public static void alBuffer3fDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALfloat") float value1, @CType("ALfloat") float value2, @CType("ALfloat") float value3) { + if (Handles.MH_alBuffer3fDirect != null) { + try { + Handles.MH_alBuffer3fDirect.invokeExact(context, buffer, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alBuffer3fDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBuffer3fDirect"); } + } + + public static void alBufferfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alBufferfvDirect != null) { + try { + Handles.MH_alBufferfvDirect.invokeExact(context, buffer, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alBufferfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferfvDirect"); } + } + + public static void alBufferiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALint") int value) { + if (Handles.MH_alBufferiDirect != null) { + try { + Handles.MH_alBufferiDirect.invokeExact(context, buffer, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alBufferiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferiDirect"); } + } + + public static void alBuffer3iDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALint") int value1, @CType("ALint") int value2, @CType("ALint") int value3) { + if (Handles.MH_alBuffer3iDirect != null) { + try { + Handles.MH_alBuffer3iDirect.invokeExact(context, buffer, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alBuffer3iDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBuffer3iDirect"); } + } + + public static void alBufferivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alBufferivDirect != null) { + try { + Handles.MH_alBufferivDirect.invokeExact(context, buffer, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alBufferivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferivDirect"); } + } + + public static void alGetBufferfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetBufferfDirect != null) { + try { + Handles.MH_alGetBufferfDirect.invokeExact(context, buffer, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferfDirect"); } + } + + public static void alGetBuffer3fDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment value1, @CType("ALfloat *") java.lang.foreign.MemorySegment value2, @CType("ALfloat *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetBuffer3fDirect != null) { + try { + Handles.MH_alGetBuffer3fDirect.invokeExact(context, buffer, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetBuffer3fDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBuffer3fDirect"); } + } + + public static void alGetBufferfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetBufferfvDirect != null) { + try { + Handles.MH_alGetBufferfvDirect.invokeExact(context, buffer, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferfvDirect"); } + } + + public static void alGetBufferiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetBufferiDirect != null) { + try { + Handles.MH_alGetBufferiDirect.invokeExact(context, buffer, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferiDirect"); } + } + + public static void alGetBuffer3iDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment value1, @CType("ALint *") java.lang.foreign.MemorySegment value2, @CType("ALint *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetBuffer3iDirect != null) { + try { + Handles.MH_alGetBuffer3iDirect.invokeExact(context, buffer, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetBuffer3iDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBuffer3iDirect"); } + } + + public static void alGetBufferivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetBufferivDirect != null) { + try { + Handles.MH_alGetBufferivDirect.invokeExact(context, buffer, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferivDirect"); } + } + + public static void alGenEffectsDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment effects) { + if (Handles.MH_alGenEffectsDirect != null) { + try { + Handles.MH_alGenEffectsDirect.invokeExact(context, n, effects); + } catch (Throwable e) { throw new RuntimeException("error in alGenEffectsDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenEffectsDirect"); } + } + + public static void alDeleteEffectsDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment effects) { + if (Handles.MH_alDeleteEffectsDirect != null) { + try { + Handles.MH_alDeleteEffectsDirect.invokeExact(context, n, effects); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteEffectsDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteEffectsDirect"); } + } + + public static @CType("ALboolean") boolean alIsEffectDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect) { + if (Handles.MH_alIsEffectDirect != null) { + try { + return (boolean) Handles.MH_alIsEffectDirect.invokeExact(context, effect); + } catch (Throwable e) { throw new RuntimeException("error in alIsEffectDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsEffectDirect"); } + } + + public static void alEffectiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALint") int iValue) { + if (Handles.MH_alEffectiDirect != null) { + try { + Handles.MH_alEffectiDirect.invokeExact(context, effect, param, iValue); + } catch (Throwable e) { throw new RuntimeException("error in alEffectiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffectiDirect"); } + } + + public static void alEffectivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alEffectivDirect != null) { + try { + Handles.MH_alEffectivDirect.invokeExact(context, effect, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alEffectivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffectivDirect"); } + } + + public static void alEffectfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALfloat") float flValue) { + if (Handles.MH_alEffectfDirect != null) { + try { + Handles.MH_alEffectfDirect.invokeExact(context, effect, param, flValue); + } catch (Throwable e) { throw new RuntimeException("error in alEffectfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffectfDirect"); } + } + + public static void alEffectfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alEffectfvDirect != null) { + try { + Handles.MH_alEffectfvDirect.invokeExact(context, effect, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alEffectfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEffectfvDirect"); } + } + + public static void alGetEffectiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValue) { + if (Handles.MH_alGetEffectiDirect != null) { + try { + Handles.MH_alGetEffectiDirect.invokeExact(context, effect, param, piValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffectiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffectiDirect"); } + } + + public static void alGetEffectivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alGetEffectivDirect != null) { + try { + Handles.MH_alGetEffectivDirect.invokeExact(context, effect, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffectivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffectivDirect"); } + } + + public static void alGetEffectfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValue) { + if (Handles.MH_alGetEffectfDirect != null) { + try { + Handles.MH_alGetEffectfDirect.invokeExact(context, effect, param, pflValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffectfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffectfDirect"); } + } + + public static void alGetEffectfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effect, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alGetEffectfvDirect != null) { + try { + Handles.MH_alGetEffectfvDirect.invokeExact(context, effect, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetEffectfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetEffectfvDirect"); } + } + + public static void alGenFiltersDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment filters) { + if (Handles.MH_alGenFiltersDirect != null) { + try { + Handles.MH_alGenFiltersDirect.invokeExact(context, n, filters); + } catch (Throwable e) { throw new RuntimeException("error in alGenFiltersDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenFiltersDirect"); } + } + + public static void alDeleteFiltersDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment filters) { + if (Handles.MH_alDeleteFiltersDirect != null) { + try { + Handles.MH_alDeleteFiltersDirect.invokeExact(context, n, filters); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteFiltersDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteFiltersDirect"); } + } + + public static @CType("ALboolean") boolean alIsFilterDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter) { + if (Handles.MH_alIsFilterDirect != null) { + try { + return (boolean) Handles.MH_alIsFilterDirect.invokeExact(context, filter); + } catch (Throwable e) { throw new RuntimeException("error in alIsFilterDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsFilterDirect"); } + } + + public static void alFilteriDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALint") int iValue) { + if (Handles.MH_alFilteriDirect != null) { + try { + Handles.MH_alFilteriDirect.invokeExact(context, filter, param, iValue); + } catch (Throwable e) { throw new RuntimeException("error in alFilteriDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilteriDirect"); } + } + + public static void alFilterivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alFilterivDirect != null) { + try { + Handles.MH_alFilterivDirect.invokeExact(context, filter, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alFilterivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilterivDirect"); } + } + + public static void alFilterfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALfloat") float flValue) { + if (Handles.MH_alFilterfDirect != null) { + try { + Handles.MH_alFilterfDirect.invokeExact(context, filter, param, flValue); + } catch (Throwable e) { throw new RuntimeException("error in alFilterfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilterfDirect"); } + } + + public static void alFilterfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alFilterfvDirect != null) { + try { + Handles.MH_alFilterfvDirect.invokeExact(context, filter, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alFilterfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alFilterfvDirect"); } + } + + public static void alGetFilteriDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValue) { + if (Handles.MH_alGetFilteriDirect != null) { + try { + Handles.MH_alGetFilteriDirect.invokeExact(context, filter, param, piValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilteriDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilteriDirect"); } + } + + public static void alGetFilterivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alGetFilterivDirect != null) { + try { + Handles.MH_alGetFilterivDirect.invokeExact(context, filter, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilterivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilterivDirect"); } + } + + public static void alGetFilterfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValue) { + if (Handles.MH_alGetFilterfDirect != null) { + try { + Handles.MH_alGetFilterfDirect.invokeExact(context, filter, param, pflValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilterfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilterfDirect"); } + } + + public static void alGetFilterfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int filter, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alGetFilterfvDirect != null) { + try { + Handles.MH_alGetFilterfvDirect.invokeExact(context, filter, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetFilterfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetFilterfvDirect"); } + } + + public static void alGenAuxiliaryEffectSlotsDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("ALuint *") java.lang.foreign.MemorySegment effectslots) { + if (Handles.MH_alGenAuxiliaryEffectSlotsDirect != null) { + try { + Handles.MH_alGenAuxiliaryEffectSlotsDirect.invokeExact(context, n, effectslots); + } catch (Throwable e) { throw new RuntimeException("error in alGenAuxiliaryEffectSlotsDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGenAuxiliaryEffectSlotsDirect"); } + } + + public static void alDeleteAuxiliaryEffectSlotsDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment effectslots) { + if (Handles.MH_alDeleteAuxiliaryEffectSlotsDirect != null) { + try { + Handles.MH_alDeleteAuxiliaryEffectSlotsDirect.invokeExact(context, n, effectslots); + } catch (Throwable e) { throw new RuntimeException("error in alDeleteAuxiliaryEffectSlotsDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeleteAuxiliaryEffectSlotsDirect"); } + } + + public static @CType("ALboolean") boolean alIsAuxiliaryEffectSlotDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot) { + if (Handles.MH_alIsAuxiliaryEffectSlotDirect != null) { + try { + return (boolean) Handles.MH_alIsAuxiliaryEffectSlotDirect.invokeExact(context, effectslot); + } catch (Throwable e) { throw new RuntimeException("error in alIsAuxiliaryEffectSlotDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsAuxiliaryEffectSlotDirect"); } + } + + public static void alAuxiliaryEffectSlotiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALint") int iValue) { + if (Handles.MH_alAuxiliaryEffectSlotiDirect != null) { + try { + Handles.MH_alAuxiliaryEffectSlotiDirect.invokeExact(context, effectslot, param, iValue); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSlotiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSlotiDirect"); } + } + + public static void alAuxiliaryEffectSlotivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("const ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alAuxiliaryEffectSlotivDirect != null) { + try { + Handles.MH_alAuxiliaryEffectSlotivDirect.invokeExact(context, effectslot, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSlotivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSlotivDirect"); } + } + + public static void alAuxiliaryEffectSlotfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALfloat") float flValue) { + if (Handles.MH_alAuxiliaryEffectSlotfDirect != null) { + try { + Handles.MH_alAuxiliaryEffectSlotfDirect.invokeExact(context, effectslot, param, flValue); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSlotfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSlotfDirect"); } + } + + public static void alAuxiliaryEffectSlotfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("const ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alAuxiliaryEffectSlotfvDirect != null) { + try { + Handles.MH_alAuxiliaryEffectSlotfvDirect.invokeExact(context, effectslot, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alAuxiliaryEffectSlotfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alAuxiliaryEffectSlotfvDirect"); } + } + + public static void alGetAuxiliaryEffectSlotiDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValue) { + if (Handles.MH_alGetAuxiliaryEffectSlotiDirect != null) { + try { + Handles.MH_alGetAuxiliaryEffectSlotiDirect.invokeExact(context, effectslot, param, piValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSlotiDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSlotiDirect"); } + } + + public static void alGetAuxiliaryEffectSlotivDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALint *") java.lang.foreign.MemorySegment piValues) { + if (Handles.MH_alGetAuxiliaryEffectSlotivDirect != null) { + try { + Handles.MH_alGetAuxiliaryEffectSlotivDirect.invokeExact(context, effectslot, param, piValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSlotivDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSlotivDirect"); } + } + + public static void alGetAuxiliaryEffectSlotfDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValue) { + if (Handles.MH_alGetAuxiliaryEffectSlotfDirect != null) { + try { + Handles.MH_alGetAuxiliaryEffectSlotfDirect.invokeExact(context, effectslot, param, pflValue); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSlotfDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSlotfDirect"); } + } + + public static void alGetAuxiliaryEffectSlotfvDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int effectslot, @CType("ALenum") int param, @CType("ALfloat *") java.lang.foreign.MemorySegment pflValues) { + if (Handles.MH_alGetAuxiliaryEffectSlotfvDirect != null) { + try { + Handles.MH_alGetAuxiliaryEffectSlotfvDirect.invokeExact(context, effectslot, param, pflValues); + } catch (Throwable e) { throw new RuntimeException("error in alGetAuxiliaryEffectSlotfvDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetAuxiliaryEffectSlotfvDirect"); } + } + + public static void alBufferDataStaticDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int format, @CType("ALvoid *") java.lang.foreign.MemorySegment data, @CType("ALsizei") int size, @CType("ALsizei") int freq) { + if (Handles.MH_alBufferDataStaticDirect != null) { + try { + Handles.MH_alBufferDataStaticDirect.invokeExact(context, buffer, format, data, size, freq); + } catch (Throwable e) { throw new RuntimeException("error in alBufferDataStaticDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferDataStaticDirect"); } + } + + public static void alDebugMessageCallbackDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALDEBUGPROCEXT") java.lang.foreign.MemorySegment callback, @CType("void*") java.lang.foreign.MemorySegment userParam) { + if (Handles.MH_alDebugMessageCallbackDirectEXT != null) { + try { + Handles.MH_alDebugMessageCallbackDirectEXT.invokeExact(context, callback, userParam); + } catch (Throwable e) { throw new RuntimeException("error in alDebugMessageCallbackDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDebugMessageCallbackDirectEXT"); } + } + + public static void alDebugMessageInsertDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int source, @CType("ALenum") int type, @CType("ALuint") int id, @CType("ALenum") int severity, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message) { + if (Handles.MH_alDebugMessageInsertDirectEXT != null) { + try { + Handles.MH_alDebugMessageInsertDirectEXT.invokeExact(context, source, type, id, severity, length, message); + } catch (Throwable e) { throw new RuntimeException("error in alDebugMessageInsertDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDebugMessageInsertDirectEXT"); } + } + + public static void alDebugMessageControlDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int source, @CType("ALenum") int type, @CType("ALenum") int severity, @CType("ALsizei") int count, @CType("const ALuint *") java.lang.foreign.MemorySegment ids, @CType("ALboolean") boolean enable) { + if (Handles.MH_alDebugMessageControlDirectEXT != null) { + try { + Handles.MH_alDebugMessageControlDirectEXT.invokeExact(context, source, type, severity, count, ids, enable); + } catch (Throwable e) { throw new RuntimeException("error in alDebugMessageControlDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDebugMessageControlDirectEXT"); } + } + + public static void alPushDebugGroupDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int source, @CType("ALuint") int id, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message) { + if (Handles.MH_alPushDebugGroupDirectEXT != null) { + try { + Handles.MH_alPushDebugGroupDirectEXT.invokeExact(context, source, id, length, message); + } catch (Throwable e) { throw new RuntimeException("error in alPushDebugGroupDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alPushDebugGroupDirectEXT"); } + } + + public static void alPopDebugGroupDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { + if (Handles.MH_alPopDebugGroupDirectEXT != null) { + try { + Handles.MH_alPopDebugGroupDirectEXT.invokeExact(context); + } catch (Throwable e) { throw new RuntimeException("error in alPopDebugGroupDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alPopDebugGroupDirectEXT"); } + } + + public static @CType("ALuint") int alGetDebugMessageLogDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int count, @CType("ALsizei") int logBufSize, @CType("ALenum *") java.lang.foreign.MemorySegment sources, @CType("ALenum *") java.lang.foreign.MemorySegment types, @CType("ALuint *") java.lang.foreign.MemorySegment ids, @CType("ALenum *") java.lang.foreign.MemorySegment severities, @CType("ALsizei *") java.lang.foreign.MemorySegment lengths, @CType("ALchar*") java.lang.foreign.MemorySegment logBuf) { + if (Handles.MH_alGetDebugMessageLogDirectEXT != null) { + try { + return (int) Handles.MH_alGetDebugMessageLogDirectEXT.invokeExact(context, count, logBufSize, sources, types, ids, severities, lengths, logBuf); + } catch (Throwable e) { throw new RuntimeException("error in alGetDebugMessageLogDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetDebugMessageLogDirectEXT"); } + } + + public static void alObjectLabelDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int identifier, @CType("ALuint") int name, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment label) { + if (Handles.MH_alObjectLabelDirectEXT != null) { + try { + Handles.MH_alObjectLabelDirectEXT.invokeExact(context, identifier, name, length, label); + } catch (Throwable e) { throw new RuntimeException("error in alObjectLabelDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alObjectLabelDirectEXT"); } + } + + public static void alGetObjectLabelDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int identifier, @CType("ALuint") int name, @CType("ALsizei") int bufSize, @CType("ALsizei *") java.lang.foreign.MemorySegment length, @CType("ALchar*") java.lang.foreign.MemorySegment label) { + if (Handles.MH_alGetObjectLabelDirectEXT != null) { + try { + Handles.MH_alGetObjectLabelDirectEXT.invokeExact(context, identifier, name, bufSize, length, label); + } catch (Throwable e) { throw new RuntimeException("error in alGetObjectLabelDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetObjectLabelDirectEXT"); } + } + + public static @CType("void*") java.lang.foreign.MemorySegment alGetPointerDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int pname) { + if (Handles.MH_alGetPointerDirectEXT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetPointerDirectEXT.invokeExact(context, pname); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointerDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointerDirectEXT"); } + } + + public static void alGetPointervDirectEXT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int pname, @CType("void**") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetPointervDirectEXT != null) { + try { + Handles.MH_alGetPointervDirectEXT.invokeExact(context, pname, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointervDirectEXT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointervDirectEXT"); } + } + + public static void alRequestFoldbackStartDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int mode, @CType("ALsizei") int count, @CType("ALsizei") int length, @CType("ALfloat *") java.lang.foreign.MemorySegment mem, @CType("LPALFOLDBACKCALLBACK") java.lang.foreign.MemorySegment callback) { + if (Handles.MH_alRequestFoldbackStartDirect != null) { + try { + Handles.MH_alRequestFoldbackStartDirect.invokeExact(context, mode, count, length, mem, callback); + } catch (Throwable e) { throw new RuntimeException("error in alRequestFoldbackStartDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alRequestFoldbackStartDirect"); } + } + + public static void alRequestFoldbackStopDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { + if (Handles.MH_alRequestFoldbackStopDirect != null) { + try { + Handles.MH_alRequestFoldbackStopDirect.invokeExact(context); + } catch (Throwable e) { throw new RuntimeException("error in alRequestFoldbackStopDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alRequestFoldbackStopDirect"); } + } + + public static void alBufferSubDataDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int format, @CType("const ALvoid *") java.lang.foreign.MemorySegment data, @CType("ALsizei") int offset, @CType("ALsizei") int length) { + if (Handles.MH_alBufferSubDataDirectSOFT != null) { + try { + Handles.MH_alBufferSubDataDirectSOFT.invokeExact(context, buffer, format, data, offset, length); + } catch (Throwable e) { throw new RuntimeException("error in alBufferSubDataDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferSubDataDirectSOFT"); } + } + + public static void alSourcedDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble") double value) { + if (Handles.MH_alSourcedDirectSOFT != null) { + try { + Handles.MH_alSourcedDirectSOFT.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alSourcedDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcedDirectSOFT"); } + } + + public static void alSource3dDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble") double value1, @CType("ALdouble") double value2, @CType("ALdouble") double value3) { + if (Handles.MH_alSource3dDirectSOFT != null) { + try { + Handles.MH_alSource3dDirectSOFT.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alSource3dDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSource3dDirectSOFT"); } + } + + public static void alSourcedvDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("const ALdouble *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alSourcedvDirectSOFT != null) { + try { + Handles.MH_alSourcedvDirectSOFT.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alSourcedvDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcedvDirectSOFT"); } + } + + public static void alGetSourcedDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetSourcedDirectSOFT != null) { + try { + Handles.MH_alGetSourcedDirectSOFT.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcedDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcedDirectSOFT"); } + } + + public static void alGetSource3dDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble *") java.lang.foreign.MemorySegment value1, @CType("ALdouble *") java.lang.foreign.MemorySegment value2, @CType("ALdouble *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetSource3dDirectSOFT != null) { + try { + Handles.MH_alGetSource3dDirectSOFT.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetSource3dDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSource3dDirectSOFT"); } + } + + public static void alGetSourcedvDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetSourcedvDirectSOFT != null) { + try { + Handles.MH_alGetSourcedvDirectSOFT.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcedvDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcedvDirectSOFT"); } + } + + public static void alSourcei64DirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT") long value) { + if (Handles.MH_alSourcei64DirectSOFT != null) { + try { + Handles.MH_alSourcei64DirectSOFT.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alSourcei64DirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcei64DirectSOFT"); } + } + + public static void alSource3i64DirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT") long value1, @CType("ALint64SOFT") long value2, @CType("ALint64SOFT") long value3) { + if (Handles.MH_alSource3i64DirectSOFT != null) { + try { + Handles.MH_alSource3i64DirectSOFT.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alSource3i64DirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSource3i64DirectSOFT"); } + } + + public static void alSourcei64vDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("const ALint64SOFT *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alSourcei64vDirectSOFT != null) { + try { + Handles.MH_alSourcei64vDirectSOFT.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alSourcei64vDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcei64vDirectSOFT"); } + } + + public static void alGetSourcei64DirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetSourcei64DirectSOFT != null) { + try { + Handles.MH_alGetSourcei64DirectSOFT.invokeExact(context, source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcei64DirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcei64DirectSOFT"); } + } + + public static void alGetSource3i64DirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value1, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value2, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetSource3i64DirectSOFT != null) { + try { + Handles.MH_alGetSource3i64DirectSOFT.invokeExact(context, source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetSource3i64DirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSource3i64DirectSOFT"); } + } + + public static void alGetSourcei64vDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetSourcei64vDirectSOFT != null) { + try { + Handles.MH_alGetSourcei64vDirectSOFT.invokeExact(context, source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcei64vDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcei64vDirectSOFT"); } + } + + public static void alDeferUpdatesDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { + if (Handles.MH_alDeferUpdatesDirectSOFT != null) { + try { + Handles.MH_alDeferUpdatesDirectSOFT.invokeExact(context); + } catch (Throwable e) { throw new RuntimeException("error in alDeferUpdatesDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeferUpdatesDirectSOFT"); } + } + + public static void alProcessUpdatesDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context) { + if (Handles.MH_alProcessUpdatesDirectSOFT != null) { + try { + Handles.MH_alProcessUpdatesDirectSOFT.invokeExact(context); + } catch (Throwable e) { throw new RuntimeException("error in alProcessUpdatesDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alProcessUpdatesDirectSOFT"); } + } + + public static @CType("const ALchar*") java.lang.foreign.MemorySegment alGetStringiDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int pname, @CType("ALsizei") int index) { + if (Handles.MH_alGetStringiDirectSOFT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetStringiDirectSOFT.invokeExact(context, pname, index); + } catch (Throwable e) { throw new RuntimeException("error in alGetStringiDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetStringiDirectSOFT"); } + } + + public static void alEventControlDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int count, @CType("const ALenum *") java.lang.foreign.MemorySegment types, @CType("ALboolean") boolean enable) { + if (Handles.MH_alEventControlDirectSOFT != null) { + try { + Handles.MH_alEventControlDirectSOFT.invokeExact(context, count, types, enable); + } catch (Throwable e) { throw new RuntimeException("error in alEventControlDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEventControlDirectSOFT"); } + } + + public static void alEventCallbackDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALEVENTPROCSOFT") java.lang.foreign.MemorySegment callback, @CType("void*") java.lang.foreign.MemorySegment userParam) { + if (Handles.MH_alEventCallbackDirectSOFT != null) { + try { + Handles.MH_alEventCallbackDirectSOFT.invokeExact(context, callback, userParam); + } catch (Throwable e) { throw new RuntimeException("error in alEventCallbackDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEventCallbackDirectSOFT"); } + } + + public static @CType("void*") java.lang.foreign.MemorySegment alGetPointerDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int pname) { + if (Handles.MH_alGetPointerDirectSOFT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetPointerDirectSOFT.invokeExact(context, pname); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointerDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointerDirectSOFT"); } + } + + public static void alGetPointervDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALenum") int pname, @CType("void**") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetPointervDirectSOFT != null) { + try { + Handles.MH_alGetPointervDirectSOFT.invokeExact(context, pname, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointervDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointervDirectSOFT"); } + } + + public static void alBufferCallbackDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int format, @CType("ALsizei") int freq, @CType("ALBUFFERCALLBACKTYPESOFT") java.lang.foreign.MemorySegment callback, @CType("ALvoid *") java.lang.foreign.MemorySegment userptr) { + if (Handles.MH_alBufferCallbackDirectSOFT != null) { + try { + Handles.MH_alBufferCallbackDirectSOFT.invokeExact(context, buffer, format, freq, callback, userptr); + } catch (Throwable e) { throw new RuntimeException("error in alBufferCallbackDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferCallbackDirectSOFT"); } + } + + public static void alGetBufferPtrDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr) { + if (Handles.MH_alGetBufferPtrDirectSOFT != null) { + try { + Handles.MH_alGetBufferPtrDirectSOFT.invokeExact(context, buffer, param, ptr); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferPtrDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferPtrDirectSOFT"); } + } + + public static void alGetBuffer3PtrDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr0, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr1, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr2) { + if (Handles.MH_alGetBuffer3PtrDirectSOFT != null) { + try { + Handles.MH_alGetBuffer3PtrDirectSOFT.invokeExact(context, buffer, param, ptr0, ptr1, ptr2); + } catch (Throwable e) { throw new RuntimeException("error in alGetBuffer3PtrDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBuffer3PtrDirectSOFT"); } + } + + public static void alGetBufferPtrvDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr) { + if (Handles.MH_alGetBufferPtrvDirectSOFT != null) { + try { + Handles.MH_alGetBufferPtrvDirectSOFT.invokeExact(context, buffer, param, ptr); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferPtrvDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferPtrvDirectSOFT"); } + } + + public static void alSourcePlayAtTimeDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int source, @CType("ALint64SOFT") long start_time) { + if (Handles.MH_alSourcePlayAtTimeDirectSOFT != null) { + try { + Handles.MH_alSourcePlayAtTimeDirectSOFT.invokeExact(context, source, start_time); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePlayAtTimeDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePlayAtTimeDirectSOFT"); } + } + + public static void alSourcePlayAtTimevDirectSOFT(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources, @CType("ALint64SOFT") long start_time) { + if (Handles.MH_alSourcePlayAtTimevDirectSOFT != null) { + try { + Handles.MH_alSourcePlayAtTimevDirectSOFT.invokeExact(context, n, sources, start_time); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePlayAtTimevDirectSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePlayAtTimevDirectSOFT"); } + } + + public static @CType("ALenum") int EAXSetDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("const struct _GUID *") java.lang.foreign.MemorySegment property_set_id, @CType("ALuint") int property_id, @CType("ALuint") int source_id, @CType("ALvoid *") java.lang.foreign.MemorySegment value, @CType("ALuint") int value_size) { + if (Handles.MH_EAXSetDirect != null) { + try { + return (int) Handles.MH_EAXSetDirect.invokeExact(context, property_set_id, property_id, source_id, value, value_size); + } catch (Throwable e) { throw new RuntimeException("error in EAXSetDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: EAXSetDirect"); } + } + + public static @CType("ALenum") int EAXGetDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("const struct _GUID *") java.lang.foreign.MemorySegment property_set_id, @CType("ALuint") int property_id, @CType("ALuint") int source_id, @CType("ALvoid *") java.lang.foreign.MemorySegment value, @CType("ALuint") int value_size) { + if (Handles.MH_EAXGetDirect != null) { + try { + return (int) Handles.MH_EAXGetDirect.invokeExact(context, property_set_id, property_id, source_id, value, value_size); + } catch (Throwable e) { throw new RuntimeException("error in EAXGetDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: EAXGetDirect"); } + } + + public static @CType("ALboolean") boolean EAXSetBufferModeDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment buffers, @CType("ALint") int value) { + if (Handles.MH_EAXSetBufferModeDirect != null) { + try { + return (boolean) Handles.MH_EAXSetBufferModeDirect.invokeExact(context, n, buffers, value); + } catch (Throwable e) { throw new RuntimeException("error in EAXSetBufferModeDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: EAXSetBufferModeDirect"); } + } + + public static @CType("ALenum") int EAXGetBufferModeDirect(@CType("ALCcontext *") java.lang.foreign.MemorySegment context, @CType("ALuint") int buffer, @CType("ALint *") java.lang.foreign.MemorySegment pReserved) { + if (Handles.MH_EAXGetBufferModeDirect != null) { + try { + return (int) Handles.MH_EAXGetBufferModeDirect.invokeExact(context, buffer, pReserved); + } catch (Throwable e) { throw new RuntimeException("error in EAXGetBufferModeDirect", e); } + } else { throw new SymbolNotFoundError("Symbol not found: EAXGetBufferModeDirect"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTDirectContext() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDouble.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDouble.java new file mode 100644 index 00000000..0b04018e --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTDouble.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTDouble { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_MONO_DOUBLE_EXT = 0x10012; + public static final int AL_FORMAT_STEREO_DOUBLE_EXT = 0x10013; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTDouble() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTFOLDBACK.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTFOLDBACK.java new file mode 100644 index 00000000..18e5ee4e --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTFOLDBACK.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALEXTFOLDBACK { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final java.lang.String AL_EXT_FOLDBACK_NAME = "AL_EXT_FOLDBACK"; + public static final int AL_FOLDBACK_EVENT_BLOCK = 0x4112; + public static final int AL_FOLDBACK_EVENT_START = 0x4111; + public static final int AL_FOLDBACK_EVENT_STOP = 0x4113; + public static final int AL_FOLDBACK_MODE_MONO = 0x4101; + public static final int AL_FOLDBACK_MODE_STEREO = 0x4102; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alRequestFoldbackStart`. + public static final MethodHandle MH_alRequestFoldbackStart = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alRequestFoldbackStart", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alRequestFoldbackStop`. + public static final MethodHandle MH_alRequestFoldbackStop = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alRequestFoldbackStop", FunctionDescriptor.ofVoid()); + } + //endregion + + public static void alRequestFoldbackStart(@CType("ALenum") int mode, @CType("ALsizei") int count, @CType("ALsizei") int length, @CType("ALfloat *") java.lang.foreign.MemorySegment mem, @CType("LPALFOLDBACKCALLBACK") java.lang.foreign.MemorySegment callback) { + if (Handles.MH_alRequestFoldbackStart != null) { + try { + Handles.MH_alRequestFoldbackStart.invokeExact(mode, count, length, mem, callback); + } catch (Throwable e) { throw new RuntimeException("error in alRequestFoldbackStart", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alRequestFoldbackStart"); } + } + + public static void alRequestFoldbackStop() { + if (Handles.MH_alRequestFoldbackStop != null) { + try { + Handles.MH_alRequestFoldbackStop.invokeExact(); + } catch (Throwable e) { throw new RuntimeException("error in alRequestFoldbackStop", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alRequestFoldbackStop"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTFOLDBACK() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTFloat32.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTFloat32.java new file mode 100644 index 00000000..5d9b9f8d --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTFloat32.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTFloat32 { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_MONO_FLOAT32 = 0x10010; + public static final int AL_FORMAT_STEREO_FLOAT32 = 0x10011; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTFloat32() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTIMA4.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTIMA4.java new file mode 100644 index 00000000..75d7b041 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTIMA4.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTIMA4 { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_MONO_IMA4 = 0x1300; + public static final int AL_FORMAT_STEREO_IMA4 = 0x1301; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTIMA4() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMCFORMATS.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMCFORMATS.java new file mode 100644 index 00000000..9ec5da52 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMCFORMATS.java @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTMCFORMATS { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_QUAD8 = 0x1204; + public static final int AL_FORMAT_QUAD16 = 0x1205; + public static final int AL_FORMAT_QUAD32 = 0x1206; + public static final int AL_FORMAT_REAR8 = 0x1207; + public static final int AL_FORMAT_REAR16 = 0x1208; + public static final int AL_FORMAT_REAR32 = 0x1209; + public static final int AL_FORMAT_51CHN8 = 0x120A; + public static final int AL_FORMAT_51CHN16 = 0x120B; + public static final int AL_FORMAT_51CHN32 = 0x120C; + public static final int AL_FORMAT_61CHN8 = 0x120D; + public static final int AL_FORMAT_61CHN16 = 0x120E; + public static final int AL_FORMAT_61CHN32 = 0x120F; + public static final int AL_FORMAT_71CHN8 = 0x1210; + public static final int AL_FORMAT_71CHN16 = 0x1211; + public static final int AL_FORMAT_71CHN32 = 0x1212; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTMCFORMATS() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAW.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAW.java new file mode 100644 index 00000000..8a560d1f --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAW.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTMULAW { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_MONO_MULAW_EXT = 0x10014; + public static final int AL_FORMAT_STEREO_MULAW_EXT = 0x10015; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTMULAW() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAWBFORMAT.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAWBFORMAT.java new file mode 100644 index 00000000..5550dbe1 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAWBFORMAT.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTMULAWBFORMAT { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_BFORMAT2D_MULAW = 0x10031; + public static final int AL_FORMAT_BFORMAT3D_MULAW = 0x10032; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTMULAWBFORMAT() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAWMCFORMATS.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAWMCFORMATS.java new file mode 100644 index 00000000..61e3d64b --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTMULAWMCFORMATS.java @@ -0,0 +1,36 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTMULAWMCFORMATS { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_MONO_MULAW = 0x10014; + public static final int AL_FORMAT_STEREO_MULAW = 0x10015; + public static final int AL_FORMAT_QUAD_MULAW = 0x10021; + public static final int AL_FORMAT_REAR_MULAW = 0x10022; + public static final int AL_FORMAT_51CHN_MULAW = 0x10023; + public static final int AL_FORMAT_61CHN_MULAW = 0x10024; + public static final int AL_FORMAT_71CHN_MULAW = 0x10025; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTMULAWMCFORMATS() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSOURCERADIUS.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSOURCERADIUS.java new file mode 100644 index 00000000..c229cfc6 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSOURCERADIUS.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTSOURCERADIUS { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_SOURCE_RADIUS = 0x1031; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTSOURCERADIUS() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSTATICBUFFER.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSTATICBUFFER.java new file mode 100644 index 00000000..cc50effb --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSTATICBUFFER.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALEXTSTATICBUFFER { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alBufferDataStatic`. + public static final MethodHandle MH_alBufferDataStatic = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferDataStatic", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + } + //endregion + + public static void alBufferDataStatic(@CType("const ALuint") int buffer, @CType("ALenum") int format, @CType("ALvoid *") java.lang.foreign.MemorySegment data, @CType("ALsizei") int size, @CType("ALsizei") int freq) { + if (Handles.MH_alBufferDataStatic != null) { + try { + Handles.MH_alBufferDataStatic.invokeExact(buffer, format, data, size, freq); + } catch (Throwable e) { throw new RuntimeException("error in alBufferDataStatic", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferDataStatic"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTSTATICBUFFER() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSTEREOANGLES.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSTEREOANGLES.java new file mode 100644 index 00000000..11d5e197 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSTEREOANGLES.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTSTEREOANGLES { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_STEREO_ANGLES = 0x1030; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTSTEREOANGLES() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSourceDistanceModel.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSourceDistanceModel.java new file mode 100644 index 00000000..463bfee8 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTSourceDistanceModel.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTSourceDistanceModel { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_SOURCE_DISTANCE_MODEL = 0x200; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTSourceDistanceModel() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTVorbis.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTVorbis.java new file mode 100644 index 00000000..91e04378 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEXTVorbis.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALEXTVorbis { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_VORBIS_EXT = 0x10003; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALEXTVorbis() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALEventProcSOFT.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEventProcSOFT.java new file mode 100644 index 00000000..1bbed5df --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALEventProcSOFT.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; + +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.upcall.*; +import overrungl.util.*; + +@FunctionalInterface +public interface ALEventProcSOFT extends Upcall { + /// The function descriptor. + FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, Unmarshal.STR_LAYOUT, ValueLayout.ADDRESS); + /// The method handle of the target method. + MethodHandle HANDLE = Upcall.findTarget(ALEventProcSOFT.class, "invoke", DESCRIPTOR); + + ///The target method of the upcall. + void invoke(@CType("ALenum") int eventType, @CType("ALuint") int object, @CType("ALuint") int param, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message, @CType("void*") java.lang.foreign.MemorySegment userParam); + + @Override + default MemorySegment stub(Arena arena) { return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, arena); } + + ///A static invoker of the target method. + ///@param stub the upcall stub + static void invoke(MemorySegment stub, @CType("ALenum") int eventType, @CType("ALuint") int object, @CType("ALuint") int param, @CType("ALsizei") int length, @CType("const ALchar*") java.lang.foreign.MemorySegment message, @CType("void*") java.lang.foreign.MemorySegment userParam) { + try { HANDLE.invokeExact(stub, eventType, object, param, length, message, userParam); } + catch (Throwable e) { throw new RuntimeException("error in ALEventProcSOFT::invoke (static invoker)", e); } + } + + /// A wrapper for the target method. + /// @param stub the upcall stub + /// @return an instance that wraps the static invoker + static ALEventProcSOFT wrap(MemorySegment stub) { + return (eventType, object, param, length, message, userParam) -> { try (var __overrungl_stack = MemoryStack.pushLocal()) { + invoke(stub, eventType, object, param, length, Marshal.marshal(__overrungl_stack, message), userParam); + } }; + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALFoldbackCallback.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALFoldbackCallback.java new file mode 100644 index 00000000..8f16c514 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALFoldbackCallback.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; + +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.upcall.*; +import overrungl.util.*; + +@FunctionalInterface +public interface ALFoldbackCallback extends Upcall { + /// The function descriptor. + FunctionDescriptor DESCRIPTOR = FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT); + /// The method handle of the target method. + MethodHandle HANDLE = Upcall.findTarget(ALFoldbackCallback.class, "invoke", DESCRIPTOR); + + ///The target method of the upcall. + void invoke(@CType("ALenum") int mode, @CType("ALsizei") int count); + + @Override + default MemorySegment stub(Arena arena) { return Linker.nativeLinker().upcallStub(HANDLE.bindTo(this), DESCRIPTOR, arena); } + + ///A static invoker of the target method. + ///@param stub the upcall stub + static void invoke(MemorySegment stub, @CType("ALenum") int mode, @CType("ALsizei") int count) { + try { HANDLE.invokeExact(stub, mode, count); } + catch (Throwable e) { throw new RuntimeException("error in ALFoldbackCallback::invoke (static invoker)", e); } + } + + /// A wrapper for the target method. + /// @param stub the upcall stub + /// @return an instance that wraps the static invoker + static ALFoldbackCallback wrap(MemorySegment stub) { + return (mode, count) -> + invoke(stub, mode, count); + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIIMAADPCMFormat.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIIMAADPCMFormat.java new file mode 100644 index 00000000..18ebbb4f --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIIMAADPCMFormat.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALLOKIIMAADPCMFormat { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_IMA_ADPCM_MONO16_EXT = 0x10000; + public static final int AL_FORMAT_IMA_ADPCM_STEREO16_EXT = 0x10001; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALLOKIIMAADPCMFormat() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIQuadriphonic.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIQuadriphonic.java new file mode 100644 index 00000000..e6f32e56 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIQuadriphonic.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALLOKIQuadriphonic { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_QUAD8_LOKI = 0x10004; + public static final int AL_FORMAT_QUAD16_LOKI = 0x10005; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALLOKIQuadriphonic() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIWAVEFormat.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIWAVEFormat.java new file mode 100644 index 00000000..a216e7f2 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALLOKIWAVEFormat.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALLOKIWAVEFormat { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_WAVE_EXT = 0x10002; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALLOKIWAVEFormat() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBformatEx.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBformatEx.java new file mode 100644 index 00000000..e8819516 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBformatEx.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTBformatEx { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_AMBISONIC_LAYOUT_SOFT = 0x1997; + public static final int AL_AMBISONIC_SCALING_SOFT = 0x1998; + public static final int AL_FUMA_SOFT = 0x0000; + public static final int AL_ACN_SOFT = 0x0001; + public static final int AL_SN3D_SOFT = 0x0001; + public static final int AL_N3D_SOFT = 0x0002; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTBformatEx() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBformatHoa.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBformatHoa.java new file mode 100644 index 00000000..29a10870 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBformatHoa.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTBformatHoa { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_UNPACK_AMBISONIC_ORDER_SOFT = 0x199D; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTBformatHoa() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBlockAlignment.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBlockAlignment.java new file mode 100644 index 00000000..047be0e4 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBlockAlignment.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTBlockAlignment { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_UNPACK_BLOCK_ALIGNMENT_SOFT = 0x200C; + public static final int AL_PACK_BLOCK_ALIGNMENT_SOFT = 0x200D; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTBlockAlignment() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBufferSamples.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBufferSamples.java new file mode 100644 index 00000000..e65443c7 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBufferSamples.java @@ -0,0 +1,123 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTBufferSamples { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_MONO_SOFT = 0x1500; + public static final int AL_STEREO_SOFT = 0x1501; + public static final int AL_REAR_SOFT = 0x1502; + public static final int AL_QUAD_SOFT = 0x1503; + public static final int AL_5POINT1_SOFT = 0x1504; + public static final int AL_6POINT1_SOFT = 0x1505; + public static final int AL_7POINT1_SOFT = 0x1506; + public static final int AL_BYTE_SOFT = 0x1400; + public static final int AL_UNSIGNED_BYTE_SOFT = 0x1401; + public static final int AL_SHORT_SOFT = 0x1402; + public static final int AL_UNSIGNED_SHORT_SOFT = 0x1403; + public static final int AL_INT_SOFT = 0x1404; + public static final int AL_UNSIGNED_INT_SOFT = 0x1405; + public static final int AL_FLOAT_SOFT = 0x1406; + public static final int AL_DOUBLE_SOFT = 0x1407; + public static final int AL_BYTE3_SOFT = 0x1408; + public static final int AL_UNSIGNED_BYTE3_SOFT = 0x1409; + public static final int AL_MONO8_SOFT = 0x1100; + public static final int AL_MONO16_SOFT = 0x1101; + public static final int AL_MONO32F_SOFT = 0x10010; + public static final int AL_STEREO8_SOFT = 0x1102; + public static final int AL_STEREO16_SOFT = 0x1103; + public static final int AL_STEREO32F_SOFT = 0x10011; + public static final int AL_QUAD8_SOFT = 0x1204; + public static final int AL_QUAD16_SOFT = 0x1205; + public static final int AL_QUAD32F_SOFT = 0x1206; + public static final int AL_REAR8_SOFT = 0x1207; + public static final int AL_REAR16_SOFT = 0x1208; + public static final int AL_REAR32F_SOFT = 0x1209; + public static final int AL_5POINT1_8_SOFT = 0x120A; + public static final int AL_5POINT1_16_SOFT = 0x120B; + public static final int AL_5POINT1_32F_SOFT = 0x120C; + public static final int AL_6POINT1_8_SOFT = 0x120D; + public static final int AL_6POINT1_16_SOFT = 0x120E; + public static final int AL_6POINT1_32F_SOFT = 0x120F; + public static final int AL_7POINT1_8_SOFT = 0x1210; + public static final int AL_7POINT1_16_SOFT = 0x1211; + public static final int AL_7POINT1_32F_SOFT = 0x1212; + public static final int AL_INTERNAL_FORMAT_SOFT = 0x2008; + public static final int AL_BYTE_LENGTH_SOFT = 0x2009; + public static final int AL_SAMPLE_LENGTH_SOFT = 0x200A; + public static final int AL_SEC_LENGTH_SOFT = 0x200B; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alBufferSamplesSOFT`. + public static final MethodHandle MH_alBufferSamplesSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferSamplesSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alBufferSubSamplesSOFT`. + public static final MethodHandle MH_alBufferSubSamplesSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferSubSamplesSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferSamplesSOFT`. + public static final MethodHandle MH_alGetBufferSamplesSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferSamplesSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alIsBufferFormatSupportedSOFT`. + public static final MethodHandle MH_alIsBufferFormatSupportedSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alIsBufferFormatSupportedSOFT", FunctionDescriptor.of(ValueLayout.JAVA_BOOLEAN, ValueLayout.JAVA_INT)); + } + //endregion + + public static void alBufferSamplesSOFT(@CType("ALuint") int buffer, @CType("ALuint") int samplerate, @CType("ALenum") int internalformat, @CType("ALsizei") int samples, @CType("ALenum") int channels, @CType("ALenum") int type, @CType("const ALvoid *") java.lang.foreign.MemorySegment data) { + if (Handles.MH_alBufferSamplesSOFT != null) { + try { + Handles.MH_alBufferSamplesSOFT.invokeExact(buffer, samplerate, internalformat, samples, channels, type, data); + } catch (Throwable e) { throw new RuntimeException("error in alBufferSamplesSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferSamplesSOFT"); } + } + + public static void alBufferSubSamplesSOFT(@CType("ALuint") int buffer, @CType("ALsizei") int offset, @CType("ALsizei") int samples, @CType("ALenum") int channels, @CType("ALenum") int type, @CType("const ALvoid *") java.lang.foreign.MemorySegment data) { + if (Handles.MH_alBufferSubSamplesSOFT != null) { + try { + Handles.MH_alBufferSubSamplesSOFT.invokeExact(buffer, offset, samples, channels, type, data); + } catch (Throwable e) { throw new RuntimeException("error in alBufferSubSamplesSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferSubSamplesSOFT"); } + } + + public static void alGetBufferSamplesSOFT(@CType("ALuint") int buffer, @CType("ALsizei") int offset, @CType("ALsizei") int samples, @CType("ALenum") int channels, @CType("ALenum") int type, @CType("ALvoid *") java.lang.foreign.MemorySegment data) { + if (Handles.MH_alGetBufferSamplesSOFT != null) { + try { + Handles.MH_alGetBufferSamplesSOFT.invokeExact(buffer, offset, samples, channels, type, data); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferSamplesSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferSamplesSOFT"); } + } + + public static @CType("ALboolean") boolean alIsBufferFormatSupportedSOFT(@CType("ALenum") int format) { + if (Handles.MH_alIsBufferFormatSupportedSOFT != null) { + try { + return (boolean) Handles.MH_alIsBufferFormatSupportedSOFT.invokeExact(format); + } catch (Throwable e) { throw new RuntimeException("error in alIsBufferFormatSupportedSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alIsBufferFormatSupportedSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTBufferSamples() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBufferSubData.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBufferSubData.java new file mode 100644 index 00000000..d3cd683d --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTBufferSubData.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTBufferSubData { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_BYTE_RW_OFFSETS_SOFT = 0x1031; + public static final int AL_SAMPLE_RW_OFFSETS_SOFT = 0x1032; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alBufferSubDataSOFT`. + public static final MethodHandle MH_alBufferSubDataSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferSubDataSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + } + //endregion + + public static void alBufferSubDataSOFT(@CType("ALuint") int buffer, @CType("ALenum") int format, @CType("const ALvoid *") java.lang.foreign.MemorySegment data, @CType("ALsizei") int offset, @CType("ALsizei") int length) { + if (Handles.MH_alBufferSubDataSOFT != null) { + try { + Handles.MH_alBufferSubDataSOFT.invokeExact(buffer, format, data, offset, length); + } catch (Throwable e) { throw new RuntimeException("error in alBufferSubDataSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferSubDataSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTBufferSubData() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTCallbackBuffer.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTCallbackBuffer.java new file mode 100644 index 00000000..00baf07e --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTCallbackBuffer.java @@ -0,0 +1,83 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTCallbackBuffer { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_BUFFER_CALLBACK_FUNCTION_SOFT = 0x19A0; + public static final int AL_BUFFER_CALLBACK_USER_PARAM_SOFT = 0x19A1; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alBufferCallbackSOFT`. + public static final MethodHandle MH_alBufferCallbackSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alBufferCallbackSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferPtrSOFT`. + public static final MethodHandle MH_alGetBufferPtrSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferPtrSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetBuffer3PtrSOFT`. + public static final MethodHandle MH_alGetBuffer3PtrSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBuffer3PtrSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetBufferPtrvSOFT`. + public static final MethodHandle MH_alGetBufferPtrvSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetBufferPtrvSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + } + //endregion + + public static void alBufferCallbackSOFT(@CType("ALuint") int buffer, @CType("ALenum") int format, @CType("ALsizei") int freq, @CType("ALBUFFERCALLBACKTYPESOFT") java.lang.foreign.MemorySegment callback, @CType("ALvoid *") java.lang.foreign.MemorySegment userptr) { + if (Handles.MH_alBufferCallbackSOFT != null) { + try { + Handles.MH_alBufferCallbackSOFT.invokeExact(buffer, format, freq, callback, userptr); + } catch (Throwable e) { throw new RuntimeException("error in alBufferCallbackSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alBufferCallbackSOFT"); } + } + + public static void alGetBufferPtrSOFT(@CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr) { + if (Handles.MH_alGetBufferPtrSOFT != null) { + try { + Handles.MH_alGetBufferPtrSOFT.invokeExact(buffer, param, ptr); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferPtrSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferPtrSOFT"); } + } + + public static void alGetBuffer3PtrSOFT(@CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr0, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr1, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr2) { + if (Handles.MH_alGetBuffer3PtrSOFT != null) { + try { + Handles.MH_alGetBuffer3PtrSOFT.invokeExact(buffer, param, ptr0, ptr1, ptr2); + } catch (Throwable e) { throw new RuntimeException("error in alGetBuffer3PtrSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBuffer3PtrSOFT"); } + } + + public static void alGetBufferPtrvSOFT(@CType("ALuint") int buffer, @CType("ALenum") int param, @CType("ALvoid **") java.lang.foreign.MemorySegment ptr) { + if (Handles.MH_alGetBufferPtrvSOFT != null) { + try { + Handles.MH_alGetBufferPtrvSOFT.invokeExact(buffer, param, ptr); + } catch (Throwable e) { throw new RuntimeException("error in alGetBufferPtrvSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetBufferPtrvSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTCallbackBuffer() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDeferredUpdates.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDeferredUpdates.java new file mode 100644 index 00000000..48baa428 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDeferredUpdates.java @@ -0,0 +1,62 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTDeferredUpdates { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_DEFERRED_UPDATES_SOFT = 0xC002; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alDeferUpdatesSOFT`. + public static final MethodHandle MH_alDeferUpdatesSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alDeferUpdatesSOFT", FunctionDescriptor.ofVoid()); + /// The method handle of `alProcessUpdatesSOFT`. + public static final MethodHandle MH_alProcessUpdatesSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alProcessUpdatesSOFT", FunctionDescriptor.ofVoid()); + } + //endregion + + public static void alDeferUpdatesSOFT() { + if (Handles.MH_alDeferUpdatesSOFT != null) { + try { + Handles.MH_alDeferUpdatesSOFT.invokeExact(); + } catch (Throwable e) { throw new RuntimeException("error in alDeferUpdatesSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alDeferUpdatesSOFT"); } + } + + public static void alProcessUpdatesSOFT() { + if (Handles.MH_alProcessUpdatesSOFT != null) { + try { + Handles.MH_alProcessUpdatesSOFT.invokeExact(); + } catch (Throwable e) { throw new RuntimeException("error in alProcessUpdatesSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alProcessUpdatesSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTDeferredUpdates() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDirectChannels.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDirectChannels.java new file mode 100644 index 00000000..960aadf5 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDirectChannels.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTDirectChannels { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_DIRECT_CHANNELS_SOFT = 0x1033; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTDirectChannels() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDirectChannelsRemix.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDirectChannelsRemix.java new file mode 100644 index 00000000..9f0d41a9 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTDirectChannelsRemix.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTDirectChannelsRemix { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_DROP_UNMATCHED_SOFT = 0x0001; + public static final int AL_REMIX_UNMATCHED_SOFT = 0x0002; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTDirectChannelsRemix() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTEffectTarget.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTEffectTarget.java new file mode 100644 index 00000000..2b88b95d --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTEffectTarget.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTEffectTarget { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_EFFECTSLOT_TARGET_SOFT = 0x199C; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTEffectTarget() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTEvents.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTEvents.java new file mode 100644 index 00000000..d90500c6 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTEvents.java @@ -0,0 +1,86 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTEvents { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_EVENT_CALLBACK_FUNCTION_SOFT = 0x19A2; + public static final int AL_EVENT_CALLBACK_USER_PARAM_SOFT = 0x19A3; + public static final int AL_EVENT_TYPE_BUFFER_COMPLETED_SOFT = 0x19A4; + public static final int AL_EVENT_TYPE_SOURCE_STATE_CHANGED_SOFT = 0x19A5; + public static final int AL_EVENT_TYPE_DISCONNECTED_SOFT = 0x19A6; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alEventControlSOFT`. + public static final MethodHandle MH_alEventControlSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEventControlSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_BOOLEAN)); + /// The method handle of `alEventCallbackSOFT`. + public static final MethodHandle MH_alEventCallbackSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alEventCallbackSOFT", FunctionDescriptor.ofVoid(ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetPointerSOFT`. + public static final MethodHandle MH_alGetPointerSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointerSOFT", FunctionDescriptor.of(ValueLayout.ADDRESS, ValueLayout.JAVA_INT)); + /// The method handle of `alGetPointervSOFT`. + public static final MethodHandle MH_alGetPointervSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetPointervSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + } + //endregion + + public static void alEventControlSOFT(@CType("ALsizei") int count, @CType("const ALenum *") java.lang.foreign.MemorySegment types, @CType("ALboolean") boolean enable) { + if (Handles.MH_alEventControlSOFT != null) { + try { + Handles.MH_alEventControlSOFT.invokeExact(count, types, enable); + } catch (Throwable e) { throw new RuntimeException("error in alEventControlSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEventControlSOFT"); } + } + + public static void alEventCallbackSOFT(@CType("ALEVENTPROCSOFT") java.lang.foreign.MemorySegment callback, @CType("void*") java.lang.foreign.MemorySegment userParam) { + if (Handles.MH_alEventCallbackSOFT != null) { + try { + Handles.MH_alEventCallbackSOFT.invokeExact(callback, userParam); + } catch (Throwable e) { throw new RuntimeException("error in alEventCallbackSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alEventCallbackSOFT"); } + } + + public static @CType("void*") java.lang.foreign.MemorySegment alGetPointerSOFT(@CType("ALenum") int pname) { + if (Handles.MH_alGetPointerSOFT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetPointerSOFT.invokeExact(pname); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointerSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointerSOFT"); } + } + + public static void alGetPointervSOFT(@CType("ALenum") int pname, @CType("void**") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetPointervSOFT != null) { + try { + Handles.MH_alGetPointervSOFT.invokeExact(pname, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetPointervSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetPointervSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTEvents() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTGainClampEx.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTGainClampEx.java new file mode 100644 index 00000000..f456f320 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTGainClampEx.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTGainClampEx { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_GAIN_LIMIT_SOFT = 0x200E; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTGainClampEx() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTLoopPoints.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTLoopPoints.java new file mode 100644 index 00000000..a55c69e2 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTLoopPoints.java @@ -0,0 +1,30 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTLoopPoints { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_LOOP_POINTS_SOFT = 0x2015; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTLoopPoints() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTMSADPCM.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTMSADPCM.java new file mode 100644 index 00000000..42a85523 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTMSADPCM.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTMSADPCM { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_MONO_MSADPCM_SOFT = 0x1302; + public static final int AL_FORMAT_STEREO_MSADPCM_SOFT = 0x1303; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTMSADPCM() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceLatency.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceLatency.java new file mode 100644 index 00000000..0f33c74f --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceLatency.java @@ -0,0 +1,163 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTSourceLatency { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_SAMPLE_OFFSET_LATENCY_SOFT = 0x1200; + public static final int AL_SEC_OFFSET_LATENCY_SOFT = 0x1201; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alSourcedSOFT`. + public static final MethodHandle MH_alSourcedSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcedSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_DOUBLE)); + /// The method handle of `alSource3dSOFT`. + public static final MethodHandle MH_alSource3dSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSource3dSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_DOUBLE, ValueLayout.JAVA_DOUBLE, ValueLayout.JAVA_DOUBLE)); + /// The method handle of `alSourcedvSOFT`. + public static final MethodHandle MH_alSourcedvSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcedvSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcedSOFT`. + public static final MethodHandle MH_alGetSourcedSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcedSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSource3dSOFT`. + public static final MethodHandle MH_alGetSource3dSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSource3dSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcedvSOFT`. + public static final MethodHandle MH_alGetSourcedvSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcedvSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alSourcei64SOFT`. + public static final MethodHandle MH_alSourcei64SOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcei64SOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_LONG)); + /// The method handle of `alSource3i64SOFT`. + public static final MethodHandle MH_alSource3i64SOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSource3i64SOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.JAVA_LONG, ValueLayout.JAVA_LONG, ValueLayout.JAVA_LONG)); + /// The method handle of `alSourcei64vSOFT`. + public static final MethodHandle MH_alSourcei64vSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcei64vSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcei64SOFT`. + public static final MethodHandle MH_alGetSourcei64SOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcei64SOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + /// The method handle of `alGetSource3i64SOFT`. + public static final MethodHandle MH_alGetSource3i64SOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSource3i64SOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.ADDRESS, ValueLayout.ADDRESS)); + /// The method handle of `alGetSourcei64vSOFT`. + public static final MethodHandle MH_alGetSourcei64vSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetSourcei64vSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_INT, ValueLayout.ADDRESS)); + } + //endregion + + public static void alSourcedSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble") double value) { + if (Handles.MH_alSourcedSOFT != null) { + try { + Handles.MH_alSourcedSOFT.invokeExact(source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alSourcedSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcedSOFT"); } + } + + public static void alSource3dSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble") double value1, @CType("ALdouble") double value2, @CType("ALdouble") double value3) { + if (Handles.MH_alSource3dSOFT != null) { + try { + Handles.MH_alSource3dSOFT.invokeExact(source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alSource3dSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSource3dSOFT"); } + } + + public static void alSourcedvSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("const ALdouble *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alSourcedvSOFT != null) { + try { + Handles.MH_alSourcedvSOFT.invokeExact(source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alSourcedvSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcedvSOFT"); } + } + + public static void alGetSourcedSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetSourcedSOFT != null) { + try { + Handles.MH_alGetSourcedSOFT.invokeExact(source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcedSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcedSOFT"); } + } + + public static void alGetSource3dSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble *") java.lang.foreign.MemorySegment value1, @CType("ALdouble *") java.lang.foreign.MemorySegment value2, @CType("ALdouble *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetSource3dSOFT != null) { + try { + Handles.MH_alGetSource3dSOFT.invokeExact(source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetSource3dSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSource3dSOFT"); } + } + + public static void alGetSourcedvSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALdouble *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetSourcedvSOFT != null) { + try { + Handles.MH_alGetSourcedvSOFT.invokeExact(source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcedvSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcedvSOFT"); } + } + + public static void alSourcei64SOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT") long value) { + if (Handles.MH_alSourcei64SOFT != null) { + try { + Handles.MH_alSourcei64SOFT.invokeExact(source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alSourcei64SOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcei64SOFT"); } + } + + public static void alSource3i64SOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT") long value1, @CType("ALint64SOFT") long value2, @CType("ALint64SOFT") long value3) { + if (Handles.MH_alSource3i64SOFT != null) { + try { + Handles.MH_alSource3i64SOFT.invokeExact(source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alSource3i64SOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSource3i64SOFT"); } + } + + public static void alSourcei64vSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("const ALint64SOFT *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alSourcei64vSOFT != null) { + try { + Handles.MH_alSourcei64vSOFT.invokeExact(source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alSourcei64vSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcei64vSOFT"); } + } + + public static void alGetSourcei64SOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value) { + if (Handles.MH_alGetSourcei64SOFT != null) { + try { + Handles.MH_alGetSourcei64SOFT.invokeExact(source, param, value); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcei64SOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcei64SOFT"); } + } + + public static void alGetSource3i64SOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value1, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value2, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment value3) { + if (Handles.MH_alGetSource3i64SOFT != null) { + try { + Handles.MH_alGetSource3i64SOFT.invokeExact(source, param, value1, value2, value3); + } catch (Throwable e) { throw new RuntimeException("error in alGetSource3i64SOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSource3i64SOFT"); } + } + + public static void alGetSourcei64vSOFT(@CType("ALuint") int source, @CType("ALenum") int param, @CType("ALint64SOFT *") java.lang.foreign.MemorySegment values) { + if (Handles.MH_alGetSourcei64vSOFT != null) { + try { + Handles.MH_alGetSourcei64vSOFT.invokeExact(source, param, values); + } catch (Throwable e) { throw new RuntimeException("error in alGetSourcei64vSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetSourcei64vSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTSourceLatency() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceResampler.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceResampler.java new file mode 100644 index 00000000..32264f6b --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceResampler.java @@ -0,0 +1,55 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTSourceResampler { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_NUM_RESAMPLERS_SOFT = 0x1210; + public static final int AL_DEFAULT_RESAMPLER_SOFT = 0x1211; + public static final int AL_SOURCE_RESAMPLER_SOFT = 0x1212; + public static final int AL_RESAMPLER_NAME_SOFT = 0x1213; + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alGetStringiSOFT`. + public static final MethodHandle MH_alGetStringiSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alGetStringiSOFT", FunctionDescriptor.of(Unmarshal.STR_LAYOUT, ValueLayout.JAVA_INT, ValueLayout.JAVA_INT)); + } + //endregion + + public static @CType("const ALchar*") java.lang.foreign.MemorySegment alGetStringiSOFT(@CType("ALenum") int pname, @CType("ALsizei") int index) { + if (Handles.MH_alGetStringiSOFT != null) { + try { + return (java.lang.foreign.MemorySegment) Handles.MH_alGetStringiSOFT.invokeExact(pname, index); + } catch (Throwable e) { throw new RuntimeException("error in alGetStringiSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alGetStringiSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTSourceResampler() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceSpatialize.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceSpatialize.java new file mode 100644 index 00000000..f05d5656 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceSpatialize.java @@ -0,0 +1,31 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTSourceSpatialize { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_SOURCE_SPATIALIZE_SOFT = 0x1214; + public static final int AL_AUTO_SOFT = 0x0002; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTSourceSpatialize() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceStartDelay.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceStartDelay.java new file mode 100644 index 00000000..87878630 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTSourceStartDelay.java @@ -0,0 +1,61 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +import java.lang.foreign.*; +import java.lang.invoke.*; +import overrungl.annotation.*; +import overrungl.internal.*; +import overrungl.util.*; +public final class ALSOFTSourceStartDelay { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + //endregion + //region Method handles + /// Method handles. + public static final class Handles { + private Handles() { } + /// The method handle of `alSourcePlayAtTimeSOFT`. + public static final MethodHandle MH_alSourcePlayAtTimeSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePlayAtTimeSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.JAVA_LONG)); + /// The method handle of `alSourcePlayAtTimevSOFT`. + public static final MethodHandle MH_alSourcePlayAtTimevSOFT = RuntimeHelper.downcallOrNull(ALInternal.lookup(), "alSourcePlayAtTimevSOFT", FunctionDescriptor.ofVoid(ValueLayout.JAVA_INT, ValueLayout.ADDRESS, ValueLayout.JAVA_LONG)); + } + //endregion + + public static void alSourcePlayAtTimeSOFT(@CType("ALuint") int source, @CType("ALint64SOFT") long start_time) { + if (Handles.MH_alSourcePlayAtTimeSOFT != null) { + try { + Handles.MH_alSourcePlayAtTimeSOFT.invokeExact(source, start_time); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePlayAtTimeSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePlayAtTimeSOFT"); } + } + + public static void alSourcePlayAtTimevSOFT(@CType("ALsizei") int n, @CType("const ALuint *") java.lang.foreign.MemorySegment sources, @CType("ALint64SOFT") long start_time) { + if (Handles.MH_alSourcePlayAtTimevSOFT != null) { + try { + Handles.MH_alSourcePlayAtTimevSOFT.invokeExact(n, sources, start_time); + } catch (Throwable e) { throw new RuntimeException("error in alSourcePlayAtTimevSOFT", e); } + } else { throw new SymbolNotFoundError("Symbol not found: alSourcePlayAtTimevSOFT"); } + } + + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTSourceStartDelay() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTUHJ.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTUHJ.java new file mode 100644 index 00000000..70972d91 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTUHJ.java @@ -0,0 +1,42 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTUHJ { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_UHJ2CHN8_SOFT = 0x19A2; + public static final int AL_FORMAT_UHJ2CHN16_SOFT = 0x19A3; + public static final int AL_FORMAT_UHJ2CHN_FLOAT32_SOFT = 0x19A4; + public static final int AL_FORMAT_UHJ3CHN8_SOFT = 0x19A5; + public static final int AL_FORMAT_UHJ3CHN16_SOFT = 0x19A6; + public static final int AL_FORMAT_UHJ3CHN_FLOAT32_SOFT = 0x19A7; + public static final int AL_FORMAT_UHJ4CHN8_SOFT = 0x19A8; + public static final int AL_FORMAT_UHJ4CHN16_SOFT = 0x19A9; + public static final int AL_FORMAT_UHJ4CHN_FLOAT32_SOFT = 0x19AA; + public static final int AL_STEREO_MODE_SOFT = 0x19B0; + public static final int AL_NORMAL_SOFT = 0x0000; + public static final int AL_SUPER_STEREO_SOFT = 0x0001; + public static final int AL_SUPER_STEREO_WIDTH_SOFT = 0x19B1; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTUHJ() { + } +} diff --git a/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTUHJEx.java b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTUHJEx.java new file mode 100644 index 00000000..3566b7e5 --- /dev/null +++ b/modules/overrungl.openal/src/main/java/overrungl/openal/ALSOFTUHJEx.java @@ -0,0 +1,37 @@ +/* + * MIT License + * + * Copyright (c) 2022-2025 Overrun Organization + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + */ + +// This file is auto-generated. DO NOT EDIT! +package overrungl.openal; +public final class ALSOFTUHJEx { + //region ---[BEGIN GENERATOR BEGIN]--- + //@formatter:off + //region Fields + public static final int AL_FORMAT_UHJ2CHN_MULAW_SOFT = 0x19B3; + public static final int AL_FORMAT_UHJ2CHN_ALAW_SOFT = 0x19B4; + public static final int AL_FORMAT_UHJ2CHN_IMA4_SOFT = 0x19B5; + public static final int AL_FORMAT_UHJ2CHN_MSADPCM_SOFT = 0x19B6; + public static final int AL_FORMAT_UHJ3CHN_MULAW_SOFT = 0x19B7; + public static final int AL_FORMAT_UHJ3CHN_ALAW_SOFT = 0x19B8; + public static final int AL_FORMAT_UHJ4CHN_MULAW_SOFT = 0x19B9; + public static final int AL_FORMAT_UHJ4CHN_ALAW_SOFT = 0x19BA; + //endregion + //@formatter:on + //endregion ---[END GENERATOR END]--- + + private ALSOFTUHJEx() { + } +}