Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Updated codebase to the latest OpenNI / Sensor version (1.3.2.1 / 5.0…

….3.3)
commit 608308fe838f3c359bfe5bc5af01782f9d32cef1 1 parent 8f199ca
Avin authored

Showing 49 changed files with 1,249 additions and 688 deletions. Show diff stats Hide diff stats

  1. +21 2 CHANGES
  2. +1 5 Include/XnCommon.h
  3. +2 2 Include/XnPsVersion.h
  4. +9 7 OpenNI/Data/SamplesConfig.xml
  5. +55 0 Platform/Linux-x86/Build/Common/CommonCSMakefile
  6. +133 0 Platform/Linux-x86/Build/Common/CommonCppMakefile
  7. +25 0 Platform/Linux-x86/Build/Common/CommonDefs.mak
  8. +79 0 Platform/Linux-x86/Build/Common/CommonJavaMakefile
  9. +23 0 Platform/Linux-x86/Build/Common/CommonTargets.mak
  10. +6 0 Platform/Linux-x86/Build/Common/Platform.Arm
  11. +3 0  Platform/Linux-x86/Build/Common/Platform.CE4100
  12. +24 0 Platform/Linux-x86/Build/Common/Platform.x86
  13. +1 1  Platform/Linux-x86/Build/EngineLibMakefile
  14. +1 1  Platform/Linux-x86/Build/Utils/EngineUtilMakefile
  15. +25 15 Platform/Linux-x86/CreateRedist/RedistMaker
  16. +83 36 Platform/Linux-x86/CreateRedist/install.sh
  17. +109 110 Platform/Win32/CreateRedist/EE_NI/EE_NI.wxs
  18. +424 432 Platform/Win32/CreateRedist/EE_NI/Fragments/FilesFragment.wxs
  19. +9 10 Platform/Win32/CreateRedist/EE_NI/Includes/EENIVariables.wxi
  20. BIN  Platform/Win32/CreateRedist/EE_NI/bin/Release/EE_NI_setup.exe
  21. BIN  Platform/Win32/CreateRedist/EE_NI/bin/Release/en-us/EE_NI.wixpdb
  22. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/Release/EE_NI.wixobj
  23. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/Release/Fragments/BinariesFragment.wixobj
  24. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/Release/Fragments/FilesFragment.wixobj
  25. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/Release/Product.Generated.wixobj
  26. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/Release/UI/CustomeInstallUI.wixobj
  27. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/x64/Release/EE_NI.wixobj
  28. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/x64/Release/Fragments/BinariesFragment.wixobj
  29. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/x64/Release/Fragments/FilesFragment.wixobj
  30. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/x64/Release/Product.Generated.wixobj
  31. +1 1  Platform/Win32/CreateRedist/EE_NI/obj/x64/Release/UI/CustomeInstallUI.wixobj
  32. +1 1  Platform/Win32/CreateRedist/Engine_Config.xml
  33. +12 9 README
  34. +1 5 Source/XnCommon/XnCommon.h
  35. +34 2 Source/XnDeviceFile/XnFileDevice.cpp
  36. +3 0  Source/XnDeviceFile/XnFileDevice.h
  37. +1 1  Source/XnDeviceSensorV2/XnDataProcessor.h
  38. +1 1  Source/XnDeviceSensorV2/XnDeviceSensorInit.h
  39. +64 7 Source/XnDeviceSensorV2/XnExportedSensorDevice.cpp
  40. +14 0 Source/XnDeviceSensorV2/XnExportedSensorDevice.h
  41. +4 0 Source/XnDeviceSensorV2/XnExportedSensorGenerator.cpp
  42. +30 1 Source/XnDeviceSensorV2/XnIRProcessor.cpp
  43. +2 0  Source/XnDeviceSensorV2/XnIRProcessor.h
  44. +6 0 Source/XnDeviceSensorV2/XnSensor.cpp
  45. +24 21 Source/XnDeviceSensorV2/XnSensorFirmwareParams.cpp
  46. +1 1  Source/XnDeviceSensorV2/XnSensorFixedParams.cpp
  47. +1 4 Source/XnDeviceSensorV2/XnSensorImageGenerator.cpp
  48. +1 1  Source/XnDeviceSensorV2/XnSensorImageStream.h
  49. +6 3 Source/XnDeviceSensorV2/XnSensorStreamHelper.cpp
