2
0
Эх сурвалжийг харах

Copying android native from trunk to the new structure.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/branches/gradle-restructure@10966 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
PSp..om 11 жил өмнө
parent
commit
836123d0f4

+ 55 - 0
jme3-android-native/src/native/android/Android.mk

@@ -0,0 +1,55 @@
+TARGET_PLATFORM := android-9
+
+ROOT_PATH := $(call my-dir)
+
+########################################################################################################
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE     := openalsoftjme
+LOCAL_ARM_MODE   := arm
+LOCAL_PATH       := $(ROOT_PATH)
+LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/include $(LOCAL_PATH)/OpenAL32/Include
+
+LOCAL_CFLAGS     := -ffast-math -DAL_BUILD_LIBRARY -DAL_ALEXT_PROTOTYPES
+LOCAL_LDLIBS     := -llog -Wl,-s
+LOCAL_LDLIBS    += -lOpenSLES
+#  LOCAL_CFLAGS +=   -DPOST_FROYO #-I$(ANDROID_NDK_ROOT)/platforms/android-9/arch-arm/usr/include/
+#  LOCAL_LDLIBS += -ldl -L$(ANDROID_NDK_ROOT)/platforms/android-9/arch-arm/usr/lib/
+
+LOCAL_SRC_FILES  := OpenAL32/alAuxEffectSlot.c \
+                    OpenAL32/alBuffer.c        \
+                    OpenAL32/alEffect.c        \
+                    OpenAL32/alError.c         \
+                    OpenAL32/alExtension.c     \
+                    OpenAL32/alFilter.c        \
+                    OpenAL32/alListener.c      \
+                    OpenAL32/alSource.c        \
+                    OpenAL32/alState.c         \
+                    OpenAL32/alThunk.c         \
+                    Alc/ALc.c                  \
+                    Alc/ALu.c                  \
+                    Alc/alcChorus.c            \
+                    Alc/alcConfig.c            \
+                    Alc/alcDedicated.c         \
+                    Alc/alcEcho.c              \
+                    Alc/alcFlanger.c           \
+                    Alc/alcModulator.c         \
+                    Alc/alcReverb.c            \
+                    Alc/alcRing.c              \
+                    Alc/alcThread.c            \
+                    Alc/bs2b.c                 \
+                    Alc/helpers.c              \
+                    Alc/panning.c              \
+                    Alc/hrtf.c                 \
+                    Alc/mixer.c                \
+                    Alc/mixer_c.c              \
+                    Alc/backends/loopback.c    \
+                    Alc/backends/null.c        \
+                    Alc/backends/opensl.c      \
+                    com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.cpp
+#                    Alc/backends/alsa.c        \
+#                    Alc/backends/android.c     \
+
+include $(BUILD_SHARED_LIBRARY)
+

+ 3 - 0
jme3-android-native/src/native/android/Application.mk

@@ -0,0 +1,3 @@
+APP_OPTIM := release
+APP_ABI := all
+#APP_ABI := armeabi-v7a

+ 483 - 0
jme3-android-native/src/native/android/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.cpp

