Browse Source

Added openal soft library amd fixed remaining linker issues. Still have an issue where the lib doesnt copy to right location though

Tim Newell 12 years ago
parent
commit
94de291e28

+ 14 - 1
engine/compilers/android/jni/Android.mk

@@ -23,6 +23,16 @@ LOCAL_SRC_FILES := lib/libpng.a
 
 
 include $(PREBUILT_STATIC_LIBRARY)
 include $(PREBUILT_STATIC_LIBRARY)
 
 
+LOCAL_PATH := $(MY_LOCAL_PATH)
+# OpenAL Soft library must be a shared library since license is LGPL
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := libopenal
+LOCAL_SRC_FILES := ../../../lib/openal/Android/$(TARGET_ARCH_ABI)/libopenal.so
+LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../lib/openal/Android
+
+include $(PREBUILT_SHARED_LIBRARY)
+
 LOCAL_PATH := $(MY_LOCAL_PATH)
 LOCAL_PATH := $(MY_LOCAL_PATH)
 
 
 LOCAL_MODULE    := torque2d
 LOCAL_MODULE    := torque2d
@@ -423,6 +433,7 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/platform/platformNetwork.cc \
 					../../../source/platform/platformNetwork.cc \
 					../../../source/platform/platformString.cc \
 					../../../source/platform/platformString.cc \
 					../../../source/platform/platformVideo.cc \
 					../../../source/platform/platformVideo.cc \
+					../../../source/platform/platformNetAsync.unix.cc \
 					../../../source/platform/menus/popupMenu.cc \
 					../../../source/platform/menus/popupMenu.cc \
 					../../../source/platform/nativeDialogs/msgBox.cpp \
 					../../../source/platform/nativeDialogs/msgBox.cpp \
 					../../../source/platform/Tickable.cc \
 					../../../source/platform/Tickable.cc \
@@ -457,6 +468,7 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/platformAndroid/main.cpp \
 					../../../source/platformAndroid/main.cpp \
 					../../../source/platformAndroid/SoundEngine.cpp \
 					../../../source/platformAndroid/SoundEngine.cpp \
 					../../../source/platformAndroid/T2DActivity.cpp \
 					../../../source/platformAndroid/T2DActivity.cpp \
+					../../../source/platformAndroid/menus/popupMenu.cpp \
 					../../../source/sim/scriptGroup.cc \
 					../../../source/sim/scriptGroup.cc \
 					../../../source/sim/scriptObject.cc \
 					../../../source/sim/scriptObject.cc \
 					../../../source/sim/simBase.cc \
 					../../../source/sim/simBase.cc \
@@ -515,7 +527,8 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 LOCAL_CFLAGS := -DENABLE_CONSOLE_MSGS -D__ANDROID__ -DTORQUE_OS_ANDROID -DGL_GLEXT_PROTOTYPES -O0 -fsigned-char
 LOCAL_CFLAGS := -DENABLE_CONSOLE_MSGS -D__ANDROID__ -DTORQUE_OS_ANDROID -DGL_GLEXT_PROTOTYPES -O0 -fsigned-char
 				   
 				   
 LOCAL_LDLIBS    := -llog -landroid -lEGL -lGLESv1_CM -lz -lOpenSLES
 LOCAL_LDLIBS    := -llog -landroid -lEGL -lGLESv1_CM -lz -lOpenSLES
-LOCAL_STATIC_LIBRARIES := android_native_app_glue libpng libjpeg
+LOCAL_STATIC_LIBRARIES := android_native_app_glue libpng
+LOCAL_SHARED_LIBRARIES := libopenal
 
 
 LOCAL_ARM_MODE := arm
 LOCAL_ARM_MODE := arm
 
 

+ 17 - 3
engine/source/audio/audio.cc

@@ -2462,6 +2462,8 @@ bool OpenALInit()
       0
       0
    };
    };
    mContext = alcCreateContext(mDevice,attrlist);
    mContext = alcCreateContext(mDevice,attrlist);
+#elif TORQUE_OS_ANDROID
+   mContext = alcCreateContext((ALCdevice*)mDevice, NULL);
 #else
 #else
    mContext = alcCreateContext(mDevice,NULL);
    mContext = alcCreateContext(mDevice,NULL);
 #endif
 #endif
@@ -2469,8 +2471,11 @@ bool OpenALInit()
       return false;
       return false;
 
 
    // Make this context the active context
    // Make this context the active context