23 CHANGES
... ... @@ -1,7 +1,26 @@
1 1 Detailed Change log:
2 2 --------------------
3 3
4   -Version 5.0.1.32 (Unstable version - Apr 11th 2010)
  4 +Version 5.0.3.3 (Stable version - Jul 5th 2011)
  5 +-----------------------------------------------
  6 + * Linux: Allow installation to a different directory (for cross-compilation mainly).
  7 + * Workaround firmware bug: if no depth, IR timestamps are corrupt. Use host clock for timestamps instead.
  8 + * Bug Fix: unregistering USB event callback when destroying sensor to prevent crash when unplugging device.
  9 + * XnExportedSensorDevice now only enumerates devices that weren't created in the context yet.
  10 +
  11 +Version 5.0.2.3 (Stable version - May 3rd 2011)
  12 +-----------------------------------------------
  13 + * Fixed use of deprecated CreateProductionTree().
  14 + * Bug Fix: playing XNS files in applications using deprecated API might cause memory leaks.
  15 + * Bug Fix: serial number was in hex format instead of decimal one.
  16 + * Make sure SensorV2 nodes will only use SensorV2 device (up to now they only checked it's a PrimeSense device).
  17 +
  18 +Version 5.0.1.33 (Unstable version - Apr 18th 2011)
  19 +---------------------------------------------------
  20 + * CE4100: adding support in makefiles, redist and install.
  21 + * CE4100: default is now BULK with compressed formats.
  22 +
  23 +Version 5.0.1.32 (Unstable version - Apr 11th 2011)
5 24 ---------------------------------------------------
6 25 * Fixing log prints of resolutions (-1 appeared as MAX_UINT64...) to the resolution name.
7 26 * Linux Bug Fix: Server creates two log files, one in the client folder and one in /var/log/primesense/XnSensorServer
@@ -9,7 +28,7 @@ Version 5.0.1.32 (Unstable version - Apr 11th 2010)
9 28 * Win32: WIX installer (replacing NSIS)
10 29 * Fixed wrong version in XnDeviceFile
11 30
12   -Version 5.0.1.31 (Stable version - Apr 11th 2010)
  31 +Version 5.0.1.31 (Stable version - Apr 11th 2011)
13 32 -------------------------------------------------
14 33 * Fix BULK timeout - it was too small...
15 34 * Bug Fix: IR only works in QVGA...
6 Include/XnCommon.h
@@ -21,10 +21,6 @@
21 21 *****************************************************************************/
22 22
23 23
24   -
25   -
26   -
27   -
28 24 #ifndef __XN_COMMON_H__
29 25 #define __XN_COMMON_H__
30 26
@@ -59,4 +55,4 @@ typedef enum XnPrimeSenseErrorModules
59 55 #define XN_PS_STATUS_MESSAGE_MAP_END(module) \
60 56 XN_STATUS_MESSAGE_MAP_END_FROM(XN_ERROR_GROUP_PRIMESENSE, module)
61 57
62   -#endif // __XN_COMMON_H__
  58 +#endif // __XN_COMMON_H__
4 Include/XnPsVersion.h
@@ -41,9 +41,9 @@
41 41 /** Xiron minor version. */
42 42 #define XN_PS_MINOR_VERSION 0
43 43 /** Xiron maintenance version. */
44   -#define XN_PS_MAINTENANCE_VERSION 1
  44 +#define XN_PS_MAINTENANCE_VERSION 3
45 45 /** Xiron build version. */
46   -#define XN_PS_BUILD_VERSION 32
  46 +#define XN_PS_BUILD_VERSION 3
47 47
48 48 /** Xiron version (in brief string format): "Major.Minor.Maintenance (Build)" */
49 49 #define XN_PS_BRIEF_VERSION_STRING \
16 OpenNI/Data/SamplesConfig.xml
@@ -14,6 +14,13 @@
14 14 </Dumps>
15 15 </Log>
16 16 <ProductionNodes>
  17 + <!-- Normal Depth -->
  18 + <Node type="Depth" name="Depth1">
  19 + <Configuration>
  20 + <Mirror on="true"/>
  21 + </Configuration>
  22 + </Node>
  23 +
17 24 <!-- Normal Image -->
18 25 <Node type="Image" name="Image1" stopOnError="false">
19 26 <Configuration>
@@ -49,13 +56,8 @@
49 56 <Mirror on="true"/>
50 57 </Configuration>
51 58 </Node>
52   - -->
53   -
54   - <Node type="Depth" name="Depth1">
55   - <Configuration>
56   - <Mirror on="true"/>
57   - </Configuration>
58   - </Node>
  59 + -->
  60 +
59 61 <!--
60 62 <Node type="Audio" name="Audio1">
61 63 </Node>
55 Platform/Linux-x86/Build/Common/CommonCSMakefile
... ... @@ -0,0 +1,55 @@
  1 +#############################################################################
  2 +# Primesense template makefile.
  3 +# This file should not be made, but only included from other makefiles.
  4 +# By default, this makefile compiles in release. To compile a debug version:
  5 +# make CFG=Debug
  6 +#
  7 +# Project makefile should define the following BEFORE including this file:
  8 +# SRC_FILES - a list of all source files
  9 +# Output name under one of the following:
  10 +# NETLIB_NAME (.net module) or
  11 +# NETEXE_NAME (.net executable)
  12 +# BIN_DIR - Bin directory (output dir)
  13 +# INC_DIRS - a list of additional include directories
  14 +# USED_LIBS - a list of libraries to link with
  15 +# CSFLAGS - [Optional] additional flags for mono compiler
  16 +# NET_WIN_FORMS - [Optional] when 1, application uses WinForms
  17 +#############################################################################
  18 +
  19 +# take this file's dir
  20 +COMMON_CS_MAKE_FILE_DIR = $(dir $(lastword $(MAKEFILE_LIST)))
  21 +
  22 +include $(COMMON_CS_MAKE_FILE_DIR)CommonDefs.mak
  23 +
  24 +# create -r option to mcs
  25 +USED_NETLIBS_OPTION = $(foreach lib,$(USED_LIBS),-r:$(OUT_DIR)/$(lib).dll)
  26 +
  27 +ifeq "$(NET_WIN_FORMS)" "1"
  28 + USED_NETLIBS_OPTION += -r:System.Windows.Forms.dll -r:System.Drawing.dll
  29 +endif
  30 +
  31 +ifeq "$(CFG)" "Release"
  32 + CSFLAGS += -o+
  33 +endif
  34 +
  35 +# some lib / exe specifics
  36 +ifneq "$(NETLIB_NAME)" ""
  37 + OUTPUT_NAME = $(NETLIB_NAME).dll
  38 + TARGET = library
  39 +endif
  40 +ifneq "$(NETEXE_NAME)" ""
  41 + OUTPUT_NAME = $(NETEXE_NAME).exe
  42 + TARGET = winexe
  43 +endif
  44 +
  45 +OUTPUT_COMMAND = gmcs -out:$(OUTPUT_FILE) -target:$(TARGET) $(CSFLAGS) $(USED_NETLIBS_OPTION) $(SRC_FILES)
  46 +
  47 +#############################################################################
  48 +# Targets
  49 +#############################################################################
  50 +include $(COMMON_CS_MAKE_FILE_DIR)CommonTargets.mak
  51 +
  52 +# Final output file
  53 +$(OUTPUT_FILE):
  54 + $(OUTPUT_COMMAND)
  55 +
133 Platform/Linux-x86/Build/Common/CommonCppMakefile
... ... @@ -0,0 +1,133 @@
  1 +#############################################################################
  2 +# Primesense template makefile.
  3 +# This file should not be made, but only included from other makefiles.
  4 +# By default, this makefile compiles in release. To compile a debug version:
  5 +# make CFG=Debug
  6 +#
  7 +# Project makefile should define the following BEFORE including this file:
  8 +# SRC_FILES - a list of all source files
  9 +# Output name under one of the following:
  10 +# EXE_NAME (executable),
  11 +# LIB_NAME (dynamic library) or
  12 +# SLIB_NAME (static library) or
  13 +# BIN_DIR - Bin directory (output dir)
  14 +# INC_DIRS - a list of additional include directories
  15 +# LIB_DIRS - a list of additional library directories
  16 +# USED_LIBS - a list of libraries to link with
  17 +# DEFINES - [Optional] additional preprocessor defines
  18 +# CFLAGS - [Optional] additional flags for the compiler
  19 +# LDFLAGS - [Optional] additional flags for the linker
  20 +# SSE_GENERATION - [Optional] The SSE generation to use (default is 3)
  21 +# TARGET_SYS_ROOT - [Optional] The path to the root of the target
  22 +#############################################################################
  23 +
  24 +ifndef TARGET_SYS_ROOT
  25 + TARGET_SYS_ROOT = /
  26 +endif
  27 +
  28 +# take this file's dir
  29 +COMMON_CPP_MAKE_FILE_DIR = $(dir $(lastword $(MAKEFILE_LIST)))
  30 +
  31 +include $(COMMON_CPP_MAKE_FILE_DIR)CommonDefs.mak
  32 +
  33 +# define a function to figure .o file for each source file (placed under intermediate directory)
  34 +SRC_TO_OBJ = $(addprefix ./$(INT_DIR)/,$(addsuffix .o,$(notdir $(basename $1))))
  35 +
  36 +# create a list of all object files
  37 +OBJ_FILES = $(call SRC_TO_OBJ,$(SRC_FILES_LIST))
  38 +
  39 +# define a function to translate any source file to its dependency file (note that the way we create
  40 +# dep files, as a side affect of compilation, always puts the files in the INT_DIR with suffix .d)
  41 +SRC_TO_DEP = $(addprefix ./$(INT_DIR)/,$(addsuffix .d,$(notdir $(basename $1))))
  42 +
  43 +# create a list of all dependency files
  44 +DEP_FILES = $(call SRC_TO_DEP,$(SRC_FILES_LIST))
  45 +
  46 +# append the -I switch to each include directory
  47 +INC_DIRS_OPTION = $(foreach dir,$(INC_DIRS),-I$(dir))
  48 +
  49 +# append the -L switch to each library directory
  50 +LIB_DIRS_OPTION = $(foreach dir,$(LIB_DIRS),-L$(dir)) -L$(OUT_DIR)
  51 +
  52 +# append the -l switch to each library used
  53 +USED_LIBS_OPTION = $(foreach lib,$(USED_LIBS),-l$(lib))
  54 +
  55 +# append the -D switch to each define
  56 +DEFINES_OPTION = $(foreach def,$(DEFINES),-D$(def))
  57 +
  58 +# tell compiler to use the target system root
  59 +ifneq ("$(TARGET_SYS_ROOT)","/")
  60 + CFLAGS += --sysroot=$(TARGET_SYS_ROOT)
  61 + LDFLAGS += --sysroot=$(TARGET_SYS_ROOT)
  62 +endif
  63 +
  64 +# set Debug / Release flags
  65 +ifeq "$(CFG)" "Debug"
  66 + CFLAGS += -g
  67 +endif
  68 +ifeq "$(CFG)" "Release"
  69 + CFLAGS += -O2 -DNDEBUG
  70 + CSFLAGS += -o+
  71 +endif
  72 +
  73 +CFLAGS += $(INC_DIRS_OPTION) $(DEFINES_OPTION)
  74 +LDFLAGS += $(LIB_DIRS_OPTION) $(USED_LIBS_OPTION)
  75 +
  76 +# some lib / exe specifics
  77 +ifneq "$(LIB_NAME)" ""
  78 + OUTPUT_NAME = lib$(LIB_NAME).so
  79 + CFLAGS += -fPIC -fvisibility=hidden
  80 + ifneq ("$(OSTYPE)","Darwin")
  81 + LDFLAGS += -Wl,--no-undefined
  82 + OUTPUT_NAME = lib$(LIB_NAME).so
  83 + OUTPUT_COMMAND = $(CXX) -o $(OUTPUT_FILE) $(OBJ_FILES) $(LDFLAGS) -shared
  84 + else
  85 + LDFLAGS += -undefined error
  86 + OUTPUT_NAME = lib$(LIB_NAME).dylib
  87 + OUTPUT_COMMAND = $(CXX) -o $(OUTPUT_FILE) $(OBJ_FILES) $(LDFLAGS) -dynamiclib -headerpad_max_install_names
  88 + endif
  89 +endif
  90 +ifneq "$(EXE_NAME)" ""
  91 + OUTPUT_NAME = $(EXE_NAME)
  92 + OUTPUT_COMMAND = $(CXX) -o $(OUTPUT_FILE) $(OBJ_FILES) $(LDFLAGS)
  93 +endif
  94 +ifneq "$(SLIB_NAME)" ""
  95 + OUTPUT_NAME = lib$(SLIB_NAME).a
  96 + OUTPUT_COMMAND = $(AR) $(OUTPUT_FILE) $(OBJ_FILES)
  97 +endif
  98 +
  99 +define CREATE_SRC_TARGETS
  100 +# create a target for the object file (the CXX command creates both an .o file
  101 +# and a .d file)
  102 +ifneq ("$(OSTYPE)","Darwin")
  103 +$(call SRC_TO_OBJ,$1) : $1 | $(INT_DIR)
  104 + $(CXX) -MD -MP -MT "$(call SRC_TO_DEP,$1) $$@" -c $(CFLAGS) -o $$@ $$<
  105 +else
  106 +$(call SRC_TO_OBJ,$1) : $1 | $(INT_DIR)
  107 + $(CXX) -c $(CFLAGS) -o $$@ $$<
  108 +endif
  109 +endef
  110 +
  111 +#############################################################################
  112 +# Targets
  113 +#############################################################################
  114 +.PHONY: clean-objs clean-defs
  115 +
  116 +include $(COMMON_CPP_MAKE_FILE_DIR)CommonTargets.mak
  117 +
  118 +# create targets for each source file
  119 +$(foreach src,$(SRC_FILES_LIST),$(eval $(call CREATE_SRC_TARGETS,$(src))))
  120 +
  121 +# include all dependency files (we don't need them the first time, so we can use -include)
  122 +-include $(DEP_FILES)
  123 +
  124 +$(OUTPUT_FILE): $(OBJ_FILES)
  125 + $(OUTPUT_COMMAND)
  126 +
  127 +clean-objs:
  128 + rm -rf $(OBJ_FILES)
  129 +
  130 +clean-defs:
  131 + rm -rf $(DEP_FILES)
  132 +
  133 +clean: clean-objs clean-defs
25 Platform/Linux-x86/Build/Common/CommonDefs.mak
... ... @@ -0,0 +1,25 @@
  1 +# some defaults
  2 +ifndef CFG
  3 + CFG = Release
  4 +endif
  5 +
  6 +# expand file list
  7 +SRC_FILES_LIST = $(wildcard $(SRC_FILES))
  8 +
  9 +# define the intermediate directory
  10 +INT_DIR = $(CFG)
  11 +
  12 +# define output directory
  13 +OUT_DIR = $(BIN_DIR)/$(CFG)
  14 +
  15 +# full path to output file
  16 +OUTPUT_FILE = $(OUT_DIR)/$(OUTPUT_NAME)
  17 +
  18 +# take this file's dir
  19 +COMMON_MAK_DIR = $(dir $(lastword $(MAKEFILE_LIST)))
  20 +
  21 +# get the OS type
  22 +OSTYPE := $(shell uname -s)
  23 +
  24 +# platform specific args
  25 +-include $(COMMON_MAK_DIR)Platform.$(PLATFORM)
79 Platform/Linux-x86/Build/Common/CommonJavaMakefile
... ... @@ -0,0 +1,79 @@
  1 +#############################################################################
  2 +# Primesense template makefile.
  3 +# This file should not be made, but only included from other makefiles.
  4 +# By default, this makefile compiles in release. To compile a debug version:
  5 +# make CFG=Debug
  6 +#
  7 +# Project makefile should define the following BEFORE including this file:
  8 +# SRC_FILES - a list of all source files
  9 +# JAR_NAME - name of the package
  10 +# BIN_DIR - Bin directory (output dir)
  11 +# INC_DIRS - a list of additional include directories
  12 +# LIB_DIRS - a list of additional library directories
  13 +# USED_JARS - a list of libraries used
  14 +# MAIN_CLASS - [Optional] for executable jar
  15 +#############################################################################
  16 +
  17 +# take this file's dir
  18 +COMMON_CS_MAKE_FILE_DIR = $(dir $(lastword $(MAKEFILE_LIST)))
  19 +
  20 +include $(COMMON_CS_MAKE_FILE_DIR)CommonDefs.mak
  21 +
  22 +nullstring :=
  23 +space := $(nullstring) # end of the line
  24 +
  25 +USED_JARS_OPTION =
  26 +ifneq "$(USED_JARS)" ""
  27 + USED_JARS_PATH = $(foreach jar, $(USED_JARS), $(OUT_DIR)/$(jar).jar /usr/share/java/$(jar).jar)
  28 + USED_JARS_OPTION = -cp $(subst $(space),:,$(strip $(USED_JARS_PATH)))
  29 +endif
  30 +
  31 +OUTPUT_NAME = $(JAR_NAME).jar
  32 +
  33 +# create manifest file if needed
  34 +JAR_MANIFEST_CREATE_COMMAND :=
  35 +MANIFEST_FILE :=
  36 +JAR_OPTIONS = -cf
  37 +
  38 +ifneq (, $(if $(or $(MAIN_CLASS), $(USED_JARS)),1))
  39 + JAR_OPTIONS = -cfm
  40 + MANIFEST_FILE = Manifest.txt
  41 + JAR_MANIFEST_CREATE_COMMAND = (
  42 + ifneq (,$(MAIN_CLASS))
  43 + JAR_MANIFEST_CREATE_COMMAND += echo "Main-Class: $(MAIN_CLASS)";
  44 + endif
  45 + ifneq (,$(USED_JARS))
  46 + JAR_MANIFEST_CREATE_COMMAND += echo "Class-Path: $(USED_JARS_PATH)";
  47 + endif
  48 + JAR_MANIFEST_CREATE_COMMAND += ) > $(MANIFEST_FILE)
  49 +endif
  50 +
  51 +CREATE_SHORTCUT =
  52 +ifneq (, $(MAIN_CLASS))
  53 + SHORTCUT = $(OUT_DIR)/$(JAR_NAME)
  54 + CREATE_SHORTCUT = echo java -jar $(OUTPUT_NAME) > $(SHORTCUT); chmod +x $(SHORTCUT)
  55 +endif
  56 +
  57 +#############################################################################
  58 +# Targets
  59 +#############################################################################
  60 +include $(COMMON_CS_MAKE_FILE_DIR)CommonTargets.mak
  61 +
  62 +.PHONY: clean-manifest clean-int
  63 +
  64 +# Final output file
  65 +$(OUTPUT_FILE): | $(INT_DIR)
  66 + javac $(USED_JARS_OPTION) -d $(INT_DIR) $(SRC_FILES)
  67 + $(JAR_MANIFEST_CREATE_COMMAND)
  68 + jar $(JAR_OPTIONS) $@ $(MANIFEST_FILE) -C $(INT_DIR) .
  69 + $(CREATE_SHORTCUT)
  70 +
  71 +clean-manifest:
  72 + rm -rf $(MANIFEST_FILE)
  73 +
  74 +clean-int:
  75 + rm -rf $(INT_DIR)
  76 +
  77 +clean: clean-manifest clean-int
  78 +
  79 +
23 Platform/Linux-x86/Build/Common/CommonTargets.mak
... ... @@ -0,0 +1,23 @@
  1 +#############################################################################
  2 +# Targets
  3 +#############################################################################
  4 +.PHONY: all clean clean-$(OUTPUT_FILE)
  5 +
  6 +# define the target 'all' (it is first, and so, default)
  7 +all: $(OUTPUT_FILE)
  8 +
  9 +# Intermediate directory
  10 +$(INT_DIR):
  11 + mkdir -p $(INT_DIR)
  12 +
  13 +# Output directory
  14 +$(OUT_DIR):
  15 + mkdir -p $(OUT_DIR)
  16 +
  17 +# Final output file
  18 +$(OUTPUT_FILE): $(SRC_FILES_LIST) | $(OUT_DIR)
  19 +
  20 +clean-$(OUTPUT_FILE):
  21 + rm -rf $(OUTPUT_FILE)
  22 +
  23 +clean: clean-$(OUTPUT_FILE)
6 Platform/Linux-x86/Build/Common/Platform.Arm
... ... @@ -0,0 +1,6 @@
  1 +export CXX=/home/primesense/DiGMi/BeagleBoard/Kernel/OE/angstrom-dev/cross/armv7a/bin/arm-angstrom-linux-gnueabi-g++
  2 +export GLES=1
  3 +
  4 +ifeq "$(CFG)" "Release"
  5 + CFLAGS += -mcpu=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -ffast-math -fsingle-precision-constant
  6 +endif
3  Platform/Linux-x86/Build/Common/Platform.CE4100
... ... @@ -0,0 +1,3 @@
  1 +export TARGET_SYS_ROOT=/home/primesense/IntelCE-20/IntelCE-20.0.11052.243195/build_i686/staging_dir
  2 +export CXX=/home/primesense/IntelCE-20/IntelCE-20.0.11052.243195/build_i686/staging_dir/bin/i686-cm-linux-g++ -DCE4100
  3 +export GLES=1
24 Platform/Linux-x86/Build/Common/Platform.x86
... ... @@ -0,0 +1,24 @@
  1 +# some defaults
  2 +ifndef SSE_GENERATION
  3 + SSE_GENERATION = 3
  4 +endif
  5 +
  6 +# change c struct alignment options to be compatable with Win32
  7 +ifneq ("$(OSTYPE)","Darwin")
  8 + CFLAGS += -malign-double
  9 +else
  10 + CFLAGS += -arch i386 -arch x86_64
  11 + LDFLAGS += -arch i386 -arch x86_64
  12 +endif
  13 +
  14 +ifeq "$(CFG)" "Release"
  15 + ifeq ($(SSE_GENERATION), 2)
  16 + CFLAGS += -msse2
  17 + else
  18 + ifeq ($(SSE_GENERATION), 3)
  19 + CFLAGS += -msse3
  20 + else
  21 + ($error "Only SSE2 and SSE3 are supported")
  22 + endif
  23 + endif
  24 +endif
2  Platform/Linux-x86/Build/EngineLibMakefile
@@ -21,5 +21,5 @@ INC_DIRS += \
21 21
22 22 BIN_DIR = ../../Bin
23 23
24   -include /usr/include/ni/CommonMakefile
  24 +include ../Common/CommonCppMakefile
25 25
2  Platform/Linux-x86/Build/Utils/EngineUtilMakefile
@@ -21,4 +21,4 @@ INC_DIRS += \
21 21
22 22 BIN_DIR = ../../../Bin
23 23
24   -include /usr/include/ni/CommonMakefile
  24 +include ../../CommonCppMakefile
40 Platform/Linux-x86/CreateRedist/RedistMaker
... ... @@ -1,10 +1,17 @@
1 1 #!/bin/bash -e
2 2
3   -use_4100=0
4   -if [ "$1" == "4100" ]
5   -then
6   -use_4100=1
7   -fi
  3 +case $1 in
  4 +x86 | "")
  5 + PLATFORM="x86" ;;
  6 +CE4100)
  7 + PLATFORM="CE4100" ;;
  8 +Arm)
  9 + PLATFORM="Arm" ;;
  10 +*)
  11 + echo "Unknown platform"
  12 + exit 1
  13 + ;;
  14 +esac
8 15
9 16 SCRIPT_DIR=`pwd`
10 17
@@ -21,14 +28,8 @@ rm -rf Final
21 28 rm -rf ../Redist
22 29
23 30 # Build Engine
24   -if [ "$use_4100" == "1" ]
25   -then
26   -cd ../Build
27   -./Make.4100
28   -cd -
29   -else
30   -make -C ../Build
31   -fi
  31 +make PLATFORM=$PLATFORM -C ../Build clean
  32 +make PLATFORM=$PLATFORM -C ../Build
32 33
33 34 # create redist folder structure
34 35 mkdir -p ../Redist
@@ -47,17 +48,26 @@ cp ../Bin/Release/libXnFormats.* ../Redist/Lib
47 48 cp ../Bin/Release/libXnCore.* ../Redist/Lib
48 49 cp ../Bin/Release/XnSensorServer ../Redist/Bin
49 50 cp ../Install/* ../Redist/Install
50   -cp ../../../Data/GlobalDefaultsKinect.ini ../Redist/Config
51 51 cp install.sh ../Redist
52 52
  53 +# fix GlobalDefaults according to platform
  54 +if [ "$PLATFORM" == "CE4100" ]; then
  55 + # change default UsbInterface to BULK and default image+depth format to compressed
  56 + cat ../../../Data/GlobalDefaultsKinect.ini | sed 's/[;]*UsbInterface=.*/UsbInterface=2/' | sed 's/[;]*InputFormat=.*/InputFormat=1/' > ../Redist/Config/GlobalDefaults.ini
  57 +else
  58 + cp ../../../Data/GlobalDefaultsKinect.ini ../Redist/Config
  59 +fi
  60 +
