# This .cfg file is used to generate the JOAL interface. Include joal-common.cfg Style InterfaceAndImpl JavaClass AL ImplPackage net.java.games.joal.impl ImplJavaClass ALImpl Extends AL ALConstants EmitProcAddressTable true ProcAddressTableClassName ALProcAddressTable GetProcAddressTableExpr ALProcAddressLookup.getALProcAddressTable() ProcAddressNameExpr LP $UPPERCASE({0}) Import net.java.games.joal.* Import net.java.games.joal.impl.* Import com.sun.gluegen.runtime.* # Factor out the OpenAL constants into their own interface Ignore ^AL_.+ # alGetProcAddress is broken for core OpenAL routines at least up # through OpenAL 1.1, so we have to implement our own dlsym() # operation in order to populate the ALProcAddressTable and # ALCProcAddressTable. If / when it is fixed and we don't need # compatibility with preexisting OpenAL 1.0 and 1.1 installations we # can enable the code below, except presumably for the bootstrapping # routines alcOpenDevice, alcCreateContext, alcMakeContextCurrent, and # alGetProcAddress itself. Ignore alGetProcAddress # This routine is not exposed in the public API # AccessControl alGetProcAddress PACKAGE_PRIVATE # We also have to hack its return type for now because we can't make # just that void* opaque # Opaque long ALproc # This routine doesn't seem to exist Ignore alHint # Mappings for data types Opaque boolean ALboolean # These routines use or return strings ReturnsString alGetString ArgumentIsString alIsExtensionPresent 0 ArgumentIsString alGetEnumValue 0 ArgumentIsString alGetProcAddress 0 # Provide #includes to native code CustomCCode #include "al.h" CustomCCode #ifndef _MSC_VER /* Non-Windows platforms */ CustomCCode #define __cdecl /* Trim non-standard keyword */ CustomCCode #endif CustomCCode #include "efx.h" IncludeAs CustomCCode joal-common-CustomCCode.c