+#ifdef TORQUE_OS_ANDROID
+   alcMakeContextCurrent((ALCcontext*)mContext);
+#else
    alcMakeContextCurrent(mContext);
    alcMakeContextCurrent(mContext);
-
+#endif
    ALenum err = alGetError();
    ALenum err = alGetError();
    mRequestSources = MAX_AUDIOSOURCES;	
    mRequestSources = MAX_AUDIOSOURCES;	
    while(true)
    while(true)
@@ -2539,12 +2544,21 @@ void OpenALShutdown()
 
 
    if (mContext)
    if (mContext)
    {
    {
-      alcDestroyContext(mContext);
+#ifdef TORQUE_OS_ANDROID
+	   alcDestroyContext((ALCcontext*)mContext);
+#else
+	   alcDestroyContext(mContext);
+#endif
+
       mContext = NULL;
       mContext = NULL;
    }
    }
    if (mDevice)
    if (mDevice)
    {
    {
-      alcCloseDevice(mDevice);
+#ifdef TORQUE_OS_ANDROID
+	   alcCloseDevice((ALCdevice*)mDevice);
+#else
+	   alcCloseDevice(mDevice);
+#endif
       mDevice = NULL;
       mDevice = NULL;
    }
    }
 
 

+ 5 - 5
engine/source/audio/audioDataBlock.cc

@@ -58,7 +58,7 @@ IMPLEMENT_CO_DATABLOCK_V1(AudioEnvironment);
 AudioEnvironment::AudioEnvironment()
 AudioEnvironment::AudioEnvironment()
 {
 {
    mUseRoom = true;
    mUseRoom = true;
-#if !defined(TORQUE_OS_IOS)
+#if !defined(TORQUE_OS_IOS) && !defined(TORQUE_OS_ANDROID)
    mRoom = EAX_ENVIRONMENT_GENERIC;
    mRoom = EAX_ENVIRONMENT_GENERIC;
 #endif
 #endif
    mRoomHF = 0;
    mRoomHF = 0;
@@ -78,7 +78,7 @@ AudioEnvironment::AudioEnvironment()
    mFlags = 0;
    mFlags = 0;
 }
 }
 
 
