From: <man...@us...> - 2015-02-12 21:35:20
|
Revision: 4753 http://sourceforge.net/p/modplug/code/4753 Author: manxorist Date: 2015-02-12 21:35:14 +0000 (Thu, 12 Feb 2015) Log Message: ----------- [New] libopenmpt: Fake mpt::Library implementation on Android that expects foreign shared object to be already loaded from the Java side and resolved required symbols globally. (completely untested code) [Mod] libopenmpt: Build Android version with MO3 support by default Modified Paths: -------------- trunk/OpenMPT/build/android_ndk/Android.mk trunk/OpenMPT/common/misc_util.cpp Modified: trunk/OpenMPT/build/android_ndk/Android.mk =================================================================== --- trunk/OpenMPT/build/android_ndk/Android.mk 2015-02-12 18:53:42 UTC (rev 4752) +++ trunk/OpenMPT/build/android_ndk/Android.mk 2015-02-12 21:35:14 UTC (rev 4753) @@ -10,8 +10,8 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/common $(LOCAL_PATH)/build/svn_version -LOCAL_CFLAGS := -fvisibility=hidden -DLIBOPENMPT_BUILD -DMPT_WITH_ZLIB -LOCAL_CPPFLAGS := -std=c++11 -fvisibility=hidden -DLIBOPENMPT_BUILD -DMPT_WITH_ZLIB +LOCAL_CFLAGS := -fvisibility=hidden -DLIBOPENMPT_BUILD -DMPT_WITH_ZLIB -DMPT_WITH_MO3 +LOCAL_CPPFLAGS := -std=c++11 -fvisibility=hidden -DLIBOPENMPT_BUILD -DMPT_WITH_ZLIB -DMPT_WITH_MO3 LOCAL_LDLIBS := -lz LOCAL_SRC_FILES := \ Modified: trunk/OpenMPT/common/misc_util.cpp =================================================================== --- trunk/OpenMPT/common/misc_util.cpp 2015-02-12 18:53:42 UTC (rev 4752) +++ trunk/OpenMPT/common/misc_util.cpp 2015-02-12 21:35:14 UTC (rev 4753) @@ -17,7 +17,11 @@ #include <time.h> #if defined(MPT_WITH_DYNBIND) -#if !MPT_OS_WINDOWS +#if MPT_OS_WINDOWS +#include <windows.h> +#elif MPT_OS_ANDROID +#include <dlfcn.h> +#else #include <ltdl.h> #endif #endif @@ -1016,12 +1020,52 @@ }; -#else +#elif MPT_OS_ANDROID +// Fake implementation. +// Load shared objects from the JAVA side of things. class LibraryHandle { +public: + + LibraryHandle(const mpt::LibraryPath &path) + { + return; + } + + ~LibraryHandle() + { + return; + } + +public: + + bool IsValid() const + { + return true; + } + + FuncPtr GetProcAddress(const std::string &symbol) const + { + if(!IsValid()) + { + return nullptr; + } + return reinterpret_cast<FuncPtr>(dlsym(0, symbol.c_str())); + } + +}; + + + +#else // MPT_OS + + +class LibraryHandle +{ + private: bool inited; @@ -1074,7 +1118,7 @@ }; -#endif +#endif // MPT_OS LibraryPath::LibraryPath(mpt::LibrarySearchPath searchPath, class mpt::PathString const &fileName) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |