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