eLynx SDK
v3.0.1 C++ image processing API reference |
00001 //============================================================================ 00002 // CoreOS.h Core.Component package 00003 //============================================================================ 00004 // Usage : Here the place were is centratised OS dependences 00005 //---------------------------------------------------------------------------- 00006 // Copyright (C) 2006 by eLynx project 00007 // 00008 // This library is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU Library General Public 00010 // License as published by the Free Software Foundation; either 00011 // version 2 of the License, or (at your option) any later version. 00012 // 00013 // This library 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. 00016 // See the GNU Library General Public License for more details. 00017 //---------------------------------------------------------------------------- 00018 #ifdef TRACE_INCLUDES 00019 #pragma message(".include CoreOS.h") 00020 #endif 00021 00022 #ifndef __CoreOS_h__ 00023 #define __CoreOS_h__ 00024 00025 // eLynx SDK v3.0.1 00026 #define elxSDK_VERSION 3 00027 #define elxSDK_SUB_VERSION1 0 00028 #define elxSDK_SUB_VERSION2 1 00029 00030 // --- start OS section --- 00031 #if defined(WINDOWS) || defined(_WIN32) || defined(WIN32) 00032 00033 # define elxWINDOWS 1 00034 # define elxPLATFORM "Windows" 00035 # define elxMULTICORE 00036 #ifdef _DEBUG 00037 #define elxDEBUG 00038 #endif 00039 00040 #elif defined(linux) || defined(LINUX) 00041 00042 # define elxLINUX 1 00043 # define elxPLATFORM "Linux" 00044 00045 #elif defined(__APPLE__) && defined(__MACH__) 00046 00047 # define elxMACOSX 1 00048 # define elxPLATFORM "MacOSX" 00049 00050 #endif 00051 00052 // --- multicore section --- 00053 #if defined (elxMULTICORE) || defined (MULTICORE) || defined (multicore) 00054 #define elxUSE_THREAD 1 00055 #endif 00056 00057 // setup configuration string 00058 #ifdef elxDEBUG 00059 # define elxCONFIG "Debug" 00060 #else 00061 # define elxCONFIG "Release" 00062 #endif 00063 00064 //############################################################################ 00065 // WIN32 00066 //############################################################################ 00067 #ifdef elxWINDOWS 00068 00069 typedef unsigned char uint8; 00070 typedef signed char int8; 00071 typedef unsigned short uint16; 00072 typedef signed short int16; 00073 typedef unsigned int uint32; 00074 typedef signed int int32; 00075 typedef unsigned __int64 uint64; 00076 typedef signed __int64 int64; 00077 00078 #if (_MSC_VER < 1400) 00079 #pragma error "Compiler version not supported, please use at least Visual Studio 2005." 00080 #elif (_MSC_VER >= 1400) && (_MSC_VER < 1500) 00081 # define elxVC8 00082 # define elxVC 8 00083 # define elxVCS "8" 00084 #elif (_MSC_VER >= 1500) && (_MSC_VER < 1600) 00085 # define elxVC9 00086 # define elxVC 9 00087 # define elxVCS "9" 00088 #elif (_MSC_VER >= 1600) 00089 # define elxVC 10 00090 # define elxVC10 00091 # define elxVCS "10" 00092 #endif 00093 00094 #define elxLITTLE_ENDIAN 00095 00096 // exclude rarely-used stuff from Windows headers 00097 #define WIN32_LEAN_AND_MEAN 00098 00099 #ifdef SHOW_PLATFORM 00100 #pragma message ("#Selected platform is elxWINDOWS") 00101 #endif 00102 #pragma comment (compiler) 00103 #pragma comment (user, "File "__FILE__" compiled on " __DATE__ " at " __TIME__) 00104 00105 #include <windows.h> 00106 #include <stdlib.h> 00107 00108 // Turn on uint32 typedef 00109 typedef long elxTimeType; 00110 00111 namespace eLynx { 00113 typedef HWND WinId; 00114 } 00115 00116 // define aliases for snprintf and vsnprintf functions 00117 #define elxSNPrintf _snprintf 00118 #define elxVSNPrintf _vsnprintf 00119 00120 #endif // elxWINDOWS 00121 00122 00123 //############################################################################ 00124 // LINUX 00125 //############################################################################ 00126 #ifdef elxLINUX 00127 00128 #define elxLITTLE_ENDIAN 00129 00130 #include <bits/types.h> 00131 #include <sys/types.h> 00132 #include <sys/time.h> 00133 00134 typedef unsigned char uint8; 00135 typedef signed char int8; 00136 typedef unsigned short uint16; 00137 typedef signed short int16; 00138 typedef unsigned int uint32; 00139 typedef signed int int32; 00140 typedef __uint64_t uint64; 00141 typedef __int64_t int64; 00142 00143 typedef timeval elxTimeType; 00144 00145 namespace eLynx { 00147 //typedef Window WinId; 00148 } 00149 00150 // define aliases for snprintf and vsnprintf functions 00151 #define elxSNPrintf snprintf 00152 #define elxVSNPrintf vsnprintf 00153 00154 #endif // elxLINUX 00155 00156 00157 //############################################################################ 00158 // MACOSX 00159 //############################################################################ 00160 #ifdef elxMACOSX 00161 00162 #define elxBIG_ENDIAN 00163 00164 namespace eLynx { 00166 typedef HWND WinId; 00167 } 00168 00169 //typedef timeval elxTimeType; 00170 00171 // define aliases for snprintf and vsnprintf functions 00172 #define elxSNPrintf snprintf 00173 #define elxVSNPrintf vsnprintf 00174 00175 #endif // elxMACOSX 00176 00177 00178 //############################################################################ 00179 00180 // --- end OS section --- 00181 00183 #define elxFIXME { char * p=0; *p=0; } 00184 00185 00186 00187 //############################################################################ 00188 // Pragma 00189 //############################################################################ 00190 #ifdef elxWINDOWS 00191 00192 // Disable level 3 warning 00193 #pragma warning( disable : 4251) 00194 #pragma warning( disable : 4661) 00195 00196 #endif //elxWINDOWS 00197 00198 #endif // __CoreOS_h__