summaryrefslogtreecommitdiffstats
path: root/make/joal-alc.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'make/joal-alc.cfg')
-rwxr-xr-xmake/joal-alc.cfg57
1 files changed, 57 insertions, 0 deletions
diff --git a/make/joal-alc.cfg b/make/joal-alc.cfg
new file mode 100755
index 0000000..cdc24bb
--- /dev/null
+++ b/make/joal-alc.cfg
@@ -0,0 +1,57 @@
+# This .cfg file is used to generate the JOAL interface.
+Include joal-common.cfg
+
+Style InterfaceAndImpl
+JavaClass ALC
+ImplPackage net.java.games.joal.impl
+ImplJavaClass ALCImpl
+Extends ALC ALCConstants
+
+EmitProcAddressTable true
+ProcAddressTableClassName ALCProcAddressTable
+GetProcAddressTableExpr ALProcAddressLookup.getALCProcAddressTable()
+ProcAddressNameExpr LP $UPPERCASE({0})
+
+Import java.nio.*
+Import net.java.games.joal.*
+Import net.java.games.joal.impl.*
+
+# Factor out the OpenAL constants into their own interface
+Ignore ^AL_.+
+Ignore ^ALC_.+
+
+# This routine is ignored. The analogous routine alGetProcAddress is
+# broken at least up through OpenAL 1.1 so there is no point in trying
+# to use this routine to look up the ALC function pointers.
+Ignore alcGetProcAddress
+
+# These routines use or return strings
+ReturnsString alcGetString
+ArgumentIsString alcIsExtensionPresent 1
+ArgumentIsString alcOpenDevice 0
+
+# Mappings for data types
+Opaque boolean ALCboolean
+
+# Provide #includes to native code
+CustomCCode #include "alc.h"
+
+# Indicate that the direct buffers for ALCcontext, etc. are "opaque",
+# i.e., the user shouldn't be poking around in them
+ReturnValueCapacity alcCreateContext 0
+ReturnValueCapacity alcGetContextsDevice 0
+ReturnValueCapacity alcGetCurrentContext 0
+ReturnValueCapacity alcGetCurrentDevice 0
+ReturnValueCapacity alcOpenDevice 0
+
+# These routines need to be statically linked for bootstrapping
+SkipProcAddressGen alcOpenDevice
+SkipProcAddressGen alcCreateContext
+SkipProcAddressGen alcMakeContextCurrent
+
+# Need an epilogue on alcOpenDevice and alcMakeContextCurrent to set
+# up the proc address tables the first time
+JavaEpilogue alcOpenDevice ALProcAddressLookup.resetALCProcAddressTable();
+JavaEpilogue alcMakeContextCurrent ALProcAddressLookup.resetALProcAddressTable();
+
+IncludeAs CustomCCode joal-common-CustomCCode.c