Fix OpenAL Soft for Android

* Upgrade to latest OpenAL Soft (1.16)
 * Don't specify TARGET_PLATFORM on command line as that causes weird issues
 * Specify target platform via APP_PLATFORM in Application.mk and TARGET_PLATFORM in Android.mk
experimental
shadowislord 10 years ago
parent 4050b7cbbf
commit 393009ec2d
  1. 23
      jme3-android-native/openalsoft.gradle
  2. 92
      jme3-android-native/src/native/jme_openalsoft/Android.mk
  3. 2
      jme3-android-native/src/native/jme_openalsoft/Application.mk
  4. 206
      jme3-android-native/src/native/jme_openalsoft/config.h

@ -1,9 +1,5 @@
// OpenAL Soft r1.15.1
//String openALSoftUrl = 'http://repo.or.cz/w/openal-soft.git/snapshot/9b6a226da55a987cb883f425eeb568776ea12c8d.zip'
// OpenAL Soft r1.15.1 + Android OpenSL Support
String openALSoftUrl = 'http://repo.or.cz/w/openal-soft.git/snapshot/be25e6802dacad78876c6fa1d6a5c63797b8a9ed.zip'
// OpenAL Soft r1.15.1 latest build (at the time)
//String openALSoftUrl = 'http://repo.or.cz/w/openal-soft.git/snapshot/3f5914e0949ee12b504ee7254990e007ff8057ef.zip'
// OpenAL Soft r1.16
String openALSoftUrl = 'http://repo.or.cz/w/openal-soft.git/snapshot/e5016f814a265ed592a88acea95cf912c4bfdf12.zip'
String openALSoftZipFile = 'OpenALSoft.zip'
// OpenAL Soft directory the download is extracted into
@ -81,22 +77,23 @@ task generateOpenAlSoftHeaders(dependsOn: copyJmeOpenALSoft) << {
String classes = ""
.concat("com.jme3.audio.android.AndroidOpenALSoftAudioRenderer, ")
// println "openalsoft classes = " + classes
// println "openalsoft destDir = " + destDir
// println "openalsoft destDir = " + destDirPath
// println "openalsoft classpath = " + project.projectClassPath
ant.javah(
classpath: project.projectClassPath,
destdir: destDirPath,
class: classes
)
exec {
executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah')
args '-d', destDirPath
args '-classpath', project.projectClassPath
args "com.jme3.audio.android.AndroidOpenALSoftAudioRenderer"
}
}
task buildOpenAlSoftNativeLib(type: Exec, dependsOn: generateOpenAlSoftHeaders) {
// println "openalsoft build dir: " + openalsoftBuildDir
// println "ndkCommandPath: " + project.ndkCommandPath
args 'TARGET_PLATFORM=android-9'
workingDir openalsoftBuildDir
executable rootProject.ndkCommandPath
args '-j8'
}
task updatePreCompiledOpenAlSoftLibs(type: Copy, dependsOn: buildOpenAlSoftNativeLib) {

@ -1,58 +1,68 @@
TARGET_PLATFORM := android-9
TARGET_PLATFORM=android-9
ROOT_PATH := $(call my-dir)
########################################################################################################
LOCAL_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_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/include \
$(LOCAL_PATH)/OpenAL32/Include $(LOCAL_PATH)/Alc
LOCAL_CFLAGS := -std=c99 -ffast-math -DAL_BUILD_LIBRARY -DAL_ALEXT_PROTOTYPES
LOCAL_LDLIBS := -lOpenSLES -llog -Wl,-s
LOCAL_SRC_FILES := OpenAL32/alAuxEffectSlot.c \
LOCAL_SRC_FILES := Alc/backends/opensl.c \
Alc/backends/loopback.c \
Alc/backends/wave.c \
Alc/backends/base.c \
Alc/backends/null.c \
Alc/ALc.c \
Alc/helpers.c \
Alc/bs2b.c \
Alc/alcRing.c \
Alc/effects/chorus.c \
Alc/effects/flanger.c \
Alc/effects/dedicated.c \
Alc/effects/reverb.c \
Alc/effects/distortion.c \
Alc/effects/autowah.c \
Alc/effects/equalizer.c \
Alc/effects/modulator.c \
Alc/effects/echo.c \
Alc/effects/compressor.c \
Alc/effects/null.c \
Alc/alcConfig.c \
Alc/ALu.c \
Alc/mixer_c.c \
Alc/panning.c \
Alc/hrtf.c \
Alc/mixer.c \
Alc/midi/soft.c \
Alc/midi/sf2load.c \
Alc/midi/dummy.c \
Alc/midi/fluidsynth.c \
Alc/midi/base.c \
common/uintmap.c \
common/atomic.c \
common/threads.c \
common/rwlock.c \
OpenAL32/alBuffer.c \
OpenAL32/alPreset.c \
OpenAL32/alListener.c \
OpenAL32/alEffect.c \
OpenAL32/alError.c \
OpenAL32/alExtension.c \
OpenAL32/alThunk.c \
OpenAL32/alMidi.c \
OpenAL32/alSoundfont.c \
OpenAL32/alFontsound.c \
OpenAL32/alAuxEffectSlot.c \
OpenAL32/alError.c \
OpenAL32/alFilter.c \
OpenAL32/alListener.c \
OpenAL32/alSource.c \
OpenAL32/alState.c \
OpenAL32/alThunk.c \
Alc/ALc.c \
Alc/ALu.c \
Alc/alcConfig.c \
Alc/alcDedicated.c \
Alc/alcEcho.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 \
OpenAL32/sample_cvt.c \
com_jme3_audio_android_AndroidOpenALSoftAudioRenderer.cpp
# Alc/backends/alsa.c \
# Alc/backends/android.c \
# Alc/alcChorus.c \
# Alc/alcFlanger.c \
# Alc/mixer_c.c \
# Alc/backends/loopback.c \
# Alc/backends/null.c \
include $(BUILD_SHARED_LIBRARY)

@ -1,3 +1,3 @@
APP_PLATFORM := android-9
APP_OPTIM := release
APP_ABI := all
#APP_ABI := armeabi-v7a

@ -1,147 +1,203 @@
#ifndef CONFIG_H
#define CONFIG_H
/* API declaration export attribute */
#define AL_API __attribute__((visibility("protected")))
#define ALC_API __attribute__((visibility("protected")))
/* Define to the library version */
#define ALSOFT_VERSION "1.15.1"
#define ALSOFT_VERSION "1.16.0"
#define ALIGN(x) __attribute__ ((aligned(x)))
#ifdef IN_IDE_PARSER
/* KDevelop's parser doesn't recognize the C99-standard restrict keyword, but
* recent versions (at least 4.5.1) do recognize GCC's __restrict. */
#define restrict __restrict
#endif
/* Define any available alignment declaration */
#define ALIGN(x) __attribute__((aligned(x)))
/* Define if we have the C11 aligned_alloc function */
/* #undef HAVE_ALIGNED_ALLOC */
/* Define if we have the posix_memalign function */
/* #undef HAVE_POSIX_MEMALIGN */
/* Define if we have the _aligned_malloc function */
/* #undef HAVE__ALIGNED_MALLOC */
/* Define if we have SSE CPU extensions */
/* #undef HAVE_SSE */
/* #undef HAVE_SSE2 */
/* #undef HAVE_SSE4_1 */
/* Define if we have ARM Neon CPU extensions */
/* #undef HAVE_NEON */
/* Define if we have the Android backend */
/* #define HAVE_ANDROID 1 */
/* Define if we have FluidSynth support */
/* #undef HAVE_FLUIDSYNTH */
/* Define if we have the ALSA backend */
/* #define HAVE_ALSA */
/* #undef HAVE_ALSA */
/* Define if we have the OSS backend */
/* #cmakedefine HAVE_OSS */
/* #undef HAVE_OSS */
/* Define if we have the Solaris backend */
/* #cmakedefine HAVE_SOLARIS */
/* #undef HAVE_SOLARIS */
/* Define if we have the SndIO backend */
/* #cmakedefine HAVE_SNDIO */
/* #undef HAVE_SNDIO */
/* Define if we have the QSA backend */
/* #undef HAVE_QSA */
/* Define if we have the MMDevApi backend */
/* #cmakedefine HAVE_MMDEVAPI */
/* #undef HAVE_MMDEVAPI */
/* Define if we have the DSound backend */
/* #cmakedefine HAVE_DSOUND */
/* #undef HAVE_DSOUND */
/* Define if we have the Windows Multimedia backend */
/* #cmakedefine HAVE_WINMM */
/* #undef HAVE_WINMM */
/* Define if we have the PortAudio backend */
/* #cmakedefine HAVE_PORTAUDIO */
/* #undef HAVE_PORTAUDIO */
/* Define if we have the PulseAudio backend */
/* #cmakedefine HAVE_PULSEAUDIO */
/* #undef HAVE_PULSEAUDIO */
/* Define if we have the CoreAudio backend */
/* #cmakedefine HAVE_COREAUDIO */
/* #undef HAVE_COREAUDIO */
/* Define if we have the OpenSL backend */
#define HAVE_OPENSL /* THIS BACKEND WORKS ON >=2.3 Android!! */
#define HAVE_OPENSL
/* Define if we have the Wave Writer backend */
/* #cmakedefine HAVE_WAVE */
/* Define if we have dlfcn.h */
#define HAVE_DLFCN_H
#define HAVE_WAVE
/* 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 lrintf function */
#define HAVE_LRINTF
/* Define if we have the sqrtf function */
/* #define HAVE_SQRTF 1 */
/* Define if we have the strtof function */
/* #undef HAVE_STRTOF */
/* Define if we have the cosf function */
/* #define HAVE_COSF 1 */
/* Define if we have the __int64 type */
/* #undef HAVE___INT64 */
/* Define if we have the sinf function */
/* #define HAVE_SINF 1 */
/* Define to the size of a long int type */
#define SIZEOF_LONG 4
/* Define if we have the acosf function */
/* #define HAVE_ACOSF 1 */
/* Define to the size of a long long int type */
#define SIZEOF_LONG_LONG 8
/* Define if we have the asinf function */
/* #define HAVE_ASINF 1 */
/* Define if we have C99 variable-length array support */
#define HAVE_C99_VLA
/* Define if we have the atanf function */
/* #define HAVE_ATANF 1 */
/* Define if we have C99 _Bool support */
#define HAVE_C99_BOOL
/* Define if we have the atan2f function */
/* #define HAVE_ATAN2F 1 */
/* Define if we have C11 _Static_assert support */
#define HAVE_C11_STATIC_ASSERT
/* Define if we have the fabsf function */
/* #define HAVE_FABSF 1 */
/* Define if we have C11 _Alignas support */
/* #undef HAVE_C11_ALIGNAS */
/* Define if we have the log10f function */
/* #define HAVE_LOG10F 1 */
/* Define if we have C11 _Atomic support */
/* #undef HAVE_C11_ATOMIC */
/* Define if we have the floorf function */
/* #define HAVE_FLOORF 1 */
/* Define if we have GCC's destructor attribute */
#define HAVE_GCC_DESTRUCTOR
/* Define if we have the strtof function */
#define HAVE_STRTOF
/* Define if we have GCC's format attribute */
#define HAVE_GCC_FORMAT
/* Define if we have stdint.h */
#define HAVE_STDINT_H
/* Define if we have the __int64 type */
/* #cmakedefine HAVE___INT64 */
/* Define if we have stdbool.h */
#define HAVE_STDBOOL_H
/* Define to the size of a long int type */
#define SIZEOF_LONG 4
/* Define if we have stdalign.h */
/* #undef HAVE_STDALIGN_H */
/* 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 windows.h */
/* #undef HAVE_WINDOWS_H */
/* Define if we have GCC's format attribute */
#define HAVE_GCC_FORMAT
/* Define if we have dlfcn.h */
#define HAVE_DLFCN_H
/* Define if we have pthread_np.h */
/* #cmakedefine HAVE_PTHREAD_NP_H */
/* #undef HAVE_PTHREAD_NP_H */
/* Define if we have arm_neon.h */
/* #cmakedefine HAVE_ARM_NEON_H */
/* Define if we have alloca.h */
/* #undef HAVE_ALLOCA_H */
/* Define if we have guiddef.h */
/* #cmakedefine HAVE_GUIDDEF_H */
/* Define if we have malloc.h */
#define HAVE_MALLOC_H
/* Define if we have ftw.h */
/* #undef HAVE_FTW_H */
/* Define if we have io.h */
/* #undef HAVE_IO_H */
/* Define if we have strings.h */
#define HAVE_STRINGS_H
/* Define if we have cpuid.h */
/* #undef HAVE_CPUID_H */
/* Define if we have intrin.h */
/* #undef HAVE_INTRIN_H */
/* Define if we have sys/sysconf.h */
#define HAVE_SYS_SYSCONF_H
/* Define if we have guiddef.h */
/* #cmakedefine HAVE_INITGUID_H */
/* #undef HAVE_GUIDDEF_H */
/* Define if we have initguid.h */
/* #undef HAVE_INITGUID_H */
/* Define if we have ieeefp.h */
/* #cmakedefine HAVE_IEEEFP_H */
/* #undef 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 HAVE_FLOAT_H
/* Define if we have fenv.h */
#define HAVE_FENV_H
/* Define if we have fesetround() */
/* #cmakedefine HAVE_FESETROUND */
/* Define if we have GCC's __get_cpuid() */
/* #undef HAVE_GCC_GET_CPUID */
/* Define if we have the __cpuid() intrinsic */
/* #undef HAVE_CPUID_INTRINSIC */
/* Define if we have _controlfp() */
/* #cmakedefine HAVE__CONTROLFP */
/* #undef HAVE__CONTROLFP */
/* Define if we have __control87_2() */
/* #undef HAVE___CONTROL87_2 */
/* Define if we have ftw() */
/* #undef HAVE_FTW */
/* Define if we have _wfindfirst() */
/* #undef HAVE__WFINDFIRST */
/* 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 pthread_setname_np() */
#define HAVE_PTHREAD_SETNAME_NP
/* Define if we have the __restrict keyword */
#define RESTRICT __restrict
/* Define if we have pthread_set_name_np() */
/* #undef HAVE_PTHREAD_SET_NAME_NP */
#endif
/* Define if we have pthread_mutexattr_setkind_np() */
/* #undef HAVE_PTHREAD_MUTEXATTR_SETKIND_NP */
/* Define if we have pthread_mutex_timedlock() */
/* #undef HAVE_PTHREAD_MUTEX_TIMEDLOCK */
Loading…
Cancel
Save