Browse Source

Merge pull request #247 from revvv/ios-openal-fix

fix broken iOS sound support
MeFisto94 5 years ago
parent
commit
33f6e1dbee

+ 0 - 477
jme3-ios/ios-data/templates/src/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.c

@@ -1,477 +0,0 @@
-#include "com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.h"
-#include "OpenAL/alc.h"
-#include "OpenAL/al.h"
-//#include "OpenAL/alext.h"
-#include "OpenAL/oalMacOSX_OALExtensions.h"
-// for fprintf(stderr, "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>
-
-
-static jboolean created = JNI_FALSE;
-
-#define BUFFER_COUNT 1
-ALuint* buffers[BUFFER_COUNT] = { 0 };
-ALuint* source = 0;
-
-int getError() {
-    int errorcode = alGetError();
-//    fprintf(stderr, "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);
-    fprintf(stderr, "NULL: %d", NULL);
-    fprintf(stderr, "Created context: %d", ctx);
-    fprintf(stderr, "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));
-    fprintf(stderr, "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;
-
-//    fprintf(stderr, "Getting current context");
-    ctx = alcGetCurrentContext();
-//    getError();
-    if(ctx == NULL){
-        fprintf(stderr, "No context found");
-        return;
-    }
-
-//    fprintf(stderr, "Getting current context device");
-    device = alcGetContextsDevice(ctx);
-    if(device == NULL) {
-        fprintf(stderr, "No device found");
-        return;
-    } else {
-        fprintf(stderr, "alcGetContextsDevice device: %d", device);
-        fprintf(stderr, "alcGetContextsDevice device addr: %d", &device);
-    }
-//    getError();
-
-//    fprintf(stderr, "Setting context to NULL");
-    result = alcMakeContextCurrent(NULL);
-//    fprintf(stderr, "alcMakeContextCurrent returned");
-//    fprintf(stderr, "alcMakeContextCurrent returned with result: %d", result);
-    if(!result) {
-        fprintf(stderr, "alcMakeContextCurrent failed");
-        return;
-    }
-
-//    fprintf(stderr, "Destroying context: %d", ctx);
-//    fprintf(stderr, "Destroying context addr: %d", &ctx);
-    alcDestroyContext(ctx);
-
-//    fprintf(stderr, "Closing device");
-    result = alcCloseDevice(device);
-//    fprintf(stderr, "alcCloseDevice result: %d", result);
-}
-
-
-JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alIsCreated
-  (JNIEnv* env, jclass cl)
-{
-    return created;
-}
-
-
-JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alCreate
-  (JNIEnv* env, jclass cl)
-{
-//    fprintf(stderr, "Starting Audio Engine");
-
-    InitAL();
-    created = JNI_TRUE;
-    return created;
-
-}
-
-JNIEXPORT jboolean JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDestroy
-  (JNIEnv* env, jclass cl)
-{
-
-//    fprintf(stderr, "alDestroy");
-    CloseAL();
-    created = JNI_FALSE;
-    return created;
-
-}
-
-JNIEXPORT jstring JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcGetString
-  (JNIEnv* env, jclass cl, jint param)
-{
-//    fprintf(stderr, "alcGetString for param: %d", param);
-
-    ALCdevice *device;
-    ALCcontext *ctx;
-
-    ctx = alcGetCurrentContext();
-    if(ctx != NULL) {
-        device = alcGetContextsDevice(ctx);
-//        fprintf(stderr, "alcGetString param value: %s", alcGetString(device, param));
-        return (*env)->NewStringUTF(env, alcGetString(device, param));
-    }
-}
-
-JNIEXPORT jstring JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetString
-  (JNIEnv* env, jclass cl, jint param)
-{
-//    fprintf(stderr, "alGetString for param: %d", param);
-//    fprintf(stderr, "alGetString param value: %s", alGetString(param));
-    return (*env)->NewStringUTF(env, alGetString(param));
-}
-
-JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenSources
-  (JNIEnv *env, jclass cl)
-{
-    ALuint source;
-    alGenSources(1, &source);
-//    fprintf(stderr, "alGenSources: %d", source);
-    return source;
-}
-
-JNIEXPORT jint JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGetError
-  (JNIEnv *env, jclass cl)
-{
-    return getError();
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteSources
-  (JNIEnv* env, jclass cl, jint numSources, jobject intbufSources)
-{
-//    fprintf(stderr, "alDeleteSources numSources: %d", numSources);
-
-    ALuint* pIntBufSources = (ALuint*) (*env)->GetDirectBufferAddress(env, intbufSources);
-    alDeleteSources((ALsizei)numSources, pIntBufSources);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenBuffers
-  (JNIEnv* env, jclass cl, jint numBuffers, jobject intbufBuffers)
-{
-    ALuint* pIntBufBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, intbufBuffers);
-    alGenBuffers((ALsizei)numBuffers, pIntBufBuffers);
-//    for (int i=0; i<numBuffers; i++) {
-//        fprintf(stderr, "alGenBuffers[%d]: %d", i, *(pIntBufBuffers+i));
-//    }
-
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteBuffers
-  (JNIEnv* env, jclass cl, jint numBuffers, jobject intbufBuffers)
-{
-//    fprintf(stderr, "alDeleteBuffers numBuffers: %d", numBuffers);
-
-    ALuint* pIntBufBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, intbufBuffers);
-//    fprintf(stderr, "alDeleteBuffers Buffers: %d", *pIntBufBuffers);
-//    for (int i=0; i<numBuffers; i++) {
-//        if(alIsBuffer(*(pIntBufBuffers+i)) == AL_TRUE) {
-//            fprintf(stderr, "alDeleteBuffers[%d]: %d", i, *(pIntBufBuffers+i));
-//            fprintf(stderr, "alDeleteBuffers buffer is a known buffer");
-//        }
-//    }
-    alDeleteBuffers((ALsizei)numBuffers, pIntBufBuffers);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceStop
-  (JNIEnv *env, jclass cl, jint source)
-{
-//    fprintf(stderr, "alSourceStop for source: %d", source);
-    alSourceStop((ALuint)source);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcei
-  (JNIEnv *env, jclass cl, jint source, jint param, jint value)
-{
-//    fprintf(stderr, "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 cö, jint buffer, jint format, jobject bufferData, jint bufferSize, jint frequency)
-{
-//    fprintf(stderr, "alBufferData for source: %d, format: %d, size: %d, frequency: %d", buffer, format, bufferSize, frequency);
-    ALuint* pBufferData = (ALuint*) (*env)->GetDirectBufferAddress(env, bufferData);
-    alBufferData((ALuint)buffer, (ALenum)format, pBufferData, (ALsizei)bufferSize, (ALsizei)frequency);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcePlay
-  (JNIEnv *env, jclass cl, jint source)
-{
-//    fprintf(stderr, "alSourcePlay for source: %d", source);
-    alSourcePlay((ALuint)source);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcePause
-  (JNIEnv *env, jclass cl, jint source)
-{
-//    fprintf(stderr, "alSourcePause for source: %d", source);
-    alSourcePause((ALuint)source);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourcef
-  (JNIEnv *env, jclass cl, jint source, jint param, jfloat value)
-{
-//    fprintf(stderr, "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 *env, jclass cl, jint source, jint param, jfloat value1, jfloat value2, jfloat value3)
-{
-//    fprintf(stderr, "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 *env, jclass cl, jint source, jint param)
-{
-//    fprintf(stderr, "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 cl, jint source, jint numBuffers, jobject buffers)
-{
-//    fprintf(stderr, "alSourceUnqueueBuffers for source: %d, numBuffers: %d", source, numBuffers);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffers);
-
-//    for (ALuint i=0; i<numBuffers; i++) {
-//        fprintf(stderr, "alSourceUnqueueBuffers, checking buffer[%d]: %d", i, *(pBuffers+i));
-//        ALboolean isBuffer = alIsBuffer(*(pBuffers+i));
-//        fprintf(stderr, "buffer check result: %d", isBuffer);
-//    }
-    alSourceUnqueueBuffers((ALuint)source, (ALsizei)numBuffers, pBuffers);
-//    for (ALuint i=0; i<numBuffers; i++) {
-//        fprintf(stderr, "alSourceUnqueueBuffers[%d]: %d", i, *(pBuffers+i));
-//    }
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alSourceQueueBuffers
-  (JNIEnv* env, jclass cl, jint source, jint numBuffers, jobject buffers)
-{
-//    fprintf(stderr, "alSourceQueueBuffers for source: %d, numBuffers: %d", source, numBuffers);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffers);
-    alSourceQueueBuffers((ALuint)source, (ALsizei)numBuffers, pBuffers);
-//    for (ALuint i=0; i<numBuffers; i++) {
-//        fprintf(stderr, "alSourceQueueBuffers[%d]: %d", i, *(pBuffers+i));
-//    }
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListener
-  (JNIEnv* env, jclass cl, jint param, jobject bufferData)
-{
-//    fprintf(stderr, "alListener for param: %d", param);
-    ALfloat* pBufferData = (ALfloat*) (*env)->GetDirectBufferAddress(env, bufferData);
-    alListenerfv((ALenum)param, pBufferData);
-//    getError();
-//    for (int i=0; i<4; i++) {
-//        fprintf(stderr, "alListener[%d]: %f", i, *(pBufferData+(i*sizeof(ALfloat))));
-//    }
-
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListenerf
-  (JNIEnv *env, jclass cl, jint param, jfloat value)
-{
-//    fprintf(stderr, "alListenerf for param: %d, value: %f", param, value);
-    alListenerf((ALenum)param, (ALfloat)value);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alListener3f
-  (JNIEnv *env, jclass cl, jint param, jfloat value1, jfloat value2, jfloat value3)
-{
-//    fprintf(stderr, "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 cl, jstring extension)
-{
-
-    ALCdevice *device;
-    ALCcontext *ctx;
-    ALboolean result;
-//    char buf[128];
-    const char* strExtension;
-    jsize strLength = (*env)->GetStringUTFLength(env, extension);
-
-    ctx = alcGetCurrentContext();
-    if(ctx != NULL) {
-        device = alcGetContextsDevice(ctx);
-
-        if (device != NULL) {
-            strExtension = (*env)->GetStringUTFChars(env, extension, NULL);
-            if (strExtension == NULL) {
-                return JNI_FALSE; /* OutOfMemoryError already thrown */
-            }
-//            fprintf(stderr, "alcIsExtensionPresent for param: %s with size: %d", strExtension, strLength);
-
-            result = alcIsExtensionPresent(device, strExtension);
-//            fprintf(stderr, "alcIsExtensionPresent found: %d", result);
-
-            (*env)->ReleaseStringUTFChars(env, extension, strExtension);
-
-            return (jboolean)result;
-        } else {
-            fprintf(stderr, "device is null in alcIsExtensionPresent");
-        }
-
-    } else {
-        fprintf(stderr, "current context is null in alcIsExtensionPresent");
-    }
-
-    return JNI_FALSE;
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alcGetInteger
-  (JNIEnv* env, jclass cl, jint param, jobject buffer, jint bufferSize)
-{
-    ALCdevice *device;
-    ALCcontext *ctx;
-
-//    fprintf(stderr, "alcGetInteger for param: %d", param);
-    ALCint* pBuffers = (ALCint*) (*env)->GetDirectBufferAddress(env, buffer);
-
-    ctx = alcGetCurrentContext();
-    if(ctx != NULL) {
-        device = alcGetContextsDevice(ctx);
-
-        if (device != NULL) {
-            alcGetIntegerv(device, (ALCenum)param, (ALCsizei)bufferSize, pBuffers);
-        } else {
-            fprintf(stderr, "device is null in alcGetInteger");
-        }
-
-    } else {
-        fprintf(stderr, "current context is null in alcGetInteger");
-    }
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenAuxiliaryEffectSlots
-  (JNIEnv* env, jclass cl, jint numSlots, jobject buffer)
-{
-//    fprintf(stderr, "alGenAuxiliaryEffectSlots for numSlots: %d", numSlots);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
-//    alGenAuxiliaryEffectSlots((ALsizei)numSlots, pBuffers);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenEffects
-  (JNIEnv* env, jclass cl, jint numEffects, jobject buffer)
-{
-//    fprintf(stderr, "alGenEffects for numEffects: %d", numEffects);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
-//    alGenEffects((ALsizei)numEffects, pBuffers);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alEffecti
-  (JNIEnv *env, jclass cl, jint effect, jint param, jint value)
-{
-//    fprintf(stderr, "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 *env, jclass cl, jint effectSlot, jint param, jint value)
-{
-//    fprintf(stderr, "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 cl, jint numEffects, jobject buffer)
-{
-//    fprintf(stderr, "alDeleteEffects for numEffects: %d", numEffects);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
-//    alDeleteEffects((ALsizei)numEffects, pBuffers);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alDeleteAuxiliaryEffectSlots
-  (JNIEnv* env, jclass cl, jint numEffectSlots, jobject buffer)
-{
-//    fprintf(stderr, "alDeleteAuxiliaryEffectSlots for numEffectSlots: %d", numEffectSlots);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
-//    alDeleteAuxiliaryEffectSlots((ALsizei)numEffectSlots, pBuffers);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alGenFilters
-  (JNIEnv* env, jclass cl, jint numFilters, jobject buffer)
-{
-//    fprintf(stderr, "alGenFilters for numFilters: %d", numFilters);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
-//    alGenFilters((ALsizei)numFilters, pBuffers);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alFilteri
-  (JNIEnv *env, jclass cl, jint filter, jint param, jint value)
-{
-//    fprintf(stderr, "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 *env, jclass cl, jint filter, jint param, jfloat value)
-{
-//    fprintf(stderr, "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 *env, jclass cl, jint source, jint param, jint value1, jint value2, jint value3)
-{
-//    fprintf(stderr, "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 cl, jint numFilters, jobject buffer)
-{
-//    fprintf(stderr, "alDeleteFilters for numFilters: %d", numFilters);
-    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
-//    alDeleteFilters((ALsizei)numFilters, pBuffers);
-}
-
-JNIEXPORT void JNICALL Java_com_jme3_audio_android_AndroidOpenALSoftAudioRenderer_alEffectf
-  (JNIEnv *env, jclass cl, jint effect, jint param, jfloat value)
-{
-//    fprintf(stderr, "alEffectf for effect: %d, param: %d, value: %d", effect, param, value);
-//    alEffectf((ALuint)effect, (ALenum)param, (ALfloat)value);
-}
-

+ 0 - 319
jme3-ios/ios-data/templates/src/com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.h

@@ -1,319 +0,0 @@
-/* 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

+ 138 - 0
jme3-ios/ios-data/templates/src/com_jme3_audio_ios_IosAL.c

@@ -0,0 +1,138 @@
+#include "com_jme3_audio_ios_IosAL.h"
+//#include "AL/al.h"
+//#include "AL/alext.h"
+
+#include "OpenAL/al.h"
+#include "OpenAL/alc.h"
+#include "OpenAL/oalMacOSX_OALExtensions.h"
+
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_ios_IosAL_alGetString
+  (JNIEnv* env, jobject obj, jint param)
+{
+    return (*env)->NewStringUTF(env, alGetString(param));
+}
+
+JNIEXPORT jint JNICALL Java_com_jme3_audio_ios_IosAL_alGenSources
+  (JNIEnv *env, jobject obj)
+{
+    ALuint source;
+    alGenSources(1, &source);
+    return source;
+}
+
+JNIEXPORT jint JNICALL Java_com_jme3_audio_ios_IosAL_alGetError
+  (JNIEnv *env, jobject obj)
+{
+    return alGetError();
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alDeleteSources
+  (JNIEnv* env, jobject obj, jint numSources, jobject intbufSources)
+{
+    ALuint* pIntBufSources = (ALuint*) (*env)->GetDirectBufferAddress(env, intbufSources);
+    alDeleteSources((ALsizei)numSources, pIntBufSources);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alGenBuffers
+  (JNIEnv* env, jobject obj, jint numBuffers, jobject intbufBuffers)
+{
+    ALuint* pIntBufBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, intbufBuffers);
+    alGenBuffers((ALsizei)numBuffers, pIntBufBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alDeleteBuffers
+  (JNIEnv* env, jobject obj, jint numBuffers, jobject intbufBuffers)
+{
+    ALuint* pIntBufBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, intbufBuffers);
+    alDeleteBuffers((ALsizei)numBuffers, pIntBufBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourceStop
+  (JNIEnv *env, jobject obj, jint source)
+{
+    alSourceStop((ALuint)source);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcei
+  (JNIEnv *env, jobject obj, jint source, jint param, jint value)
+{
+    alSourcei((ALuint)source, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alBufferData
+  (JNIEnv* env, jobject obj, jint buffer, jint format, jobject bufferData, jint bufferSize, jint frequency)
+{
+    ALuint* pBufferData = (ALuint*) (*env)->GetDirectBufferAddress(env, bufferData);
+    alBufferData((ALuint)buffer, (ALenum)format, pBufferData, (ALsizei)bufferSize, (ALsizei)frequency);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcePlay
+  (JNIEnv *env, jobject obj, jint source)
+{
+    alSourcePlay((ALuint)source);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcePause
+  (JNIEnv *env, jobject obj, jint source)
+{
+    alSourcePause((ALuint)source);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcef
+  (JNIEnv *env, jobject obj, jint source, jint param, jfloat value)
+{
+    alSourcef((ALuint)source, (ALenum)param, (ALfloat)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSource3f
+  (JNIEnv *env, jobject obj, jint source, jint param, jfloat value1, jfloat value2, jfloat value3)
+{
+    alSource3f((ALuint)source, (ALenum)param, (ALfloat)value1, (ALfloat)value2, (ALfloat)value3);
+}
+
+JNIEXPORT jint JNICALL Java_com_jme3_audio_ios_IosAL_alGetSourcei
+  (JNIEnv *env, jobject obj, jint source, jint param)
+{
+    ALint result;
+    alGetSourcei((ALuint)source, (ALenum)param, &result);
+    return (jint)result;
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourceUnqueueBuffers
+  (JNIEnv* env, jobject obj, jint source, jint numBuffers, jobject buffers)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffers);
+    alSourceUnqueueBuffers((ALuint)source, (ALsizei)numBuffers, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourceQueueBuffers
+  (JNIEnv* env, jobject obj, jint source, jint numBuffers, jobject buffers)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffers);
+    alSourceQueueBuffers((ALuint)source, (ALsizei)numBuffers, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alListener
+  (JNIEnv* env, jobject obj, jint param, jobject bufferData)
+{
+    ALfloat* pBufferData = (ALfloat*) (*env)->GetDirectBufferAddress(env, bufferData);
+    alListenerfv((ALenum)param, pBufferData);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alListenerf
+  (JNIEnv *env, jobject obj, jint param, jfloat value)
+{
+    alListenerf((ALenum)param, (ALfloat)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alListener3f
+  (JNIEnv *env, jobject obj, jint param, jfloat value1, jfloat value2, jfloat value3)
+{
+    alListener3f((ALenum)param, (ALfloat)value1, (ALfloat)value2, (ALfloat)value3);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSource3i
+  (JNIEnv *env, jobject obj, jint source, jint param, jint value1, jint value2, jint value3)
+{
+    alSource3i((ALuint)source, (ALenum)param, (ALint)value1, (ALint)value2, (ALint)value3);
+}

+ 173 - 0
jme3-ios/ios-data/templates/src/com_jme3_audio_ios_IosAL.h

@@ -0,0 +1,173 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_jme3_audio_ios_IosAL */
+
+#ifndef _Included_com_jme3_audio_ios_IosAL
+#define _Included_com_jme3_audio_ios_IosAL
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alGetString
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_ios_IosAL_alGetString
+  (JNIEnv *, jobject, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alGenSources
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_jme3_audio_ios_IosAL_alGenSources
+  (JNIEnv *, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alGetError
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_com_jme3_audio_ios_IosAL_alGetError
+  (JNIEnv *, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alDeleteSources
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alDeleteSources
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alGenBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alGenBuffers
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alDeleteBuffers
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alDeleteBuffers
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSourceStop
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourceStop
+  (JNIEnv *, jobject, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSourcei
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcei
+  (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alBufferData
+ * Signature: (IILjava/nio/ByteBuffer;II)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alBufferData
+  (JNIEnv *, jobject, jint, jint, jobject, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSourcePlay
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcePlay
+  (JNIEnv *, jobject, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSourcePause
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcePause
+  (JNIEnv *, jobject, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSourcef
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourcef
+  (JNIEnv *, jobject, jint, jint, jfloat);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSource3f
+ * Signature: (IIFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSource3f
+  (JNIEnv *, jobject, jint, jint, jfloat, jfloat, jfloat);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alGetSourcei
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_jme3_audio_ios_IosAL_alGetSourcei
+  (JNIEnv *, jobject, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSourceUnqueueBuffers
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourceUnqueueBuffers
+  (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSourceQueueBuffers
+ * Signature: (IILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSourceQueueBuffers
+  (JNIEnv *, jobject, jint, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alListener
+ * Signature: (ILjava/nio/FloatBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alListener
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alListenerf
+ * Signature: (IF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alListenerf
+  (JNIEnv *, jobject, jint, jfloat);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alListener3f
+ * Signature: (IFFF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alListener3f
+  (JNIEnv *, jobject, jint, jfloat, jfloat, jfloat);
+
+/*
+ * Class:     com_jme3_audio_ios_IosAL
+ * Method:    alSource3i
+ * Signature: (IIIII)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosAL_alSource3i
+  (JNIEnv *, jobject, jint, jint, jint, jint, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 178 - 0
jme3-ios/ios-data/templates/src/com_jme3_audio_ios_IosALC.c

@@ -0,0 +1,178 @@
+//#include "util.h"
+#include "com_jme3_audio_ios_IosALC.h"
+//#include "AL/alc.h"
+//#include "AL/alext.h"
+
+#include "OpenAL/al.h"
+#include "OpenAL/alc.h"
+#include "OpenAL/oalMacOSX_OALExtensions.h"
+
+static jboolean created = JNI_FALSE;
+
+/* InitAL opens the default device and sets up a context using default
+ * attributes, making the program ready to call OpenAL functions. */
+static int InitAL()
+{
+    ALCdevice *device = NULL;
+    ALCcontext *ctx = NULL;
+
+    /* Open and initialize a device with default settings */
+    device = alcOpenDevice(NULL);
+    
+    if(device == NULL)
+    {
+        fprintf(stderr, "Could not open a device!\n");
+        goto cleanup;
+    }
+
+    ctx = alcCreateContext(device, NULL);
+    
+    if (ctx == NULL)
+    {
+        fprintf(stderr, "Could not create context!\n");
+        goto cleanup;
+    }
+    
+    if (!alcMakeContextCurrent(ctx)) 
+    {
+        fprintf(stderr, "Could not make context current!\n");
+        goto cleanup;
+    }
+
+    return 0;
+    
+cleanup:
+    if (ctx != NULL) alcDestroyContext(ctx);
+    if (device != NULL) alcCloseDevice(device);
+    return 1;
+}
+
+/* CloseAL closes the device belonging to the current context, and destroys the
+ * context. */
+static void CloseAL()
+{
+    ALCdevice *device;
+    ALCcontext *ctx;
+
+    ctx = alcGetCurrentContext();
+    
+    if (ctx == NULL) 
+    {
+        return;
+    }
+
+    device = alcGetContextsDevice(ctx);
+    
+    if (device == NULL) 
+    {
+        return;
+    }
+
+    if(!alcMakeContextCurrent(NULL)) {
+        return;
+    }
+
+    alcDestroyContext(ctx);
+    alcCloseDevice(device);
+}
+
+static ALCdevice* GetALCDevice()
+{
+    ALCdevice *device;
+    ALCcontext *ctx;
+
+    ctx = alcGetCurrentContext();
+    
+    if (ctx != NULL) 
+    {
+        device = alcGetContextsDevice(ctx);
+        
+        if (device != NULL)
+        {
+            return device;
+        }
+    }
+    
+    return NULL;
+}
+
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_ios_IosALC_isCreated
+  (JNIEnv* env, jobject obj)
+{
+    return created;
+}
+
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_createALC
+  (JNIEnv* env, jobject obj)
+{
+    created = (InitAL() == 0);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_destroyALC
+  (JNIEnv* env, jobject obj)
+{
+    CloseAL();
+    created = JNI_FALSE;
+}
+
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_ios_IosALC_alcGetString
+  (JNIEnv* env, jobject obj, jint param)
+{
+    ALCdevice* device = GetALCDevice();
+    if (device == NULL) return NULL;
+    return (*env)->NewStringUTF(env, alcGetString(device, param));
+}
+
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_ios_IosALC_alcIsExtensionPresent
+  (JNIEnv* env, jobject obj, jstring extension)
+{
+    ALCdevice* device = GetALCDevice();
+    
+    if (device == NULL) return JNI_FALSE;
+    
+    const char* strExtension = (*env)->GetStringUTFChars(env, extension, NULL);
+    
+    if (strExtension == NULL)
+    {
+        return JNI_FALSE;
+    }
+    
+    jboolean result = alcIsExtensionPresent(device, strExtension);
+    
+    (*env)->ReleaseStringUTFChars(env, extension, strExtension);
+    
+    return result;
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_alcGetInteger
+  (JNIEnv* env, jobject obj, jint param, jobject buffer, jint bufferSize)
+{
+    ALCdevice* device = GetALCDevice();
+    
+    if (device == NULL) return;
+
+    ALCint* pBuffers = (ALCint*) (*env)->GetDirectBufferAddress(env, buffer);
+
+    alcGetIntegerv(device, (ALCenum)param, (ALCsizei)bufferSize, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_alcDevicePauseSOFT
+  (JNIEnv* env, jobject obj)
+{
+    ALCdevice* device = GetALCDevice();
+    
+    if (device == NULL) return;
+    
+//    alcDevicePauseSOFT(device);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_alcDeviceResumeSOFT
+  (JNIEnv* env, jobject obj)
+{
+    ALCdevice* device = GetALCDevice();
+    
+    if (device == NULL) return;
+    
+//    alcDeviceResumeSOFT(device);
+}

+ 77 - 0
jme3-ios/ios-data/templates/src/com_jme3_audio_ios_IosALC.h

@@ -0,0 +1,77 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_jme3_audio_ios_IosALC */
+
+#ifndef _Included_com_jme3_audio_ios_IosALC
+#define _Included_com_jme3_audio_ios_IosALC
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    createALC
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_createALC
+  (JNIEnv *, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    destroyALC
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_destroyALC
+  (JNIEnv *, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    isCreated
+ * Signature: ()Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_ios_IosALC_isCreated
+  (JNIEnv *, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    alcGetString
+ * Signature: (I)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_com_jme3_audio_ios_IosALC_alcGetString
+  (JNIEnv *, jobject, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    alcIsExtensionPresent
+ * Signature: (Ljava/lang/String;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_com_jme3_audio_ios_IosALC_alcIsExtensionPresent
+  (JNIEnv *, jobject, jstring);
+
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    alcGetInteger
+ * Signature: (ILjava/nio/IntBuffer;I)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_alcGetInteger
+  (JNIEnv *, jobject, jint, jobject, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    alcDevicePauseSOFT
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_alcDevicePauseSOFT
+  (JNIEnv *, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosALC
+ * Method:    alcDeviceResumeSOFT
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosALC_alcDeviceResumeSOFT
+  (JNIEnv *, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 79 - 0
jme3-ios/ios-data/templates/src/com_jme3_audio_ios_IosEFX.c

@@ -0,0 +1,79 @@
+//#include "util.h"
+#include "com_jme3_audio_ios_IosEFX.h"
+//#include "AL/alext.h"
+
+#include "OpenAL/al.h"
+#include "OpenAL/alc.h"
+#include "OpenAL/oalMacOSX_OALExtensions.h"
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alGenAuxiliaryEffectSlots
+  (JNIEnv* env, jobject obj, jint numSlots, jobject buffer)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
+//    alGenAuxiliaryEffectSlots((ALsizei)numSlots, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alGenEffects
+  (JNIEnv* env, jobject obj, jint numEffects, jobject buffer)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
+//    alGenEffects((ALsizei)numEffects, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alEffecti
+  (JNIEnv* env, jobject obj, jint effect, jint param, jint value)
+{
+//    alEffecti((ALuint)effect, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alAuxiliaryEffectSloti
+  (JNIEnv* env, jobject obj, jint effectSlot, jint param, jint value)
+{
+//    alAuxiliaryEffectSloti((ALuint)effectSlot, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alDeleteEffects
+  (JNIEnv* env, jobject obj, jint numEffects, jobject buffer)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
+//    alDeleteEffects((ALsizei)numEffects, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alDeleteAuxiliaryEffectSlots
+  (JNIEnv* env, jobject obj, jint numEffectSlots, jobject buffer)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
+//    alDeleteAuxiliaryEffectSlots((ALsizei)numEffectSlots, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alGenFilters
+  (JNIEnv* env, jobject obj, jint numFilters, jobject buffer)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
+//    alGenFilters((ALsizei)numFilters, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alFilteri
+  (JNIEnv* env, jobject obj, jint filter, jint param, jint value)
+{
+//    alFilteri((ALuint)filter, (ALenum)param, (ALint)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alFilterf
+  (JNIEnv* env, jobject obj, jint filter, jint param, jfloat value)
+{
+//    alFilterf((ALuint)filter, (ALenum)param, (ALfloat)value);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alDeleteFilters
+  (JNIEnv* env, jobject obj, jint numFilters, jobject buffer)
+{
+    ALuint* pBuffers = (ALuint*) (*env)->GetDirectBufferAddress(env, buffer);
+//    alDeleteFilters((ALsizei)numFilters, pBuffers);
+}
+
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alEffectf
+  (JNIEnv* env, jobject obj, jint effect, jint param, jfloat value)
+{
+//    alEffectf((ALuint)effect, (ALenum)param, (ALfloat)value);
+}

+ 101 - 0
jme3-ios/ios-data/templates/src/com_jme3_audio_ios_IosEFX.h

@@ -0,0 +1,101 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+/* Header for class com_jme3_audio_ios_IosEFX */
+
+#ifndef _Included_com_jme3_audio_ios_IosEFX
+#define _Included_com_jme3_audio_ios_IosEFX
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alGenAuxiliaryEffectSlots
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alGenAuxiliaryEffectSlots
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alGenEffects
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alGenEffects
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alEffecti
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alEffecti
+  (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alAuxiliaryEffectSloti
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alAuxiliaryEffectSloti
+  (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alDeleteEffects
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alDeleteEffects
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alDeleteAuxiliaryEffectSlots
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alDeleteAuxiliaryEffectSlots
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alGenFilters
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alGenFilters
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alFilteri
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alFilteri
+  (JNIEnv *, jobject, jint, jint, jint);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alFilterf
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alFilterf
+  (JNIEnv *, jobject, jint, jint, jfloat);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alDeleteFilters
+ * Signature: (ILjava/nio/IntBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alDeleteFilters
+  (JNIEnv *, jobject, jint, jobject);
+
+/*
+ * Class:     com_jme3_audio_ios_IosEFX
+ * Method:    alEffectf
+ * Signature: (IIF)V
+ */
+JNIEXPORT void JNICALL Java_com_jme3_audio_ios_IosEFX_alEffectf
+  (JNIEnv *, jobject, jint, jint, jfloat);
+
+#ifdef __cplusplus
+}
+#endif
+#endif