Almost forgot — there’s two patches to JME3 to use these projects.
Index: src/desktop/com/jme3/system/JmeSystem.java
===================================================================
--- src/desktop/com/jme3/system/JmeSystem.java (revision 8529)
+++ src/desktop/com/jme3/system/JmeSystem.java (working copy)
@@ -299,7 +299,10 @@
clazz = (Class<? extends AudioRenderer>) Class.forName("com.jme3.audio.lwjgl.LwjglAudioRenderer");
} else if (settings.getAudioRenderer().startsWith("JOAL")) {
clazz = (Class<? extends AudioRenderer>) Class.forName("com.jme3.audio.joal.JoalAudioRenderer");
- } else {
+ } else if (settings.getAudioRenderer().equals("Send")){
+ clazz = (Class<? extends AudioRenderer>) Class.forName("com.aurellem.capture.audio.AudioSendRenderer");
+ }
+ else {
throw new UnsupportedOperationException(
"Unrecognizable audio renderer specified: "
+ settings.getAudioRenderer());
Index: src/desktop/com/jme3/system/Natives.java
===================================================================
--- src/desktop/com/jme3/system/Natives.java (revision 8529)
+++ src/desktop/com/jme3/system/Natives.java (working copy)
@@ -122,7 +122,11 @@
extractNativeLib(sysName, name, load, true);
}
- protected static void extractNativeLib(String sysName, String name, boolean load, boolean warning) throws IOException {
+ protected static void extractNativeLib(String sysName, String name, boolean load, boolean warning) throws IOException{
+ extractNativeLib(sysName, name, load, warning, false);
+ }
+
+ protected static void extractNativeLib(String sysName, String name, boolean load, boolean warning, boolean force) throws IOException {
String fullname = System.mapLibraryName(name);
String path = "native/" + sysName + "/" + fullname;
@@ -148,7 +152,7 @@
long sourceLastModified = conn.getLastModified();
// Allow ~1 second range for OSes that only support low precision
- if (targetLastModified + 1000 > sourceLastModified) {
+ if ((!force) && (targetLastModified + 1000 > sourceLastModified)) {
logger.log(Level.FINE, "Not copying library {0}. Latest already extracted.", fullname);
return;
}
@@ -194,6 +198,7 @@
String audioRenderer = settings.getAudioRenderer();
boolean needLWJGL = false;
boolean needOAL = false;
+ boolean needAudioSend = false;
boolean needJInput = false;
boolean needNativeBullet = isUsingNativeBullet();
if (renderer != null) {
@@ -206,6 +211,10 @@
needLWJGL = true;
needOAL = true;
}
+ else if (audioRenderer.equals("Send")) {
+ needLWJGL = true;
+ needAudioSend = true;
+ }
}
needJInput = settings.useJoysticks();
@@ -223,8 +232,11 @@
extractNativeLib("windows", "lwjgl64");
}
if (needOAL) {
- extractNativeLib("windows", "OpenAL64");
+ extractNativeLib("windows", "OpenAL64", false, true, true);
}
+ if (needAudioSend){
+ extractNativeLib("windows/audioSend", "OpenAL64", true, true, true);
+ }
if (needJInput) {
extractNativeLib("windows", "jinput-dx8_64");
extractNativeLib("windows", "jinput-raw_64");
@@ -238,8 +250,11 @@
extractNativeLib("windows", "lwjgl");
}
if (needOAL) {
- extractNativeLib("windows", "OpenAL32");
+ extractNativeLib("windows", "OpenAL32", false, true, true);
}
+ if (needAudioSend){
+ extractNativeLib("windows/audioSend", "OpenAL32", true, true, true);
+ }
if (needJInput) {
extractNativeLib("windows", "jinput-dx8");
extractNativeLib("windows", "jinput-raw");
@@ -256,8 +271,11 @@
extractNativeLib("linux", "jinput-linux64");
}
if (needOAL) {
- extractNativeLib("linux", "openal64");
+ extractNativeLib("linux", "openal64", false, true, true);
}
+ if (needAudioSend){
+ extractNativeLib("linux/audioSend", "openal64", true, true, true);
+ }
if (needNativeBullet) {
extractNativeLib("linux", "bulletjme", true, false);
}
@@ -270,8 +288,11 @@
extractNativeLib("linux", "jinput-linux");
}
if (needOAL) {
- extractNativeLib("linux", "openal");
+ extractNativeLib("linux", "openal", false, true, true);
}
+ if (needAudioSend){
+ extractNativeLib("linux/audioSend", "openal", true, true, true);
+ }
if (needNativeBullet) {
extractNativeLib("linux", "bulletjme", true, false);
}
@@ -285,6 +306,9 @@
}
// if (needOAL)
// extractNativeLib("macosx", "openal");
+ if (needAudioSend){
+ extractNativeLib("macosx/audioSend", "openal", true, true, true);
+ }
if (needJInput) {
extractNativeLib("macosx", "jinput-osx");
}
sincerely,
–Robert McIntyre