53 61 # create tar
54 62 mkdir -p Final
55 63 cd ../Redist
56 64
57 65 if [ "`uname -s`" == "Darwin" ]; then
58 66 TAR_TARGET="MacOSX"
59   -elif [ "$use_4100" == "1" ]; then
  67 +elif [ "$PLATFORM" == "CE4100" ]; then
60 68 TAR_TARGET="CE4100"
  69 +elif [ "$PLATFORM" == "Arm" ]; then
  70 + TAR_TARGET="Arm"
61 71 elif [ "`uname -m`" == "i686" ]; then
62 72 TAR_TARGET="Linux32"
63 73 elif [ "`uname -m`" == "x86_64" ]; then
119 Platform/Linux-x86/CreateRedist/install.sh
... ... @@ -1,48 +1,90 @@
1   -#!/bin/bash -e
2   -
3   -SCRIPT_DIR=`pwd`/`dirname $0`
4   -
5   -INSTALL_LIB=/usr/lib
6   -INSTALL_BIN=/usr/bin
7   -INSTALL_ETC=/usr/etc/primesense
8   -INSTALL_RULES=/etc/udev/rules.d
9   -
10   -if [ "`uname -s`" == "Darwin" ]; then
  1 +#!/bin/sh -e
  2 +
  3 +usage="
  4 +Usage: $0 [OPTIONS]
  5 +Installs PrimeSense Sensor Driver to current machine.
  6 +
  7 +-i,--install
  8 + Installs PrimeSense Sensor Driver (default mode)
  9 +-u,--uninstall
  10 + Uninstalls PrimeSense Sensor Driver.
  11 +-c,--cross-compile-rootfs <path>
  12 + Used for cross-compiling. Installs PrimeSense Sensor Driver to <path> instead of '/'.
  13 +-h,--help
  14 + Shows this help screen.
  15 +"
  16 +
  17 +OS_NAME=`uname -s`
  18 +
  19 +case $OS_NAME in
  20 +Darwin)
