OpenNI 1.0.0
|
00001 /***************************************************************************** 00002 * * 00003 * OpenNI 1.0 Alpha * 00004 * Copyright (C) 2010 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * OpenNI is free software: you can redistribute it and/or modify * 00009 * it under the terms of the GNU Lesser General Public License as published * 00010 * by the Free Software Foundation, either version 3 of the License, or * 00011 * (at your option) any later version. * 00012 * * 00013 * OpenNI is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00016 * GNU Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public License * 00019 * along with OpenNI. If not, see <http://www.gnu.org/licenses/>. * 00020 * * 00021 *****************************************************************************/ 00022 00023 00024 00025 00026 #ifndef __XN_PLATFORM_H__ 00027 #define __XN_PLATFORM_H__ 00028 00029 //--------------------------------------------------------------------------- 00030 // Platform Defines 00031 //--------------------------------------------------------------------------- 00032 #define XN_PLATFORM_WIN32 1 00033 #define XN_PLATFORM_XBOX360 2 00034 #define XN_PLATFORM_PS3 3 00035 #define XN_PLATFORM_WII 4 00036 #define XN_PLATFORM_LINUX_X86 5 00037 #define XN_PLATFORM_FILES_ONLY 6 00038 #define XN_PLATFORM_ARC 6 00039 #define XN_PLATFORM_LINUX_ARM 7 00040 #define XN_PLATFORM_MACOSX 8 00041 00042 #define XN_PLATFORM_IS_LITTLE_ENDIAN 1 00043 #define XN_PLATFORM_IS_BIG_ENDIAN 2 00044 00045 #define XN_PLATFORM_USE_NO_VAARGS 1 00046 #define XN_PLATFORM_USE_WIN32_VAARGS_STYLE 2 00047 #define XN_PLATFORM_USE_GCC_VAARGS_STYLE 3 00048 #define XN_PLATFORM_USE_ARC_VAARGS_STYLE 4 00049 00050 //--------------------------------------------------------------------------- 00051 // Platform Identifier 00052 //--------------------------------------------------------------------------- 00053 00054 #if defined(_WIN32) // Microsoft Visual Studio 00055 #ifndef RC_INVOKED 00056 #if _MSC_VER < 1300 // Before MSVC7 (2003) 00057 #error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions below 2003 (7.0) are not supported! 00058 #endif 00059 00060 #if _MSC_VER > 1600 // After MSVC8 (2010) 00061 #error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported! 00062 #endif 00063 #endif 00064 00065 #include "Win32/XnPlatformWin32.h" 00066 #elif (linux && (i386 || __x86_64__)) 00067 #include "Linux-x86/XnPlatformLinux-x86.h" 00068 #elif (linux && __arm__) 00069 #include "Linux-Arm/XnPlatformLinux-Arm.h" 00070 #elif (__APPLE__) 00071 #include "MacOSX/XnPlatformMacOSX.h" 00072 #else 00073 #error OpenNI Platform Abstraction Layer - Unsupported Platform! 00074 #endif 00075 00076 //--------------------------------------------------------------------------- 00077 // Basic Common Macros 00078 //--------------------------------------------------------------------------- 00079 #ifndef TRUE 00080 #define TRUE 1 00081 #endif 00082 00083 #ifndef FALSE 00084 #define FALSE 0 00085 #endif 00086 00087 #define XN_MIN(a,b) (((a) < (b)) ? (a) : (b)) 00088 00089 #define XN_MAX(a,b) (((a) > (b)) ? (a) : (b)) 00090 00091 //--------------------------------------------------------------------------- 00092 // API Export/Import Macros 00093 //--------------------------------------------------------------------------- 00094 00095 #ifdef __cplusplus 00096 #define XN_C_API_EXPORT extern "C" XN_API_EXPORT 00097 #define XN_C_API_IMPORT extern "C" XN_API_IMPORT 00098 #define XN_CPP_API_EXPORT XN_API_EXPORT 00099 #define XN_CPP_API_IMPORT XN_API_IMPORT 00100 #else 00101 #define XN_C_API_EXPORT XN_API_EXPORT 00102 #define XN_C_API_IMPORT XN_API_IMPORT 00103 #endif 00104 00105 #ifdef XN_EXPORTS 00106 #define XN_C_API XN_C_API_EXPORT 00107 #define XN_CPP_API XN_CPP_API_EXPORT 00108 #else 00109 #define XN_C_API XN_C_API_IMPORT 00110 #define XN_CPP_API XN_CPP_API_IMPORT 00111 #endif 00112 00113 #endif //__XN_PLATFORM_H__ 00114