diff --git a/jme3-android-native/src/native/android/Android.mk b/jme3-android-native/src/native/android/Android.mk new file mode 100644 index 000000000..936bf3d49 --- /dev/null +++ b/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) + diff --git a/jme3-android-native/src/native/android/Application.mk b/jme3-android-native/src/native/android/Application.mk new file mode 100644 index 000000000..fcdc69644 --- /dev/null +++ b/jme3-android-native/src/native/android/Application.mk @@ -0,0 +1,3 @@ +APP_OPTIM := release +APP_ABI := all +#APP_ABI := armeabi-v7a diff --git a/jme3-android-native/src/native/android/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.cpp b/jme3-android-native/src/native/android/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.cpp new file mode 100644 index 000000000..3f118e497 --- /dev/null +++ b/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 +#include +#include +#include +#include +#include +#include + +#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; iGetDirectBufferAddress(intbufBuffers); +// __android_log_print(ANDROID_LOG_INFO, "OpenAL Soft", "alDeleteBuffers Buffers: %d", *pIntBufBuffers); +// for (int i=0; iGetDirectBufferAddress(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; iGetDirectBufferAddress(buffers); + alSourceQueueBuffers((ALuint)source, (ALsizei)numBuffers, pBuffers); +// for (ALuint i=0; iGetDirectBufferAddress(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 diff --git a/jme3-android-native/src/native/android/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.h b/jme3-android-native/src/native/android/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.h new file mode 100644 index 000000000..508b79a00 --- /dev/null +++ b/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 +/* 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 diff --git a/jme3-android-native/src/native/android/config.h b/jme3-android-native/src/native/android/config.h new file mode 100644 index 000000000..bf3ee85db --- /dev/null +++ b/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