Explorar o código

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

Tim Newell %!s(int64=12) %!d(string=hai) anos
pai
achega
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