From 2b5522690722cb3b02a4b2aced6e4bd7b2f82dfe Mon Sep 17 00:00:00 2001 From: Sven Gothel <sgothel@jausoft.com> Date: Sun, 26 Jan 2014 00:34:45 +0100 Subject: Build: Move gluegen config files into make/config (cleanup) --- make/config/joal-common-CustomJavaCode.java | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 make/config/joal-common-CustomJavaCode.java (limited to 'make/config/joal-common-CustomJavaCode.java') diff --git a/make/config/joal-common-CustomJavaCode.java b/make/config/joal-common-CustomJavaCode.java new file mode 100644 index 0000000..5df6cfd --- /dev/null +++ b/make/config/joal-common-CustomJavaCode.java @@ -0,0 +1,38 @@ +static final DynamicLibraryBundle alDynamicLookupHelper; +private static final ALProcAddressTable alProcAddressTable; + +static { + alProcAddressTable = new ALProcAddressTable(); + if(null==alProcAddressTable) { + throw new RuntimeException("Couldn't instantiate ALProcAddressTable"); + } + + alDynamicLookupHelper = AccessController.doPrivileged(new PrivilegedAction<DynamicLibraryBundle>() { + public DynamicLibraryBundle run() { + final DynamicLibraryBundle bundle = new DynamicLibraryBundle(new ALDynamicLibraryBundleInfo()); + if(null==bundle) { + throw new RuntimeException("Null ALDynamicLookupHelper"); + } + if(!bundle.isToolLibLoaded()) { + throw new RuntimeException("Couln't load native AL library"); + } + if(!bundle.isLibComplete()) { + throw new RuntimeException("Couln't load native AL/JNI glue library"); + } + alProcAddressTable.reset(bundle); + return bundle; + } } ); +} + +public static ALProcAddressTable getALProcAddressTable() { return alProcAddressTable; } + +static long alGetProcAddress(long alGetProcAddressHandle, java.lang.String procname) +{ + if (alGetProcAddressHandle == 0) { + throw new RuntimeException("Passed null pointer for method \"alGetProcAddress\""); + } + return dispatch_alGetProcAddressStatic(procname, alGetProcAddressHandle); +} + +static native long dispatch_alGetProcAddressStatic(String fname, long procAddress); + -- cgit v1.2.3