-#if !defined(TORQUE_OS_IOS)
+#if !defined(TORQUE_OS_IOS) && !defined(TORQUE_OS_ANDROID)
 static EnumTable::Enums roomEnums[] =
 static EnumTable::Enums roomEnums[] =
 {
 {
    { EAX_ENVIRONMENT_GENERIC,           "GENERIC" },               // 0
    { EAX_ENVIRONMENT_GENERIC,           "GENERIC" },               // 0
@@ -121,7 +121,7 @@ void AudioEnvironment::initPersistFields()
    Parent::initPersistFields();
    Parent::initPersistFields();
 
 
    addField("useRoom",              TypeBool,   Offset(mUseRoom, AudioEnvironment));
    addField("useRoom",              TypeBool,   Offset(mUseRoom, AudioEnvironment));
-#if !defined(TORQUE_OS_IOS)
+#if !defined(TORQUE_OS_IOS) && !defined(TORQUE_OS_ANDROID)
    addField("room",                 TypeEnum,   Offset(mRoom, AudioEnvironment), 1, &gAudioEnvironmentRoomTypes);
    addField("room",                 TypeEnum,   Offset(mRoom, AudioEnvironment), 1, &gAudioEnvironmentRoomTypes);
 #endif
 #endif
    addField("roomHF",               TypeS32,    Offset(mRoomHF, AudioEnvironment));
    addField("roomHF",               TypeS32,    Offset(mRoomHF, AudioEnvironment));
@@ -145,7 +145,7 @@ void AudioEnvironment::initPersistFields()
 void AudioEnvironment::packData(BitStream* stream)
 void AudioEnvironment::packData(BitStream* stream)
 {
 {
    Parent::packData(stream);
    Parent::packData(stream);
-#if !defined(TORQUE_OS_IOS)
+#if !defined(TORQUE_OS_IOS)  && !defined(TORQUE_OS_ANDROID)
    if(stream->writeFlag(mUseRoom))
    if(stream->writeFlag(mUseRoom))
       stream->writeRangedU32(mRoom, EAX_ENVIRONMENT_GENERIC, EAX_ENVIRONMENT_COUNT);
       stream->writeRangedU32(mRoom, EAX_ENVIRONMENT_GENERIC, EAX_ENVIRONMENT_COUNT);
    else
    else
@@ -173,7 +173,7 @@ void AudioEnvironment::unpackData(BitStream* stream)
 {
 {
    Parent::unpackData(stream);
    Parent::unpackData(stream);
    mUseRoom = stream->readFlag();
    mUseRoom = stream->readFlag();
-#if !defined(TORQUE_OS_IOS)
+#if !defined(TORQUE_OS_IOS)  && !defined(TORQUE_OS_ANDROID)
    if(mUseRoom)
    if(mUseRoom)
       mRoom = stream->readRangedU32(EAX_ENVIRONMENT_GENERIC, EAX_ENVIRONMENT_COUNT);
       mRoom = stream->readRangedU32(EAX_ENVIRONMENT_GENERIC, EAX_ENVIRONMENT_COUNT);
    else
    else

+ 1 - 1
engine/source/graphics/TextureManager.cc

@@ -93,7 +93,7 @@ ConsoleFunction(setOpenGLTextureCompressionHint, void, 2, 2, " ( hint ) Use the
 
 
     TextureManager::mTextureCompressionHint = newHint;
     TextureManager::mTextureCompressionHint = newHint;
 
 
-#if !defined(TORQUE_OS_IOS)
+#if !defined(TORQUE_OS_IOS)  && !defined(TORQUE_OS_ANDROID)
     if (dglDoesSupportTextureCompression())
     if (dglDoesSupportTextureCompression())
         glHint(GL_TEXTURE_COMPRESSION_HINT_ARB, TextureManager::mTextureCompressionHint);
         glHint(GL_TEXTURE_COMPRESSION_HINT_ARB, TextureManager::mTextureCompressionHint);
 #endif
 #endif

+ 1 - 1
engine/source/module/moduleDefinition.h

@@ -28,7 +28,7 @@
 #endif
 #endif
 
 
 #ifndef _SIMSET_H_
 #ifndef _SIMSET_H_
-#include "sim/simSet.h""
+#include "sim/simSet.h"
 #endif
 #endif
 
 
 #ifndef _SIMBASE_H_
 #ifndef _SIMBASE_H_

+ 3 - 1
engine/source/platform/platformAL.h

@@ -32,7 +32,9 @@
 #include <OpenAL/alc.h>
 #include <OpenAL/alc.h>
 #include "platform/eaxtypes.h"
 #include "platform/eaxtypes.h"
 #elif defined(TORQUE_OS_ANDROID)
 #elif defined(TORQUE_OS_ANDROID)
-//TODO: android
+//Android uses openal soft from https://github.com/AerialX/openal-soft-android
+#include <AL/al.h>
+#include <AL/alc.h>
 #elif defined(TORQUE_OS_IOS)
 #elif defined(TORQUE_OS_IOS)
 #include <OpenAL/al.h>
 #include <OpenAL/al.h>
 #include <OpenAL/alc.h>
 #include <OpenAL/alc.h>

+ 12 - 18
engine/source/platform/platformAudio.h

@@ -101,8 +101,7 @@ void alxStopAll();
 // one-shot helper alxPlay functions, create and play in one call
 // one-shot helper alxPlay functions, create and play in one call
 AUDIOHANDLE alxPlay(const AudioAsset *profile, const MatrixF *transform=NULL, const Point3F *velocity=NULL);
 AUDIOHANDLE alxPlay(const AudioAsset *profile, const MatrixF *transform=NULL, const Point3F *velocity=NULL);
 
 
-//TODO: android
-/*
+
 // Source
 // Source
 void alxSourcef(AUDIOHANDLE handle, ALenum pname, ALfloat value);
 void alxSourcef(AUDIOHANDLE handle, ALenum pname, ALfloat value);
 void alxSourcefv(AUDIOHANDLE handle, ALenum pname, ALfloat *values);
 void alxSourcefv(AUDIOHANDLE handle, ALenum pname, ALfloat *values);
@@ -114,46 +113,41 @@ void alxGetSourcef(AUDIOHANDLE handle, ALenum pname, ALfloat *value);
 void alxGetSourcefv(AUDIOHANDLE handle, ALenum pname, ALfloat *values);
 void alxGetSourcefv(AUDIOHANDLE handle, ALenum pname, ALfloat *values);
 void alxGetSource3f(AUDIOHANDLE handle, ALenum pname, ALfloat *value1, ALfloat *value2, ALfloat *value3);
 void alxGetSource3f(AUDIOHANDLE handle, ALenum pname, ALfloat *value1, ALfloat *value2, ALfloat *value3);
 void alxGetSourcei(AUDIOHANDLE handle, ALenum pname, ALint *value);
 void alxGetSourcei(AUDIOHANDLE handle, ALenum pname, ALint *value);
-*/
+
 /**   alSource3f access extension for use with Point3F's
 /**   alSource3f access extension for use with Point3F's
 */
 */
-//TODO: android
-/*
+
 inline void alxSourcePoint3F(AUDIOHANDLE handle, ALenum pname, const Point3F *value)
 inline void alxSourcePoint3F(AUDIOHANDLE handle, ALenum pname, const Point3F *value)
 {
 {
    alxSource3f(handle, pname, value->x, value->y, value->z);
    alxSource3f(handle, pname, value->x, value->y, value->z);
 }
 }
-*/
+
 /**   alGetSource3f access extension for use with Point3F's
 /**   alGetSource3f access extension for use with Point3F's
 */
 */
-//TODO: android
-/*
+
 inline void alxSourceGetPoint3F(AUDIOHANDLE handle, ALenum pname, Point3F * value)
 inline void alxSourceGetPoint3F(AUDIOHANDLE handle, ALenum pname, Point3F * value)
 {
 {
    alxGetSource3f(handle, pname, &value->x, &value->y, &value->z);
    alxGetSource3f(handle, pname, &value->x, &value->y, &value->z);
 }
 }
-*/
+
 // Listener
 // Listener
-//TODO: android
-/*
+
 void alxListenerMatrixF(const MatrixF *transform);
 void alxListenerMatrixF(const MatrixF *transform);
 void alxListenerf(ALenum param, ALfloat value);
 void alxListenerf(ALenum param, ALfloat value);
 void alxGetListenerf(ALenum param, ALfloat *value);
 void alxGetListenerf(ALenum param, ALfloat *value);
 
 
-*/
+
 /**   alListener3f access extension for use with Point3F's
 /**   alListener3f access extension for use with Point3F's
 */
 */
-//TODO: android
-/*
+
 inline void alxListenerPoint3F(ALenum pname, const Point3F *value)
 inline void alxListenerPoint3F(ALenum pname, const Point3F *value)
 {
 {
    alListener3f(pname, value->x, value->y, value->z);   
    alListener3f(pname, value->x, value->y, value->z);   
 }
 }
-*/
+
 /**   alGetListener3f access extension for use with Point3F's
 /**   alGetListener3f access extension for use with Point3F's
 */
 */
-//TODO: android
-/*
+
 inline void alxGetListenerPoint3F(ALenum pname, Point3F *value)
 inline void alxGetListenerPoint3F(ALenum pname, Point3F *value)
 {
 {
    alGetListener3f(pname, &value->x, &value->y, &value->z);
    alGetListener3f(pname, &value->x, &value->y, &value->z);
@@ -164,7 +158,7 @@ void alxEnvironmenti(ALenum pname, ALint value);
 void alxEnvironmentf(ALenum pname, ALfloat value);
 void alxEnvironmentf(ALenum pname, ALfloat value);
 void alxGetEnvironmenti(ALenum pname, ALint * value);
 void alxGetEnvironmenti(ALenum pname, ALint * value);
 void alxGetEnvironmentf(ALenum pname, ALfloat * value);
 void alxGetEnvironmentf(ALenum pname, ALfloat * value);
-*/
+
 void alxSetEnvironment(const AudioEnvironment * environment);
 void alxSetEnvironment(const AudioEnvironment * environment);
 const AudioEnvironment * alxGetEnvironment();
 const AudioEnvironment * alxGetEnvironment();
 
 

+ 3 - 8
engine/source/platformAndroid/menus/popupMenu.cpp

@@ -20,17 +20,13 @@
 // IN THE SOFTWARE.
 // IN THE SOFTWARE.
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
 
-#include "platformiOS/platformiOS.h"
+#include "platformAndroid/platformAndroid.h"
 #include "platform/menus/popupMenu.h"
 #include "platform/menus/popupMenu.h"
 #include "memory/safeDelete.h"
 #include "memory/safeDelete.h"
 #include "gui/guiCanvas.h"
 #include "gui/guiCanvas.h"
-#include "platformiOS/iOSUtil.h"
-
-
-//The iPhone has it's own type of menu system
-#if 0 // PUAP -Mat file menus only can't use on iPhone
-
+#include "platformAndroid/AndroidUtil.h"
 
 
+#if 0
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // Platform Menu Data
 // Platform Menu Data
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -508,5 +504,4 @@ void PopupMenu::deletePlatformPopupMenuData()
 void PopupMenu::createPlatformMenu()
 void PopupMenu::createPlatformMenu()
 {}
 {}
 
 
-
 #endif
 #endif