11 21 MODULES="libXnDeviceSensorV2KM.dylib libXnDeviceFile.dylib"
12   -else
  22 + ;;
  23 +*)
13 24 MODULES="libXnDeviceSensorV2KM.so libXnDeviceFile.so"
14   -fi
  25 + ;;
  26 +esac
15 27
16 28 RULES_FILE="55-primesense-usb.rules"
17 29
18   -# read arguments
19   -INSTALL="1"
  30 +# create file list
  31 +SCRIPT_DIR=`pwd`/`dirname $0`
20 32
21   -while (( "$#" )); do
22   - case "$1" in
23   - "-i")
24   - INSTALL="1"
  33 +LIB_FILES=`ls $SCRIPT_DIR/Lib/*`
  34 +BIN_FILES=`ls $SCRIPT_DIR/Bin/*`
  35 +
  36 +rootfs=
  37 +
  38 +# parse command line
  39 +while [ "$1" ]; do
  40 + case $1 in
  41 + -i|--install)
  42 + install=yes
  43 + ;;
  44 + -u|--uninstall)
  45 + uninstall=yes
  46 + ;;
  47 + -c|--cross-staging-dir)
  48 + shift
  49 + rootfs=$1
25 50 ;;
26   - "-u")
27   - INSTALL="0"
  51 + -h|--help)
  52 + echo "$usage"
  53 + exit 0
28 54 ;;
29 55 *)
30   - echo "Usage: $0 [options]"
31   - echo "Available options:"
32   - printf "\t-i\tInstall (default)\n"
33   - printf "\t-u\tUninstall\n"
  56 + echo "Unrecognized option $1"
34 57 exit 1
35   - ;;
36 58 esac
37 59 shift
38 60 done
39 61
40   -# create file list
41   -LIB_FILES=`ls $SCRIPT_DIR/Lib/*`
42   -BIN_FILES=`ls $SCRIPT_DIR/Bin/*`
  62 +# default mode is install
  63 +if [ ! "$install" = yes ] && [ ! "$uninstall" = yes ]; then
  64 + install=yes
  65 +fi
  66 +
  67 +# validity check
  68 +if [ "$install" = yes ] && [ "$uninstall" = yes ]; then
  69 + echo "-i and -u flags cannot be used together!"
  70 + exit 1
  71 +fi
43 72
44   -if [ "$INSTALL" == "1" ]; then
  73 +INSTALL_LIB=$rootfs/usr/lib
  74 +INSTALL_BIN=$rootfs/usr/bin
  75 +INSTALL_ETC=$rootfs/usr/etc/primesense
  76 +INSTALL_RULES=$rootfs/etc/udev/rules.d
  77 +SERVER_LOGS_DIR=$rootfs/var/log/primesense/XnSensorServer
45 78
  79 +# make all calls into OpenNI run in this filesystem
  80 +export OPEN_NI_INSTALL_PATH=$rootfs
  81 +# make sure the staging dir OpenNI is the one being run
  82 +export LD_LIBRARY_PATH=$INSTALL_LIB
  83 +
  84 +if [ "$install" = yes ]; then
  85 + printf "Installing PrimeSense Sensor\n"
  86 + printf "****************************\n\n"
  87 +
46 88 # create config dir
47 89 printf "creating config dir $INSTALL_ETC..."
48 90 mkdir -p $INSTALL_ETC
@@ -61,7 +103,7 @@ if [ "$INSTALL" == "1" ]; then
61 103 # register modules
62 104 for module in $MODULES; do
63 105 printf "registering module '$module' with OpenNI..."
64   - niReg -r $INSTALL_LIB/$module $INSTALL_ETC
  106 + $INSTALL_BIN/niReg -r $INSTALL_LIB/$module $INSTALL_ETC
65 107 printf "OK\n"
66 108 done
67 109
@@ -78,9 +120,9 @@ if [ "$INSTALL" == "1" ]; then
78 120
79 121 # create server log dir
80 122 printf "creating server logs dir..."
81   - mkdir -p /var/log/primesense/XnSensorServer
  123 + mkdir -p $SERVER_LOGS_DIR
82 124 # make this dir readable and writable by all (we allow anyone to delete logs)
83   - chmod a+w /var/log/primesense/XnSensorServer
  125 + chmod a+w $SERVER_LOGS_DIR
84 126 printf "OK\n"
85 127
86 128 if [ "`uname -s`" != "Darwin" ]; then
@@ -90,12 +132,17 @@ if [ "$INSTALL" == "1" ]; then
90 132 printf "OK\n"
91 133 fi
92 134
93   -else #uninstall
  135 + printf "\n*** DONE ***\n\n"
  136 +
  137 +elif [ "$uninstall" = yes ]; then
  138 +
  139 + printf "Uninstalling PrimeSense Sensor\n"
  140 + printf "******************************\n\n"
94 141
95 142 # unregister modules
96 143 for module in $MODULES; do
97 144 printf "unregistering module '$module' from OpenNI..."
98   - if niReg -u $INSTALL_LIB/$module; then
  145 + if $INSTALL_BIN/niReg -u $INSTALL_LIB/$module; then
99 146 printf "OK\n"
100 147 fi
101 148 done
@@ -126,6 +173,6 @@ else #uninstall
126 173 printf "OK\n"
127 174 fi
128 175
129   -fi
  176 + printf "\n*** DONE ***\n\n"
