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)
 
+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_MODULE    := torque2d
@@ -423,6 +433,7 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/platform/platformNetwork.cc \
 					../../../source/platform/platformString.cc \
 					../../../source/platform/platformVideo.cc \
+					../../../source/platform/platformNetAsync.unix.cc \
 					../../../source/platform/menus/popupMenu.cc \
 					../../../source/platform/nativeDialogs/msgBox.cpp \
 					../../../source/platform/Tickable.cc \
@@ -457,6 +468,7 @@ LOCAL_SRC_FILES :=  ../../../lib/ljpeg/jcapimin.c \
 					../../../source/platformAndroid/main.cpp \
 					../../../source/platformAndroid/SoundEngine.cpp \
 					../../../source/platformAndroid/T2DActivity.cpp \
+					../../../source/platformAndroid/menus/popupMenu.cpp \
 					../../../source/sim/scriptGroup.cc \
 					../../../source/sim/scriptObject.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_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
 

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

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

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

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

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

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

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

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

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

@@ -32,7 +32,9 @@
 #include <OpenAL/alc.h>
 #include "platform/eaxtypes.h"
 #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)
 #include <OpenAL/al.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
 AUDIOHANDLE alxPlay(const AudioAsset *profile, const MatrixF *transform=NULL, const Point3F *velocity=NULL);
 
-//TODO: android
-/*
+
 // Source
 void alxSourcef(AUDIOHANDLE handle, ALenum pname, ALfloat value);
 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 alxGetSource3f(AUDIOHANDLE handle, ALenum pname, ALfloat *value1, ALfloat *value2, ALfloat *value3);
 void alxGetSourcei(AUDIOHANDLE handle, ALenum pname, ALint *value);
-*/
+
 /**   alSource3f access extension for use with Point3F's
 */
-//TODO: android
-/*
+
 inline void alxSourcePoint3F(AUDIOHANDLE handle, ALenum pname, const Point3F *value)
 {
    alxSource3f(handle, pname, value->x, value->y, value->z);
 }
-*/
+
 /**   alGetSource3f access extension for use with Point3F's
 */
-//TODO: android
-/*
+
 inline void alxSourceGetPoint3F(AUDIOHANDLE handle, ALenum pname, Point3F * value)
 {
    alxGetSource3f(handle, pname, &value->x, &value->y, &value->z);
 }
-*/
+
 // Listener
-//TODO: android
-/*
+
 void alxListenerMatrixF(const MatrixF *transform);
 void alxListenerf(ALenum param, ALfloat value);
 void alxGetListenerf(ALenum param, ALfloat *value);
 
-*/
+
 /**   alListener3f access extension for use with Point3F's
 */
-//TODO: android
-/*
+
 inline void alxListenerPoint3F(ALenum pname, const Point3F *value)
 {
    alListener3f(pname, value->x, value->y, value->z);   
 }
-*/
+
 /**   alGetListener3f access extension for use with Point3F's
 */
-//TODO: android
-/*
+
 inline void alxGetListenerPoint3F(ALenum pname, Point3F *value)
 {
    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 alxGetEnvironmenti(ALenum pname, ALint * value);
 void alxGetEnvironmentf(ALenum pname, ALfloat * value);
-*/
+
 void alxSetEnvironment(const AudioEnvironment * environment);
 const AudioEnvironment * alxGetEnvironment();
 

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

@@ -20,17 +20,13 @@
 // IN THE SOFTWARE.
 //-----------------------------------------------------------------------------
 
-#include "platformiOS/platformiOS.h"
+#include "platformAndroid/platformAndroid.h"
 #include "platform/menus/popupMenu.h"
 #include "memory/safeDelete.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
 //-----------------------------------------------------------------------------
@@ -508,5 +504,4 @@ void PopupMenu::deletePlatformPopupMenuData()
 void PopupMenu::createPlatformMenu()
 {}
 
-
 #endif