00001 /* 00002 * Copyright (c) 2007 The Khronos Group Inc. 00003 * 00004 * Permission is hereby granted, free of charge, to any person obtaining 00005 * a copy of this software and associated documentation files (the 00006 * "Software"), to deal in the Software without restriction, including 00007 * without limitation the rights to use, copy, modify, merge, publish, 00008 * distribute, sublicense, and/or sell copies of the Software, and to 00009 * permit persons to whom the Software is furnished to do so, subject 00010 * to the following conditions: 00011 * The above copyright notice and this permission notice shall be included 00012 * in all copies or substantial portions of the Software. 00013 * 00014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00015 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00016 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00017 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 00018 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 00019 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 00020 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00021 * 00022 */ 00023 00031 #ifndef OMX_Types_h 00032 #define OMX_Types_h 00033 00034 #ifdef __cplusplus 00035 extern "C" { 00036 #endif /* __cplusplus */ 00037 00042 #ifdef __SYMBIAN32__ 00043 # ifdef __OMX_EXPORTS 00044 # define OMX_API __declspec(dllexport) 00045 # else 00046 # ifdef _WIN32 00047 # define OMX_API __declspec(dllexport) 00048 # else 00049 # define OMX_API __declspec(dllimport) 00050 # endif 00051 # endif 00052 #else 00053 # ifdef _WIN32 00054 # ifdef __OMX_EXPORTS 00055 # define OMX_API __declspec(dllexport) 00056 # else 00057 # define OMX_API __declspec(dllimport) 00058 # endif 00059 # else 00060 # ifdef __OMX_EXPORTS 00061 # define OMX_API 00062 # else 00063 # define OMX_API extern 00064 # endif 00065 # endif 00066 #endif 00067 00068 00069 #ifndef OMX_APIENTRY 00070 #define OMX_APIENTRY 00071 #endif 00072 00076 #ifndef OMX_IN 00077 #define OMX_IN 00078 #endif 00079 00083 #ifndef OMX_OUT 00084 #define OMX_OUT 00085 #endif 00086 00087 00092 #ifndef OMX_INOUT 00093 #define OMX_INOUT 00094 #endif 00095 00101 #define OMX_ALL 0xFFFFFFFF 00102 00135 typedef unsigned char OMX_U8; 00136 00138 typedef signed char OMX_S8; 00139 00141 typedef unsigned short OMX_U16; 00142 00144 typedef signed short OMX_S16; 00145 00147 typedef unsigned long OMX_U32; 00148 00150 typedef signed long OMX_S32; 00151 00152 00153 /* Users with compilers that cannot accept the "long long" designation should 00154 define the OMX_SKIP64BIT macro. It should be noted that this may cause 00155 some components to fail to compile if the component was written to require 00156 64 bit integral types. However, these components would NOT compile anyway 00157 since the compiler does not support the way the component was written. 00158 */ 00159 #ifndef OMX_SKIP64BIT 00160 #ifdef __SYMBIAN32__ 00161 00162 typedef unsigned long long OMX_U64; 00163 00165 typedef signed long long OMX_S64; 00166 00167 #elif defined(WIN32) 00168 00170 typedef unsigned __int64 OMX_U64; 00171 00173 typedef signed __int64 OMX_S64; 00174 00175 #else /* WIN32 */ 00176 00178 typedef unsigned long long OMX_U64; 00179 00181 typedef signed long long OMX_S64; 00182 00183 #endif /* WIN32 */ 00184 #endif 00185 00186 00191 typedef enum OMX_BOOL { 00192 OMX_FALSE = 0, 00193 OMX_TRUE = !OMX_FALSE, 00194 OMX_BOOL_MAX = 0x7FFFFFFF 00195 } OMX_BOOL; 00196 00201 typedef void* OMX_PTR; 00202 00208 typedef char* OMX_STRING; 00209 00215 typedef unsigned char* OMX_BYTE; 00216 00221 typedef unsigned char OMX_UUIDTYPE[128]; 00222 00226 typedef enum OMX_DIRTYPE 00227 { 00228 OMX_DirInput, 00229 OMX_DirOutput, 00230 OMX_DirMax = 0x7FFFFFFF 00231 } OMX_DIRTYPE; 00232 00236 typedef enum OMX_ENDIANTYPE 00237 { 00238 OMX_EndianBig, 00239 OMX_EndianLittle, 00240 OMX_EndianMax = 0x7FFFFFFF 00241 } OMX_ENDIANTYPE; 00242 00243 00247 typedef enum OMX_NUMERICALDATATYPE 00248 { 00249 OMX_NumericalDataSigned, 00250 OMX_NumericalDataUnsigned, 00251 OMX_NumercialDataMax = 0x7FFFFFFF 00252 } OMX_NUMERICALDATATYPE; 00253 00254 00256 typedef struct OMX_BU32 { 00257 OMX_U32 nValue; 00258 OMX_U32 nMin; 00259 OMX_U32 nMax; 00260 } OMX_BU32; 00261 00262 00264 typedef struct OMX_BS32 { 00265 OMX_S32 nValue; 00266 OMX_S32 nMin; 00267 OMX_S32 nMax; 00268 } OMX_BS32; 00269 00270 00283 #ifndef OMX_SKIP64BIT 00284 typedef OMX_S64 OMX_TICKS; 00285 #else 00286 typedef struct OMX_TICKS 00287 { 00288 OMX_U32 nLowPart; 00289 OMX_U32 nHighPart; 00290 } OMX_TICKS; 00291 #endif 00292 #define OMX_TICKS_PER_SECOND 1000000 00293 00297 typedef void* OMX_HANDLETYPE; 00298 00299 typedef struct OMX_MARKTYPE 00300 { 00301 OMX_HANDLETYPE hMarkTargetComponent; 00304 OMX_PTR pMarkData; 00307 } OMX_MARKTYPE; 00308 00309 00313 typedef void* OMX_NATIVE_DEVICETYPE; 00314 00317 typedef void* OMX_NATIVE_WINDOWTYPE; 00318 00330 typedef union OMX_VERSIONTYPE 00331 { 00332 struct 00333 { 00334 OMX_U8 nVersionMajor; 00335 OMX_U8 nVersionMinor; 00336 OMX_U8 nRevision; 00337 OMX_U8 nStep; 00338 } s; 00339 OMX_U32 nVersion; 00342 } OMX_VERSIONTYPE; 00343 00344 #ifdef __cplusplus 00345 } 00346 #endif /* __cplusplus */ 00347 00348 #endif 00349 /* File EOF */