130 177
131   -printf "\n*** DONE ***\n\n"
  178 +fi
219 Platform/Win32/CreateRedist/EE_NI/EE_NI.wxs
@@ -2,7 +2,7 @@
2 2 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
3 3 <!-- This is how we include wxi files -->
4 4 <?include $(sys.CURRENTDIR)Includes\EENIVariables.wxi ?>
5   -
  5 +
6 6 <Product Id="*" Name="$(var.ProductFullName)" Language="!(loc.LANG)" Version="$(var.VersionNumber)"
7 7 Manufacturer="!(loc.ManufacturerName)" UpgradeCode="$(var.UpgradeCode)">
8 8
@@ -10,7 +10,7 @@
10 10 <Package InstallerVersion="300" Compressed="yes" InstallScope="perMachine" Platform="$(var.Platform)" InstallPrivileges="elevated"/>
11 11
12 12 <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" CompressionLevel="high"/>
13   -
  13 +
14 14 <MajorUpgrade Schedule="afterInstallInitialize" AllowSameVersionUpgrades="yes" IgnoreRemoveFailure="yes"
15 15 DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit." />
16 16
@@ -21,14 +21,14 @@
21 21 <!-- Set the icon to show next to the program name in Add/Remove programs -->
22 22 <Icon Id="EE_NIIcon.ico" SourceFile="$(var.ResourcesDir)\mainicon.ico" />
23 23 <Property Id="ARPPRODUCTICON" Value="EE_NIIcon.ico" />
24   -
  24 +
25 25
26 26 <!--WixVariable Id="WixUIDialogBmp" Value="$(var.ResourcesDir)\Header.bmp"/-->
27 27 <WixVariable Id="WixUIBannerBmp" Value="$(var.ResourcesDir)\Header.bmp" />
28 28
29   -
  29 +
30 30 <Directory Id="TARGETDIR" Name="SourceDir">
31   - <Directory Id="$(var.PlatformProgramFilesFolder)">
  31 + <Directory Id="$(var.PlatformProgramFilesFolder)">
32 32 <Directory Id="PrimeSenseFolder" Name="PrimeSense">
33 33 <Directory Id="INSTALLLOCATION" Name="SensorKinect">
34 34 <Directory Id="INSTALLLOCATIONBin" Name="Bin$(var.PlatformSuffix)">
@@ -39,38 +39,55 @@
39 39 <Directory Id="INSTALLLOCATIONSAMPLES" Name="Samples">
40 40 <Directory Id="INSTALLLOCATIONSAMPLESBIN" Name="Bin$(var.PlatformSuffix)">
41 41 <Directory Id="INSTALLLOCATIONSAMPLESBINRELEASE" Name="Release">
42   - <Directory Id="INSTALLLOCATIONSAMPLESBINRELEASELOG" Name="Log"/>
  42 + <Directory Id="INSTALLLOCATIONSAMPLESBINRELEASELOG" Name="Log"/>
43 43 </Directory>
44 44 <Directory Id="INSTALLLOCATIONSAMPLESBINDEBUG" Name="Debug">
45 45 <Directory Id="INSTALLLOCATIONSAMPLESBINDEBUGLOG" Name="Log"/>
46 46 </Directory>
47   - </Directory>
48   - </Directory>
49   - </Directory>
  47 + </Directory>
  48 + </Directory>
  49 + </Directory>
50 50 </Directory>
51   - </Directory>
52   -
53   - <?if $(var.BinaryOnlyRedist)="False"?>
54   - <Directory Id="ProgramMenuFolder">
55   - <Directory Id="PrimeSenseShortcutFolder" Name="!(loc.ManufacturerName)">
56   - <Directory Id="ApplicationProgramsFolder" Name="$(var.ProductShortName)" >
57   - <Directory Id="DocumentationShortcutFolder" Name="Documentation"/>
58   - <Directory Id="SamplesShortcutFolder" Name="Samples"/>
59   - </Directory>
  51 + </Directory>
  52 +
  53 +
  54 + <Directory Id="ProgramMenuFolder">
  55 + <Directory Id="PrimeSenseShortcutFolder" Name="!(loc.ManufacturerName)">
  56 + <Directory Id="ApplicationProgramsFolder" Name="$(var.ProductShortName)" >
  57 + <?if $(var.BinaryOnlyRedist)="False"?>
  58 + <Directory Id="DocumentationShortcutFolder" Name="Documentation"/>
  59 + <Directory Id="SamplesShortcutFolder" Name="Samples"/>
  60 + <?endif?>
60 61 </Directory>
61   - </Directory>
62   - <?endif?>
63   -
  62 + </Directory>
  63 + </Directory>
  64 +
64 65 </Directory>
65   -
  66 +
66 67 <DirectoryRef Id="INSTALLLOCATIONBinLog">
67 68 <Component Id="RemoveLogDir" Guid="6DA284AC-1CA4-49e1-869B-79B8D073A652" KeyPath="yes">
68 69 <RemoveFile Id="RemoveLogFiles" On="uninstall" Name="*.*" />
69 70 <RemoveFolder Id="RemoveLogDir" On="uninstall"/>
70 71 </Component>
71 72 </DirectoryRef>
72   -
73   -
  73 +
  74 + <DirectoryRef Id="ApplicationProgramsFolder">
  75 + <Component Id="ApplicationShortcut" Guid="0EE39B02-8075-4357-8ECB-996C4072D506" >
  76 + <Shortcut Id="UninstallProduct"
  77 + Name="Uninstall !(loc.ProductName)"
  78 + Target="[SystemFolder]msiexec.exe"
  79 + Arguments="/x [ProductCode]"/>
  80 + <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
  81 + <RegistryValue Root="HKCU" Key="Software\PrimeSense\EE" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
  82 + </Component>
  83 + </DirectoryRef>
  84 +
  85 + <DirectoryRef Id="PrimeSenseShortcutFolder">
  86 + <Component Id="RemovePrimeSenseShortcutFolder" Guid="691128F3-BC80-4f16-BF70-5E2922348B3F">
  87 + <RemoveFolder Id="PrimeSenseShortcutFolder" On="uninstall"/>
  88 + <RegistryValue Root="HKCU" Key="Software\PrimeSense\EE" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
  89 + </Component>
  90 + </DirectoryRef>