@@ -0,0 +1,483 @@
+#include "com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.h"
+#include "AL/alc.h"
+#include "AL/al.h"
+#include "AL/alext.h"
+// for __android_log_print(ANDROID_LOG_INFO, "YourApp", "formatted message");
+#include <android/log.h>
+#include <jni.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <assert.h>
+#include <string.h>
+#include <time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static jboolean created = JNI_FALSE;
+
+#define BUFFER_COUNT 1
+ALuint* buffers[BUFFER_COUNT] = { 0 };
+ALuint* source = 0;
+
+int getError() {
+    int errorcode = alGetError();
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "getError: %d", errorcode);
+    return errorcode;
+}
+
+/* InitAL opens the default device and sets up a context using default
+ * attributes, making the program ready to call OpenAL functions. */
+int InitAL()
+{
+    ALCdevice *device;
+    ALCcontext *ctx;
+
+    /* Open and initialize a device with default settings */
+    device = alcOpenDevice(NULL);
+    if(!device)
+    {
+        fprintf(stderr, "Could not open a device!\n");
+        return 1;
+    }
+
+    ctx = alcCreateContext(device, NULL);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "NULL: %d", NULL);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Created context: %d", ctx);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Created context addr: %d", &ctx);
+    if(ctx == NULL || alcMakeContextCurrent(ctx) == ALC_FALSE)
+    {
+        if(ctx != NULL)
+            alcDestroyContext(ctx);
+        alcCloseDevice(device);
+        fprintf(stderr, "Could not set a context!\n");
+        return 1;
+    }
+
+    printf("Opened \"%s\"\n", alcGetString(device, ALC_DEVICE_SPECIFIER));
+    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Opened %s", alcGetString(device, ALC_DEVICE_SPECIFIER));
+    return 0;
+}
+
+/* CloseAL closes the device belonging to the current context, and destroys the
+ * context. */
+void CloseAL()
+{
+    ALCdevice *device;
+    ALCcontext *ctx;
+    ALCboolean result;
+
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Getting current context");
+    ctx = alcGetCurrentContext();
+//    getError();
+    if(ctx == NULL){
+        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "No context found");
+        return;
+    }
+
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Getting current context device");
+    device = alcGetContextsDevice(ctx);
+    if(device == NULL) {
+        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "No device found");
+        return;
+    } else {
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcGetContextsDevice device: %d", device);
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcGetContextsDevice device addr: %d", &device);
+    }
+//    getError();
+
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Setting context to NULL");
+    result = alcMakeContextCurrent(NULL);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcMakeContextCurrent returned");
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcMakeContextCurrent returned with result: %d", result);
+    if(!result) {
+        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcMakeContextCurrent failed");
+        return;
+    }
+
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Destroying context: %d", ctx);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Destroying context addr: %d", &ctx);
+    alcDestroyContext(ctx);
+
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Closing device");
+    result = alcCloseDevice(device);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcCloseDevice result: %d", result);
+}
+
+
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alIsCreated
+  (JNIEnv* env, jclass)
+{
+    return created;
+}
+
+
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alCreate
+  (JNIEnv* env, jclass)
+{
+    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "Starting Audio Engine");
+
+    InitAL();
+    created = JNI_TRUE;
+    return created;
+
+}
+
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDestroy
+  (JNIEnv* env, jclass)
+{
+
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDestroy");
+    CloseAL();
+    created = JNI_FALSE;
+    return created;
+
+}
+
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcGetString
+  (JNIEnv* env, jclass, jint param)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcGetString for param: %d", param);
+
+    ALCdevice *device;
+    ALCcontext *ctx;
+
+    ctx = alcGetCurrentContext();
+    if(ctx != NULL) {
+        device = alcGetContextsDevice(ctx);
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcGetString param value: %s", alcGetString(device, param));
+        return env->NewStringUTF(alcGetString(device, param));
+    }
+}
+
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetString
+  (JNIEnv* env, jclass, jint param)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGetString for param: %d", param);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGetString param value: %s", alGetString(param));
+    return env->NewStringUTF(alGetString(param));
+}
+
+JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenSources
+  (JNIEnv *, jclass)
+{
+    ALuint source;
+    alGenSources(1, &source);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGenSources: %d", source);
+    return source;
+}
+
+JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetError
+  (JNIEnv *, jclass)
+{
+    return getError();
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteSources
+  (JNIEnv* env, jclass, jint numSources, jobject intbufSources)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteSources numSources: %d", numSources);
+
+    ALuint* pIntBufSources = (ALuint*) env->GetDirectBufferAddress(intbufSources);
+    alDeleteSources((ALsizei)numSources, pIntBufSources);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenBuffers
+  (JNIEnv* env, jclass, jint numBuffers, jobject intbufBuffers)
+{
+    ALuint* pIntBufBuffers = (ALuint*) env->GetDirectBufferAddress(intbufBuffers);
+    alGenBuffers((ALsizei)numBuffers, pIntBufBuffers);
+//    for (int i=0; i<numBuffers; i++) {
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGenBuffers[%d]: %d", i, *(pIntBufBuffers+i));
+//    }
+
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteBuffers
+  (JNIEnv* env, jclass, jint numBuffers, jobject intbufBuffers)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteBuffers numBuffers: %d", numBuffers);
+
+    ALuint* pIntBufBuffers = (ALuint*) env->GetDirectBufferAddress(intbufBuffers);
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteBuffers Buffers: %d", *pIntBufBuffers);
+//    for (int i=0; i<numBuffers; i++) {
+//        if(alIsBuffer(*(pIntBufBuffers+i)) == AL_TRUE) {
+//            __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteBuffers[%d]: %d", i, *(pIntBufBuffers+i));
+//            __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteBuffers buffer is a known buffer");
+//        }
+//    }
+    alDeleteBuffers((ALsizei)numBuffers, pIntBufBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceStop
+  (JNIEnv *, jclass, jint source)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourceStop for source: %d", source);
+    alSourceStop((ALuint)source);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcei
+  (JNIEnv *, jclass, jint source, jint param, jint value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourcei for source: %d, param: %d, value: %d", source, param, value);
+    alSourcei((ALuint)source, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alBufferData
+  (JNIEnv* env, jclass, jint buffer, jint format, jobject bufferData, jint bufferSize, jint frequency)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alBufferData for source: %d, format: %d, size: %d, frequency: %d", buffer, format, bufferSize, frequency);
+    ALuint* pBufferData = (ALuint*) env->GetDirectBufferAddress(bufferData);
+    alBufferData((ALuint)buffer, (ALenum)format, pBufferData, (ALsizei)bufferSize, (ALsizei)frequency);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcePlay
+  (JNIEnv *, jclass, jint source)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourcePlay for source: %d", source);
+    alSourcePlay((ALuint)source);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcePause
+  (JNIEnv *, jclass, jint source)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourcePause for source: %d", source);
+    alSourcePause((ALuint)source);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcef
+  (JNIEnv *, jclass, jint source, jint param, jfloat value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourcef for source: %d, param: %d, value: %f", source, param, value);
+    alSourcef((ALuint)source, (ALenum)param, (ALfloat)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSource3f
+  (JNIEnv *, jclass, jint source, jint param, jfloat value1, jfloat value2, jfloat value3)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSource3f for source: %d, param: %d, value1: %f, value2: %f, value3: %f", source, param, value1, value2, value3);
+    alSource3f((ALuint)source, (ALenum)param, (ALfloat)value1, (ALfloat)value2, (ALfloat)value3);
+}
+
+JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetSourcei
+  (JNIEnv *, jclass, jint source, jint param)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGetSourcei for source: %d, param: %d", source, param);
+    ALint result;
+    alGetSourcei((ALuint)source, (ALenum)param, &result);
+    return (jint)result;
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceUnqueueBuffers
+  (JNIEnv* env, jclass, jint source, jint numBuffers, jobject buffers)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourceUnqueueBuffers for source: %d, numBuffers: %d", source, numBuffers);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffers);
+
+//    for (ALuint i=0; i<numBuffers; i++) {
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourceUnqueueBuffers, checking buffer[%d]: %d", i, *(pBuffers+i));
+//        ALboolean isBuffer = alIsBuffer(*(pBuffers+i));
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "buffer check result: %d", isBuffer);
+//    }
+    alSourceUnqueueBuffers((ALuint)source, (ALsizei)numBuffers, pBuffers);
+//    for (ALuint i=0; i<numBuffers; i++) {
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourceUnqueueBuffers[%d]: %d", i, *(pBuffers+i));
+//    }
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceQueueBuffers
+  (JNIEnv* env, jclass, jint source, jint numBuffers, jobject buffers)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourceQueueBuffers for source: %d, numBuffers: %d", source, numBuffers);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffers);
+    alSourceQueueBuffers((ALuint)source, (ALsizei)numBuffers, pBuffers);
+//    for (ALuint i=0; i<numBuffers; i++) {
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSourceQueueBuffers[%d]: %d", i, *(pBuffers+i));
+//    }
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListener
+  (JNIEnv* env, jclass, jint param, jobject bufferData)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alListener for param: %d", param);
+    ALfloat* pBufferData = (ALfloat*) env->GetDirectBufferAddress(bufferData);
+    alListenerfv((ALenum)param, pBufferData);
+//    getError();
+//    for (int i=0; i<4; i++) {
+//        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alListener[%d]: %f", i, *(pBufferData+(i*sizeof(ALfloat))));
+//    }
+
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListenerf
+  (JNIEnv *, jclass, jint param, jfloat value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alListenerf for param: %d, value: %f", param, value);
+    alListenerf((ALenum)param, (ALfloat)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListener3f
+  (JNIEnv *, jclass, jint param, jfloat value1, jfloat value2, jfloat value3)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alListener3f for param: %d, value1: %f, value2: %f, value3: %f", param, value1, value2, value3);
+    alListener3f((ALenum)param, (ALfloat)value1, (ALfloat)value2, (ALfloat)value3);
+}
+
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcIsExtensionPresent
+  (JNIEnv* env, jclass, jstring extension)
+{
+
+    ALCdevice *device;
+    ALCcontext *ctx;
+    ALboolean result;
+//    char buf[128];
+    const char* strExtension;
+    jsize strLength = env->GetStringUTFLength(extension);
+
+    ctx = alcGetCurrentContext();
+    if(ctx != NULL) {
+        device = alcGetContextsDevice(ctx);
+
+        if (device != NULL) {
+            strExtension = env->GetStringUTFChars(extension, NULL);
+            if (strExtension == NULL) {
+                return JNI_FALSE; /* OutOfMemoryError already thrown */
+            }
+//            __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcIsExtensionPresent for param: %s with size: %d", strExtension, strLength);
+
+            result = alcIsExtensionPresent(device, strExtension);
+//            __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcIsExtensionPresent found: %d", result);
+
+            env->ReleaseStringUTFChars(extension, strExtension);
+
+            return (jboolean)result;
+        } else {
+            __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "device is null in alcIsExtensionPresent");
+        }
+
+    } else {
+        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "current context is null in alcIsExtensionPresent");
+    }
+
+    return JNI_FALSE;
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcGetInteger
+  (JNIEnv* env, jclass, jint param, jobject buffer, jint bufferSize)
+{
+    ALCdevice *device;
+    ALCcontext *ctx;
+
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alcGetInteger for param: %d", param);
+    ALCint* pBuffers = (ALCint*) env->GetDirectBufferAddress(buffer);
+
+    ctx = alcGetCurrentContext();
+    if(ctx != NULL) {
+        device = alcGetContextsDevice(ctx);
+
+        if (device != NULL) {
+            alcGetIntegerv(device, (ALCenum)param, (ALCsizei)bufferSize, pBuffers);
+        } else {
+            __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "device is null in alcGetInteger");
+        }
+
+    } else {
+        __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "current context is null in alcGetInteger");
+    }
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenAuxiliaryEffectSlots
+  (JNIEnv* env, jclass, jint numSlots, jobject buffer)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGenAuxiliaryEffectSlots for numSlots: %d", numSlots);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffer);
+    alGenAuxiliaryEffectSlots((ALsizei)numSlots, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenEffects
+  (JNIEnv* env, jclass, jint numEffects, jobject buffer)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGenEffects for numEffects: %d", numEffects);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffer);
+    alGenEffects((ALsizei)numEffects, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alEffecti
+  (JNIEnv *, jclass, jint effect, jint param, jint value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alEffecti for effect: %d, param: %d, value: %d", effect, param, value);
+    alEffecti((ALuint)effect, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alAuxiliaryEffectSloti
+  (JNIEnv *, jclass, jint effectSlot, jint param, jint value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alAuxiliaryEffectSloti for effect: %d, param: %d, value: %d", effectSlot, param, value);
+    alAuxiliaryEffectSloti((ALuint)effectSlot, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteEffects
+  (JNIEnv* env, jclass, jint numEffects, jobject buffer)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteEffects for numEffects: %d", numEffects);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffer);
+    alDeleteEffects((ALsizei)numEffects, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteAuxiliaryEffectSlots
+  (JNIEnv* env, jclass, jint numEffectSlots, jobject buffer)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteAuxiliaryEffectSlots for numEffectSlots: %d", numEffectSlots);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffer);
+    alDeleteAuxiliaryEffectSlots((ALsizei)numEffectSlots, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenFilters
+  (JNIEnv* env, jclass, jint numFilters, jobject buffer)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alGenFilters for numFilters: %d", numFilters);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffer);
+    alGenFilters((ALsizei)numFilters, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alFilteri
+  (JNIEnv *, jclass, jint filter, jint param, jint value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alFilteri for filter: %d, param: %d, value: %d", filter, param, value);
+    alFilteri((ALuint)filter, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alFilterf
+  (JNIEnv *, jclass, jint filter, jint param, jfloat value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alFilterf for filter: %d, param: %d, value: %f", filter, param, value);
+    alFilterf((ALuint)filter, (ALenum)param, (ALfloat)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSource3i
+  (JNIEnv *, jclass, jint source, jint param, jint value1, jint value2, jint value3)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alSource3i for source: %d, param: %d, value1: %d, value2: %d, value3: %d", source, param, value1, value2, value3);
+    alSource3i((ALuint)source, (ALenum)param, (ALint)value1, (ALint)value2, (ALint)value3);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteFilters
+  (JNIEnv* env, jclass, jint numFilters, jobject buffer)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteFilters for numFilters: %d", numFilters);
+    ALuint* pBuffers = (ALuint*) env->GetDirectBufferAddress(buffer);
+    alDeleteFilters((ALsizei)numFilters, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alEffectf
+  (JNIEnv *, jclass, jint effect, jint param, jfloat value)
+{
+//    __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alEffectf for effect: %d, param: %d, value: %d", effect, param, value);
+    alEffectf((ALuint)effect, (ALenum)param, (ALfloat)value);
+}
+
+
+#ifdef __cplusplus
+}
+#endif

+ 319 - 0
jme3-android-native/src/native/android/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.h

@@ -0,0 +1,319 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_jme3_audio_android_AndroidOpenALSoftAudioRenderer */
+
+#ifndef _Included_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+#define _Included_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* Inaccessible static: logger */
+#undef com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_BUFFER_SIZE
+#define com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_BUFFER_SIZE 35280L
+#undef com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_STREAMING_BUFFER_COUNT
+#define com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_STREAMING_BUFFER_COUNT 5L
+#undef com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_MAX_NUM_CHANNELS
+#define com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_MAX_NUM_CHANNELS 64L
+#undef com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_UPDATE_RATE
+#define com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_UPDATE_RATE 0.05f
+/* Inaccessible static: _00024assertionsDisabled */
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alIsCreated
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alIsCreated
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alCreate
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alCreate
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alDestroy
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDestroy
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alcGetString
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcGetString
+  (JNIEnv *, jclass, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGetString
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetString
+  (JNIEnv *, jclass, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGenSources
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenSources
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGetError
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetError
+  (JNIEnv *, jclass);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alDeleteSources
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteSources
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGenBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenBuffers
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alDeleteBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteBuffers
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSourceStop
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceStop
+  (JNIEnv *, jclass, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSourcei
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcei
+  (JNIEnv *, jclass, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alBufferData
+ * Signature: (IILjava/nio/ByteBuffer;II)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alBufferData
+  (JNIEnv *, jclass, jint, jint, jobject, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSourcePlay
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcePlay
+  (JNIEnv *, jclass, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSourcePause
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcePause
+  (JNIEnv *, jclass, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSourcef
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcef
+  (JNIEnv *, jclass, jint, jint, jfloat);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSource3f
+ * Signature: (IIFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSource3f
+  (JNIEnv *, jclass, jint, jint, jfloat, jfloat, jfloat);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGetSourcei
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetSourcei
+  (JNIEnv *, jclass, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSourceUnqueueBuffers
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceUnqueueBuffers
+  (JNIEnv *, jclass, jint, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSourceQueueBuffers
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceQueueBuffers
+  (JNIEnv *, jclass, jint, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alListener
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListener
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alListenerf
+ * Signature: (IF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListenerf
+  (JNIEnv *, jclass, jint, jfloat);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alListener3f
+ * Signature: (IFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListener3f
+  (JNIEnv *, jclass, jint, jfloat, jfloat, jfloat);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alcIsExtensionPresent
+ * Signature: (Ljava/lang/String;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcIsExtensionPresent
+  (JNIEnv *, jclass, jstring);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alcGetInteger
+ * Signature: (ILjava/nio/IntBuffer;I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcGetInteger
+  (JNIEnv *, jclass, jint, jobject, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGenAuxiliaryEffectSlots
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenAuxiliaryEffectSlots
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGenEffects
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenEffects
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alEffecti
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alEffecti
+  (JNIEnv *, jclass, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alAuxiliaryEffectSloti
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alAuxiliaryEffectSloti
+  (JNIEnv *, jclass, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alDeleteEffects
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteEffects
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alDeleteAuxiliaryEffectSlots
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteAuxiliaryEffectSlots
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alGenFilters
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenFilters
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alFilteri
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alFilteri
+  (JNIEnv *, jclass, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alFilterf
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alFilterf
+  (JNIEnv *, jclass, jint, jint, jfloat);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alSource3i
+ * Signature: (IIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSource3i
+  (JNIEnv *, jclass, jint, jint, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alDeleteFilters
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteFilters
+  (JNIEnv *, jclass, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_android_AndroidOpenALSoftAudioRenderer
+ * Method:    alEffectf
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alEffectf
+  (JNIEnv *, jclass, jint, jint, jfloat);
+
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 147 - 0
jme3-android-native/src/native/android/config.h

@@ -0,0 +1,147 @@
+#ifndef CONFIG_H
+#define CONFIG_H
+
+/* Define to the library version */
+#define ALSOFT_VERSION "1.15.1"
+
+#define ALIGN(x) __attribute__  ((aligned(x)))
+
+/* Define if we have the Android backend */
+/* #define HAVE_ANDROID 1 */
+
+/* Define if we have the ALSA backend */
+/* #define HAVE_ALSA */
+
+/* Define if we have the OSS backend */
+/* #cmakedefine HAVE_OSS */
+
+/* Define if we have the Solaris backend */
+/* #cmakedefine HAVE_SOLARIS */
+
+/* Define if we have the SndIO backend */
+/* #cmakedefine HAVE_SNDIO */
+
+/* Define if we have the MMDevApi backend */
+/* #cmakedefine HAVE_MMDEVAPI */
+
+/* Define if we have the DSound backend */
+/* #cmakedefine HAVE_DSOUND */
+
+/* Define if we have the Windows Multimedia backend */
+/* #cmakedefine HAVE_WINMM */
+
+/* Define if we have the PortAudio backend */
+/* #cmakedefine HAVE_PORTAUDIO */
+
+/* Define if we have the PulseAudio backend */
+/* #cmakedefine HAVE_PULSEAUDIO */
+
+/* Define if we have the CoreAudio backend */
+/* #cmakedefine HAVE_COREAUDIO */
+
+/* Define if we have the OpenSL backend */
+#define HAVE_OPENSL /* THIS BACKEND WORKS ON >=2.3 Android!! */
+
+/* Define if we have the Wave Writer backend */
+/* #cmakedefine HAVE_WAVE */
+
+/* Define if we have dlfcn.h */
+#define HAVE_DLFCN_H
+
+/* Define if we have the stat function */
+#define HAVE_STAT
+
+/* Define if we have the powf function */
+/* #define HAVE_POWF 1 */
+
+/* Define if we have the sqrtf function */
+/* #define HAVE_SQRTF 1 */
+
+/* Define if we have the cosf function */
+/* #define HAVE_COSF 1 */
+
+/* Define if we have the sinf function */
+/* #define HAVE_SINF 1 */
+
+/* Define if we have the acosf function */
+/* #define HAVE_ACOSF 1 */
+
+/* Define if we have the asinf function */
+/* #define  HAVE_ASINF 1 */
+
+/* Define if we have the atanf function */
+/* #define HAVE_ATANF 1 */
+
+/* Define if we have the atan2f function */
+/* #define HAVE_ATAN2F 1 */
+
+/* Define if we have the fabsf function */
+/* #define HAVE_FABSF 1 */
+
+/* Define if we have the log10f function */
+/* #define HAVE_LOG10F 1 */
+
+/* Define if we have the floorf function */
+/* #define HAVE_FLOORF 1 */
+
+/* Define if we have the strtof function */
+#define HAVE_STRTOF
+
+/* Define if we have stdint.h */
+#define HAVE_STDINT_H
+
+/* Define if we have the __int64 type */
+/* #cmakedefine HAVE___INT64 */
+
+/* Define to the size of a long int type */
+#define SIZEOF_LONG 4
+
+/* Define to the size of a long long int type */
+#define SIZEOF_LONG_LONG 8
+
+/* Define if we have GCC's destructor attribute */
+#define HAVE_GCC_DESTRUCTOR
+
+/* Define if we have GCC's format attribute */
+#define HAVE_GCC_FORMAT
+
+/* Define if we have pthread_np.h */
+/* #cmakedefine HAVE_PTHREAD_NP_H */
+
+/* Define if we have arm_neon.h */
+/* #cmakedefine HAVE_ARM_NEON_H */
+
+/* Define if we have guiddef.h */
+/* #cmakedefine HAVE_GUIDDEF_H */
+
+/* Define if we have guiddef.h */
+/* #cmakedefine HAVE_INITGUID_H */
+
+/* Define if we have ieeefp.h */
+/* #cmakedefine HAVE_IEEEFP_H */
+
+/* Define if we have float.h */
+/* #cmakedefine HAVE_FLOAT_H */
+
+/* Define if we have fpu_control.h */
+/* #cmakedefine HAVE_FPU_CONTROL_H */
+
+/* Define if we have fenv.h */
+#define HAVE_FENV_H
+
+/* Define if we have fesetround() */
+/* #cmakedefine HAVE_FESETROUND */
+
+/* Define if we have _controlfp() */
+/* #cmakedefine HAVE__CONTROLFP */
+
+/* Define if we have pthread_setschedparam() */
+#define HAVE_PTHREAD_SETSCHEDPARAM
+
+/* Define if we have the restrict keyword */
+/* #cmakedefine  HAVE_RESTRICT 1 */
+
+/* Define if we have the __restrict keyword */
+#define RESTRICT __restrict
+
+#endif