From 5c7f38ea63adc0cdcda953ed7930990cf20d1611 Mon Sep 17 00:00:00 2001 From: Felipe Herranz Date: Mon, 2 Dec 2013 13:05:28 +0100 Subject: [PATCH 1/2] Added support to Android X86 --- Source/XnDeviceSensorV2/XnDeviceSensorInit.cpp | 2 +- Source/XnDeviceSensorV2/XnDeviceSensorInit.h | 2 +- Source/XnDeviceSensorV2/XnExportedSensorDevice.cpp | 4 ++-- Source/XnDeviceSensorV2/XnSensor.cpp | 3 ++- 4 files changed, 6 insertions(+), 5 deletions(-) mode change 100644 => 100755 Source/XnDeviceSensorV2/XnDeviceSensorInit.cpp mode change 100644 => 100755 Source/XnDeviceSensorV2/XnDeviceSensorInit.h mode change 100644 => 100755 Source/XnDeviceSensorV2/XnExportedSensorDevice.cpp mode change 100644 => 100755 Source/XnDeviceSensorV2/XnSensor.cpp diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorInit.cpp b/Source/XnDeviceSensorV2/XnDeviceSensorInit.cpp old mode 100644 new mode 100755 index eece4d6..dcad588 --- a/Source/XnDeviceSensorV2/XnDeviceSensorInit.cpp +++ b/Source/XnDeviceSensorV2/XnDeviceSensorInit.cpp @@ -42,7 +42,7 @@ XnStatus XnDeviceSensorInit(XnDevicePrivateData* pDevicePrivateData) nRetVal = XnDeviceSensorAllocateBuffers(pDevicePrivateData); XN_IS_STATUS_OK(nRetVal); -#if XN_PLATFORM == XN_PLATFORM_ANDROID_ARM +#if (XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_X86) nRetVal = xnOSCreateMutex(&pDevicePrivateData->hExecuteMutex); XN_IS_STATUS_OK(nRetVal); #else diff --git a/Source/XnDeviceSensorV2/XnDeviceSensorInit.h b/Source/XnDeviceSensorV2/XnDeviceSensorInit.h old mode 100644 new mode 100755 index 59a6590..49520a6 --- a/Source/XnDeviceSensorV2/XnDeviceSensorInit.h +++ b/Source/XnDeviceSensorV2/XnDeviceSensorInit.h @@ -56,7 +56,7 @@ #define XN_SENSOR_USB_MISC_BUFFER_SIZE 0x1000 #define XN_SENSOR_USB_MISC_BUFFERS 1 -#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM) +#elif (XN_PLATFORM == XN_PLATFORM_LINUX_X86 || XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_MACOSX || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_X86) #define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_ISO 32 #define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_BULK 32 #define XN_SENSOR_USB_IMAGE_BUFFER_SIZE_MULTIPLIER_LOWBAND_ISO 16 diff --git a/Source/XnDeviceSensorV2/XnExportedSensorDevice.cpp b/Source/XnDeviceSensorV2/XnExportedSensorDevice.cpp old mode 100644 new mode 100755 index 17bed9a..166040b --- a/Source/XnDeviceSensorV2/XnExportedSensorDevice.cpp +++ b/Source/XnDeviceSensorV2/XnExportedSensorDevice.cpp @@ -32,7 +32,7 @@ // Defines //--------------------------------------------------------------------------- // On weak platforms (like Arm), the default is not to use multi-process. -#if (XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM) +#if (XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_X86) #define XN_SENSOR_DEFAULT_MULTI_PROCESS (FALSE) #else #define XN_SENSOR_DEFAULT_MULTI_PROCESS (TRUE) @@ -250,4 +250,4 @@ XnExportedSensorDevice::CreatedDevices::Iterator XnExportedSensorDevice::FindCre } return it; -} \ No newline at end of file +} diff --git a/Source/XnDeviceSensorV2/XnSensor.cpp b/Source/XnDeviceSensorV2/XnSensor.cpp old mode 100644 new mode 100755 index 0d6e100..6fcad8a --- a/Source/XnDeviceSensorV2/XnSensor.cpp +++ b/Source/XnDeviceSensorV2/XnSensor.cpp @@ -42,7 +42,7 @@ #define XN_GLOBAL_CONFIG_FILE_NAME "GlobalDefaults.ini" // on weak platforms (Arm), we prefer to use BULK -#if (XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM) +#if (XN_PLATFORM == XN_PLATFORM_LINUX_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_ARM || XN_PLATFORM == XN_PLATFORM_ANDROID_X86) #define XN_SENSOR_DEFAULT_USB_INTERFACE XN_SENSOR_USB_INTERFACE_BULK_ENDPOINTS #else #define XN_SENSOR_DEFAULT_USB_INTERFACE XN_SENSOR_USB_INTERFACE_ISO_ENDPOINTS @@ -964,6 +964,7 @@ XnStatus XnSensor::GetFirmwareMode(XnParamCurrentMode* pnMode) { *pnMode = m_Firmware.GetInfo()->nCurrMode; } + else { XnUInt16 nMode; From d84f224eeba6da190c9684700c3603051f83ebaf Mon Sep 17 00:00:00 2001 From: Felipe Herranz Date: Fri, 6 Dec 2013 18:04:46 +0100 Subject: [PATCH 2/2] New folder in OpenNI/Platform to allow Android X86 build --- Platform/Android-x86/jni/Android.mk | 6 +++ Platform/Android-x86/jni/Application.mk | 28 +++++++++++++ Platform/Android-x86/jni/XnCore/Android.mk | 35 +++++++++++++++++ Platform/Android-x86/jni/XnDDK/Android.mk | 37 ++++++++++++++++++ .../Android-x86/jni/XnDeviceFile/Android.mk | 37 ++++++++++++++++++ .../jni/XnDeviceSensorV2/Android.mk | 37 ++++++++++++++++++ Platform/Android-x86/jni/XnFormats/Android.mk | 39 +++++++++++++++++++ 7 files changed, 219 insertions(+) create mode 100755 Platform/Android-x86/jni/Android.mk create mode 100755 Platform/Android-x86/jni/Application.mk create mode 100755 Platform/Android-x86/jni/XnCore/Android.mk create mode 100755 Platform/Android-x86/jni/XnDDK/Android.mk create mode 100755 Platform/Android-x86/jni/XnDeviceFile/Android.mk create mode 100755 Platform/Android-x86/jni/XnDeviceSensorV2/Android.mk create mode 100755 Platform/Android-x86/jni/XnFormats/Android.mk diff --git a/Platform/Android-x86/jni/Android.mk b/Platform/Android-x86/jni/Android.mk new file mode 100755 index 0000000..2414b04 --- /dev/null +++ b/Platform/Android-x86/jni/Android.mk @@ -0,0 +1,6 @@ +# OpenNI Android makefile. +# + +include $(call all-subdir-makefiles) + +$(call import-module,OpenNI) diff --git a/Platform/Android-x86/jni/Application.mk b/Platform/Android-x86/jni/Application.mk new file mode 100755 index 0000000..22204a9 --- /dev/null +++ b/Platform/Android-x86/jni/Application.mk @@ -0,0 +1,28 @@ +APP_STL := gnustl_static + +# Android >= v2.3 +APP_PLATFORM := android-15 + +# Build ARMv7-A machine code. +APP_ABI := x86 +#APP_CFLAGS := -O3 -ftree-vectorize -ffast-math -funroll-loops + +APP_CFLAGS += -fPIC + +ifeq ($(APP_ABI),armeabi-v7a) + APP_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mtune=cortex-a9 -mfp=vfpv3-d16 -mfpu=vfp + +# optionally add NEON to compilation flags. +# to activate, run: "ndk-build USE_NEON=1" +ifdef USE_NEON +$(call __ndk_info,Building everything with NEON support!) + APP_CFLAGS += -mfpu=neon -DHAVE_NEON=1 -flax-vector-conversions +endif +endif + +APP_CPPFLAGS += -frtti + +#$(call __ndk_info,APP_CFLAGS=$(APP_CFLAGS)) +#$(call __ndk_info,APP_CPPFLAGS=$(APP_CPPFLAGS)) + +#-fsingle-precision-constant diff --git a/Platform/Android-x86/jni/XnCore/Android.mk b/Platform/Android-x86/jni/XnCore/Android.mk new file mode 100755 index 0000000..24e9932 --- /dev/null +++ b/Platform/Android-x86/jni/XnCore/Android.mk @@ -0,0 +1,35 @@ +# XnCore Android makefile. +# libXnCore.so +# + +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +# set path to source +MY_PREFIX := $(LOCAL_PATH)/../../../../Source/XnCore/ + +# list all source files +MY_SRC_FILES := \ + $(MY_PREFIX)*.cpp + +# expand the wildcards +MY_SRC_FILE_EXPANDED := $(wildcard $(MY_SRC_FILES)) + +# make those paths relative to here +LOCAL_SRC_FILES := $(MY_SRC_FILE_EXPANDED:$(LOCAL_PATH)/%=%) + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../../../Include/ \ + $(LOCAL_PATH)/../../../../Source/ \ + +LOCAL_CFLAGS:= -fvisibility=hidden -DXN_CORE_EXPORTS + +LOCAL_LDFLAGS += -Wl,--export-dynamic + +LOCAL_SHARED_LIBRARIES := OpenNI libusb + +LOCAL_PREBUILT_LIBS := libc + +LOCAL_MODULE := XnCore + +include $(BUILD_SHARED_LIBRARY) diff --git a/Platform/Android-x86/jni/XnDDK/Android.mk b/Platform/Android-x86/jni/XnDDK/Android.mk new file mode 100755 index 0000000..1106d4b --- /dev/null +++ b/Platform/Android-x86/jni/XnDDK/Android.mk @@ -0,0 +1,37 @@ +# XnDDK Android makefile. +# libXnDDK.so +# + +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +# set path to source +MY_PREFIX := $(LOCAL_PATH)/../../../../Source/XnDDK/ + +# list all source files +MY_SRC_FILES := \ + $(MY_PREFIX)*.cpp + +# expand the wildcards +MY_SRC_FILE_EXPANDED := $(wildcard $(MY_SRC_FILES)) + +# make those paths relative to here +LOCAL_SRC_FILES := $(MY_SRC_FILE_EXPANDED:$(LOCAL_PATH)/%=%) + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../../../Include/ \ + $(LOCAL_PATH)/../../../../Source/ \ + $(LOCAL_PATH)/../../../../Source/XnCommon \ + +LOCAL_CFLAGS := -fvisibility=hidden -DXN_DDK_EXPORTS + +LOCAL_LDFLAGS += -Wl,--export-dynamic + +LOCAL_SHARED_LIBRARIES := OpenNI libusb XnCore XnFormats + +LOCAL_PREBUILT_LIBS := libc + +LOCAL_MODULE := XnDDK + +include $(BUILD_SHARED_LIBRARY) + diff --git a/Platform/Android-x86/jni/XnDeviceFile/Android.mk b/Platform/Android-x86/jni/XnDeviceFile/Android.mk new file mode 100755 index 0000000..9e3663c --- /dev/null +++ b/Platform/Android-x86/jni/XnDeviceFile/Android.mk @@ -0,0 +1,37 @@ +# XnDeviceFile Android makefile. +# libXnDeviceFile.so +# + +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +# set path to source +MY_PREFIX := $(LOCAL_PATH)/../../../../Source/XnDeviceFile/ + +# list all source files +MY_SRC_FILES := \ + $(MY_PREFIX)*.cpp + +# expand the wildcards +MY_SRC_FILE_EXPANDED := $(wildcard $(MY_SRC_FILES)) + +# make those paths relative to here +LOCAL_SRC_FILES := $(MY_SRC_FILE_EXPANDED:$(LOCAL_PATH)/%=%) + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../../../Include/ \ + $(LOCAL_PATH)/../../../../Source/ \ + $(LOCAL_PATH)/../../../../Source/XnCommon \ + +LOCAL_CFLAGS := -fvisibility=hidden -DXN_DEVICE_EXPORTS + +LOCAL_LDFLAGS += -Wl,--export-dynamic + +LOCAL_SHARED_LIBRARIES := OpenNI libusb XnCore XnFormats XnDDK + +LOCAL_PREBUILT_LIBS := libc + +LOCAL_MODULE := XnDeviceFile + +include $(BUILD_SHARED_LIBRARY) + diff --git a/Platform/Android-x86/jni/XnDeviceSensorV2/Android.mk b/Platform/Android-x86/jni/XnDeviceSensorV2/Android.mk new file mode 100755 index 0000000..47e959e --- /dev/null +++ b/Platform/Android-x86/jni/XnDeviceSensorV2/Android.mk @@ -0,0 +1,37 @@ +# XnDeviceSensorV2 Android makefile. +# libXnDeviceSensorV2.so +# + +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +# set path to source +MY_PREFIX := $(LOCAL_PATH)/../../../../Source/XnDeviceSensorV2/ + +# list all source files +MY_SRC_FILES := \ + $(MY_PREFIX)*.cpp + +# expand the wildcards +MY_SRC_FILE_EXPANDED := $(wildcard $(MY_SRC_FILES)) + +# make those paths relative to here +LOCAL_SRC_FILES := $(MY_SRC_FILE_EXPANDED:$(LOCAL_PATH)/%=%) + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../../../Include/ \ + $(LOCAL_PATH)/../../../../Source/ \ + $(LOCAL_PATH)/../../../../Source/XnCommon \ + +LOCAL_CFLAGS := -fvisibility=hidden -DXN_DEVICE_EXPORTS + +LOCAL_LDFLAGS += -Wl,--export-dynamic + +LOCAL_SHARED_LIBRARIES := OpenNI libusb XnCore XnFormats XnDDK + +LOCAL_PREBUILT_LIBS := libc + +LOCAL_MODULE := XnDeviceSensorV2 + +include $(BUILD_SHARED_LIBRARY) + diff --git a/Platform/Android-x86/jni/XnFormats/Android.mk b/Platform/Android-x86/jni/XnFormats/Android.mk new file mode 100755 index 0000000..72cd33d --- /dev/null +++ b/Platform/Android-x86/jni/XnFormats/Android.mk @@ -0,0 +1,39 @@ +# XnFormats Android makefile. +# libXnFormats.so +# + +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +# set path to source +MY_PREFIX := $(LOCAL_PATH)/../../../../Source/XnFormats/ + +# list all source files +MY_SRC_FILES := \ + $(MY_PREFIX)*.cpp \ + $(MY_PREFIX)../External/LibJPEG/*.c + +# expand the wildcards +MY_SRC_FILE_EXPANDED := $(wildcard $(MY_SRC_FILES)) + +# make those paths relative to here +LOCAL_SRC_FILES := $(MY_SRC_FILE_EXPANDED:$(LOCAL_PATH)/%=%) + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../../../Include/ \ + $(LOCAL_PATH)/../../../../Source/ \ + $(LOCAL_PATH)/../../../../Source/XnCommon \ + $(LOCAL_PATH)/../../../../Source/External/LibJPEG \ + +LOCAL_CFLAGS := -fvisibility=hidden -DXN_FORMATS_EXPORTS + +LOCAL_LDFLAGS += -Wl,--export-dynamic + +LOCAL_SHARED_LIBRARIES := OpenNI libusb XnCore + +LOCAL_PREBUILT_LIBS := libc + +LOCAL_MODULE := XnFormats + +include $(BUILD_SHARED_LIBRARY) +