74 91
75 92 <?if $(var.BinaryOnlyRedist)="False"?>
76 93 <DirectoryRef Id="INSTALLLOCATIONSAMPLESBINRELEASELOG">
@@ -85,85 +102,67 @@
85 102 <RemoveFile Id="RemoveDebugLogFiles" On="uninstall" Name="*.*" />
86 103 <RemoveFolder Id="RemoveDebugLogDir" On="uninstall"/>
87 104 </Component>
88   - </DirectoryRef>
89   -
90   - <DirectoryRef Id="ApplicationProgramsFolder">
91   - <Component Id="ApplicationShortcut" Guid="0EE39B02-8075-4357-8ECB-996C4072D506" >
92   - <Shortcut Id="UninstallProduct"
93   - Name="Uninstall !(loc.ProductName)"
94   - Target="[SystemFolder]msiexec.exe"
95   - Arguments="/x [ProductCode]"/>
96   - <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
  105 + </DirectoryRef>
  106 +
  107 + <DirectoryRef Id="SamplesShortcutFolder">
  108 + <Component Id="SamplesShortcut" Guid="B56B0D70-4885-4859-BB92-0536704F1A54" >
  109 + <Shortcut Id="DViewerMenuShortcut"
  110 + Name="3D Viewer$(var.PlatformSuffix)"
  111 + Description="3D Viewer$(var.PlatformSuffix)"
  112 + Target="[INSTALLLOCATIONSAMPLESBINRELEASE]Sample-3DViewer$(var.PlatformSuffix).exe"
  113 + WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
  114 +
  115 + <Shortcut Id="SimpleViewerMenuShortcut"
  116 + Name="Simple Viewer$(var.PlatformSuffix)"
  117 + Description="Simple Viewer$(var.PlatformSuffix)"
  118 + Target="[INSTALLLOCATIONSAMPLESBINRELEASE]\Sample-XnVSimpleViewer$(var.PlatformSuffix).exe"
  119 + WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
  120 +
  121 + <Shortcut Id="MeshViewerMenuShortcut"
  122 + Name="Mesh Viewer$(var.PlatformSuffix)"
  123 + Description="Mesh Viewer$(var.PlatformSuffix)"
  124 + Target="[INSTALLLOCATIONSAMPLESBINRELEASE]\Sample-MeshViewer$(var.PlatformSuffix).exe"
  125 + WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
  126 +
  127 + <Shortcut Id="RGBViewerMenuShortcut"
  128 + Name="RGB Viewer$(var.PlatformSuffix)"
  129 + Description="RGB Viewer$(var.PlatformSuffix)"
  130 + Target="[INSTALLLOCATIONSAMPLESBINRELEASE]\Sample-RGBViewer$(var.PlatformSuffix).exe"
  131 + WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
  132 +
  133 +
  134 + <Shortcut Id="SampleDirMenuShortcut"
  135 + Name="Samples$(var.PlatformSuffix)"
  136 + Description="Samples Directory"
  137 + Target="[INSTALLLOCATION]Samples\"
  138 + WorkingDirectory="INSTALLLOCATION"/>
  139 +
  140 + <RemoveFolder Id="SamplesShortcutFolder" On="uninstall"/>
  141 +
97 142 <RegistryValue Root="HKCU" Key="Software\PrimeSense\EE" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
98 143 </Component>
99 144 </DirectoryRef>
100   -
101   - <DirectoryRef Id="PrimeSenseShortcutFolder">
102   - <Component Id="RemovePrimeSenseShortcutFolder" Guid="691128F3-BC80-4f16-BF70-5E2922348B3F">
103   - <RemoveFolder Id="PrimeSenseShortcutFolder" On="uninstall"/>
104   - <RegistryValue Root="HKCU" Key="Software\PrimeSense\EE" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
105   - </Component>
106   - </DirectoryRef>
107   -
108   - <DirectoryRef Id="SamplesShortcutFolder">
109   - <Component Id="SamplesShortcut" Guid="B56B0D70-4885-4859-BB92-0536704F1A54" >
110   - <Shortcut Id="DViewerMenuShortcut"
111   - Name="3D Viewer$(var.PlatformSuffix)"
112   - Description="3D Viewer$(var.PlatformSuffix)"
113   - Target="[INSTALLLOCATIONSAMPLESBINRELEASE]Sample-3DViewer$(var.PlatformSuffix).exe"
114   - WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
115   -
116   - <Shortcut Id="SimpleViewerMenuShortcut"
117   - Name="Simple Viewer$(var.PlatformSuffix)"
118   - Description="Simple Viewer$(var.PlatformSuffix)"
119   - Target="[INSTALLLOCATIONSAMPLESBINRELEASE]\Sample-XnVSimpleViewer$(var.PlatformSuffix).exe"
120   - WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
121   -
122   - <Shortcut Id="MeshViewerMenuShortcut"
123   - Name="Mesh Viewer$(var.PlatformSuffix)"
124   - Description="Mesh Viewer$(var.PlatformSuffix)"
125   - Target="[INSTALLLOCATIONSAMPLESBINRELEASE]\Sample-MeshViewer$(var.PlatformSuffix).exe"
126   - WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
127   -
128   - <Shortcut Id="RGBViewerMenuShortcut"
129   - Name="RGB Viewer$(var.PlatformSuffix)"
130   - Description="RGB Viewer$(var.PlatformSuffix)"
131   - Target="[INSTALLLOCATIONSAMPLESBINRELEASE]\Sample-RGBViewer$(var.PlatformSuffix).exe"
132   - WorkingDirectory="INSTALLLOCATIONSAMPLESBINRELEASE"/>
133   -
134   -
135   - <Shortcut Id="SampleDirMenuShortcut"
136   - Name="Samples$(var.PlatformSuffix)"
137   - Description="Samples Directory"
138   - Target="[INSTALLLOCATION]Samples\"
139   - WorkingDirectory="INSTALLLOCATION"/>
140   -
141   - <RemoveFolder Id="SamplesShortcutFolder" On="uninstall"/>
142   -
143   - <RegistryValue Root="HKCU" Key="Software\PrimeSense\EE" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
144   - </Component>
145   - </DirectoryRef>
146   -
147   - <DirectoryRef Id="DocumentationShortcutFolder">
  145 +
  146 + <DirectoryRef Id="DocumentationShortcutFolder">
148 147 <Component Id="DocumentationShortcut" Guid="8842655F-C47D-4c65-B69D-59DCE36832A2" >
149 148 <Shortcut Id="APIRefMenuShortcut"
150 149 Name="API Reference $(var.VersionNumber)"
151 150 Description="API Reference $(var.VersionNumber)"
152 151 Target="[INSTALLLOCATION]Documentation\Experience Engine $(var.VersionNumber) for Windows - API Reference.chm"
153 152 WorkingDirectory="INSTALLLOCATION"/>
154   -
  153 +
155 154 <Shortcut Id="ProgrammerGuideShortcut"
156 155 Name="Programmer's Guide $(var.VersionNumber)"
157 156 Description="Programmer's Guide $(var.VersionNumber)"
158 157 Target="[INSTALLLOCATION]Documentation\Experience Engine $(var.VersionNumber) for Windows - Programmer's Guide.pdf"
159 158 WorkingDirectory="INSTALLLOCATION"/>
160   -
  159 +
161 160 <RemoveFolder Id="DocumentationShortcutFolder" On="uninstall"/>
162 161 <RegistryValue Root="HKCU" Key="Software\PrimeSense\EE" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
163 162 </Component>
164   - </DirectoryRef>
  163 + </DirectoryRef>
165 164 <?endif?>
166   -
  165 +
167 166 <Property Id="OPENNIINSTALLDIR" Secure="yes">
168 167 <RegistrySearch Id="OpenNIInstallDirReg" Root="HKLM" Key="Software\OPENNI" Name="InstallDir" Type="raw"/>
169 168 </Property>
@@ -171,7 +170,7 @@
171 170 <Property Id="OPENNIVERSION">
172 171 <RegistrySearch Id="OpenNIVersionReg" Root="HKLM" Key="Software\OPENNI" Name="Version" Type="raw"/>
173 172 </Property>
174   -
  173 +
175 174 <Condition Message="Please install OpenNI verion $(var.OpenNIVersion) or higher.">OPENNIVERSION>="$(var.OpenNIVersion)" OR Installed</Condition>
176 175
177 176 <!-- Install the USB Driver -->
@@ -181,7 +180,7 @@
181 180 ExeCommand="&quot;[INSTALLLOCATIONDriver]dpinst-amd64.exe&quot; /sw /el"/>
182 181
183 182 <!-- Register XnDeviceFile-->
184   - <CustomAction Id="QtExecRegXnDeviceFile" Property="SetRegXnDeviceFileProperty" Execute="immediate"
  183 + <CustomAction Id="QtExecRegXnDeviceFile" Property="SetRegXnDeviceFileProperty" Execute="immediate"
185 184 Value="&quot;[OPENNIINSTALLDIR]bin$(var.PlatformSuffix)\niReg$(var.PlatformSuffix).exe&quot; &quot;[INSTALLLOCATIONBin]XnDeviceFile$(var.PlatformSuffix).dll&quot;"/>
186 185 <CustomAction Id="SetRegXnDeviceFileProperty" BinaryKey="WixCA" DllEntry="CAQuietExec$(var.PlatformSuffix)"
187 186 Execute="deferred" Return="check" Impersonate="no"/>
@@ -203,16 +202,16 @@
203 202 Value="&quot;[OPENNIINSTALLDIR]bin$(var.PlatformSuffix)\niReg$(var.PlatformSuffix).exe&quot; -u &quot;[INSTALLLOCATIONBin]XnDeviceSensorV2KM$(var.PlatformSuffix).dll&quot; &quot;[INSTALLLOCATION]Data&quot;" />
204 203 <CustomAction Id="SetUnRegXnDeviceSensorV2Property" BinaryKey="WixCA" DllEntry="CAQuietExec$(var.PlatformSuffix)"
205 204 Execute="deferred" Return="ignore" Impersonate="no"/>-->
206   -
207   - <!--
  205 +
  206 + <!--
208 207 <CustomAction Id='RegXnDeviceFile' Directory="INSTALLLOCATIONBin" ExeCommand="&quot;[OPENNIINSTALLDIR]bin\niReg$(var.PlatformSuffix).exe&quot; &quot;[INSTALLLOCATIONBin]XnDeviceFile$(var.PlatformSuffix).dll&quot;" Return="check" />
209 208
210 209
211 210 <CustomAction Id='RegXnDeviceSensorV2' Directory="INSTALLLOCATIONBin" ExeCommand="&quot;[OPENNIINSTALLDIR]bin\niReg$(var.PlatformSuffix).exe&quot; &quot;[INSTALLLOCATIONBin]XnDeviceSensorV2KM$(var.PlatformSuffix).dll&quot; &quot;[INSTALLLOCATION]Data&quot;" Return="check" />
212 211
213 212 -->
214   -
215   - <CustomAction Id='UnRegXnDeviceFile' Directory="INSTALLLOCATIONBin" Return="ignore" Impersonate="no" Execute="deferred"
  213 +
  214 + <CustomAction Id='UnRegXnDeviceFile' Directory="INSTALLLOCATIONBin" Return="ignore" Impersonate="no" Execute="deferred"
216 215 ExeCommand="&quot;[OPENNIINSTALLDIR]bin$(var.PlatformSuffix)\niReg$(var.PlatformSuffix).exe&quot; -u &quot;[INSTALLLOCATIONBin]XnDeviceFile$(var.PlatformSuffix).dll&quot;" />
217 216
218 217
@@ -227,7 +226,7 @@
227 226 <RegistryValue Type="string" Name="InstallDir" Value="[INSTALLLOCATION]" />
228 227 <RegistryValue Type="string" Name="Version" Value="$(var.VersionNumber)"/>
229 228 </RegistryKey>
230   -
  229 +
231 230 <RegistryKey Root="HKCR" Key=".xns" Action="createAndRemoveOnUninstall" >
232 231 <RegistryValue Type="string" Value="PrimeSenseRecording"/>
233 232 </RegistryKey>
@@ -245,29 +244,31 @@
245 244 </RegistryKey>
246 245
247 246 </Component>
248   - </DirectoryRef>
249   -
250   - <Feature Id="EE_NIFeature" Title="!(loc.ProductName)" Level="1">
  247 + </DirectoryRef>
  248 +
  249 + <Feature Id="EE_NIFeature" Title="!(loc.ProductName)" Level="1">
251 250 <?if $(var.BinaryOnlyRedist)="False"?>
252   - <ComponentGroupRef Id="EE_NIFiles" />
253   - <ComponentGroupRef Id="EE_Shortcuts" />
254   - <ComponentRef Id="RemoveReleaseLogDir"/>
255   - <ComponentRef Id="RemoveDebugLogDir"/>
  251 + <ComponentGroupRef Id="EE_NIFiles" />
  252 + <ComponentGroupRef Id="EE_Shortcuts" />
  253 + <ComponentRef Id="RemoveReleaseLogDir"/>
  254 + <ComponentRef Id="RemoveDebugLogDir"/>
256 255 <?else?>
257   - <ComponentGroupRef Id="EE_NIBinaryFiles" />
  256 + <ComponentGroupRef Id="EE_NIBinaryFiles" />
258 257 <?endif?>
259 258
  259 + <ComponentRef Id="RemovePrimeSenseShortcutFolder"/>
  260 + <ComponentRef Id="ApplicationShortcut"/>
260 261 <ComponentRef Id="RegistryEntries" />
261 262 <ComponentRef Id="RemoveLogDir"/>
262   -
263   - </Feature>
264   -
  263 +
  264 + </Feature>
  265 +
265 266 <WixVariable Id="WixUICostingPopupOptOut" Value="0" />
266 267
267 268 <InstallExecuteSequence>
268 269
269 270 <LaunchConditions After='AppSearch'>NOT Installed</LaunchConditions>
270   -
  271 +
271 272 <!--
272 273 <Custom Action="QtExecUnRegXnDeviceFile" After="CostFinalize"> REMOVE ~= "ALL" </Custom>
273 274 <Custom Action="SetUnRegXnDeviceFileProperty" Before="RemoveFiles"> REMOVE ~= "ALL" </Custom>
@@ -279,9 +280,9 @@
279 280 <Custom Action='QtExecRegXnDeviceSensorV2' After='CostFinalize'>NOT Installed </Custom>
280 281 <Custom Action='SetRegXnDeviceSensorV2Property' After='PublishProduct'>NOT Installed </Custom>
281 282
282   -<!-- <Custom Action='RegXnDeviceFile' After='InstallFinalize'>NOT Installed </Custom>
  283 + <!-- <Custom Action='RegXnDeviceFile' After='InstallFinalize'>NOT Installed </Custom>
283 284 <Custom Action='RegXnDeviceSensorV2' After='InstallFinalize'>NOT Installed </Custom>-->
284   -
  285 +
285 286 <Custom Action='UnRegXnDeviceFile' Before="RemoveFiles"> REMOVE ~= "ALL" </Custom>
286 287 <Custom Action='UnRegXnDeviceSensorV2' Before="RemoveFiles"> REMOVE ~= "ALL" </Custom>
287 288
@@ -291,12 +292,10 @@
291 292
292 293
293 294 </InstallExecuteSequence>
294   - </Product>
  295 + </Product>
295 296
296 297 <Fragment>
297   - <ComponentGroup Id="EE_Shortcuts">
298   - <ComponentRef Id="ApplicationShortcut"/>
299   - <ComponentRef Id="RemovePrimeSenseShortcutFolder"/>
  298 + <ComponentGroup Id="EE_Shortcuts">
300 299 <ComponentRef Id="SamplesShortcut"/>
301 300 <ComponentRef Id="DocumentationShortcut"/>
302