|
OpenMAXBellagio 0.9.3
|
00001 /* 00002 * Copyright (c) 2008 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 00041 #ifdef __SYMBIAN32__ 00042 # ifdef __OMX_EXPORTS 00043 # define OMX_API __declspec(dllexport) 00044 # else 00045 # ifdef _WIN32 00046 # define OMX_API __declspec(dllexport) 00047 # else 00048 # define OMX_API __declspec(dllimport) 00049 # endif 00050 # endif 00051 #else 00052 # ifdef _WIN32 00053 # ifdef __OMX_EXPORTS 00054 # define OMX_API __declspec(dllexport) 00055 # else 00056 # define OMX_API __declspec(dllimport) 00057 # endif 00058 # else 00059 # ifdef __OMX_EXPORTS 00060 # define OMX_API 00061 # else 00062 # define OMX_API extern 00063 # endif 00064 # endif 00065 #endif 00066 00067 #ifndef OMX_APIENTRY 00068 #define OMX_APIENTRY 00069 #endif 00070 00074 #ifndef OMX_IN 00075 #define OMX_IN 00076 #endif 00077 00081 #ifndef OMX_OUT 00082 #define OMX_OUT 00083 #endif 00084 00085 00090 #ifndef OMX_INOUT 00091 #define OMX_INOUT 00092 #endif 00093 00099 #define OMX_ALL 0xFFFFFFFF 00100 00133 typedef unsigned char OMX_U8; 00134 00136 typedef signed char OMX_S8; 00137 00139 typedef unsigned short OMX_U16; 00140 00142 typedef signed short OMX_S16; 00143 00145 typedef unsigned long OMX_U32; 00146 00148 typedef signed long OMX_S32; 00149 00150 00151 /* Users with compilers that cannot accept the "long long" designation should 00152 define the OMX_SKIP64BIT macro. It should be noted that this may cause 00153 some components to fail to compile if the component was written to require 00154 64 bit integral types. However, these components would NOT compile anyway 00155 since the compiler does not support the way the component was written. 00156 */ 00157 #ifndef OMX_SKIP64BIT 00158 #ifdef __SYMBIAN32__ 00159 00160 typedef unsigned long long OMX_U64; 00161 00163 typedef signed long long OMX_S64; 00164 00165 #elif defined(WIN32) 00166 00168 typedef unsigned __int64 OMX_U64; 00169 00171 typedef signed __int64 OMX_S64; 00172 00173 #else /* WIN32 */ 00174 00176 typedef unsigned long long OMX_U64; 00177 00179 typedef signed long long OMX_S64; 00180 00181 #endif /* WIN32 */ 00182 #endif 00183 00184 00189 typedef enum OMX_BOOL { 00190 OMX_FALSE = 0, 00191 OMX_TRUE = !OMX_FALSE, 00192 OMX_BOOL_MAX = 0x7FFFFFFF 00193 } OMX_BOOL; 00194 00199 typedef void* OMX_PTR; 00200 00206 typedef char* OMX_STRING; 00207 00213 typedef unsigned char* OMX_BYTE; 00214 00219 typedef unsigned char OMX_UUIDTYPE[128]; 00220 00224 typedef enum OMX_DIRTYPE 00225 { 00226 OMX_DirInput, 00227 OMX_DirOutput, 00228 OMX_DirMax = 0x7FFFFFFF 00229 } OMX_DIRTYPE; 00230 00234 typedef enum OMX_ENDIANTYPE 00235 { 00236 OMX_EndianBig, 00237 OMX_EndianLittle, 00238 OMX_EndianMax = 0x7FFFFFFF 00239 } OMX_ENDIANTYPE; 00240 00241 00245 typedef enum OMX_NUMERICALDATATYPE 00246 { 00247 OMX_NumericalDataSigned, 00248 OMX_NumericalDataUnsigned, 00249 OMX_NumercialDataMax = 0x7FFFFFFF 00250 } OMX_NUMERICALDATATYPE; 00251 00252 00254 typedef struct OMX_BU32 { 00255 OMX_U32 nValue; 00256 OMX_U32 nMin; 00257 OMX_U32 nMax; 00258 } OMX_BU32; 00259 00260 00262 typedef struct OMX_BS32 { 00263 OMX_S32 nValue; 00264 OMX_S32 nMin; 00265 OMX_S32 nMax; 00266 } OMX_BS32; 00267 00268 00281 #ifndef OMX_SKIP64BIT 00282 typedef OMX_S64 OMX_TICKS; 00283 #else 00284 typedef struct OMX_TICKS 00285 { 00286 OMX_U32 nLowPart; 00287 OMX_U32 nHighPart; 00288 } OMX_TICKS; 00289 #endif 00290 #define OMX_TICKS_PER_SECOND 1000000 00291 00295 typedef void* OMX_HANDLETYPE; 00296 00297 typedef struct OMX_MARKTYPE 00298 { 00299 OMX_HANDLETYPE hMarkTargetComponent; 00302 OMX_PTR pMarkData; 00305 } OMX_MARKTYPE; 00306 00307 00311 typedef void* OMX_NATIVE_DEVICETYPE; 00312 00315 typedef void* OMX_NATIVE_WINDOWTYPE; 00316 00328 typedef union OMX_VERSIONTYPE 00329 { 00330 struct 00331 { 00332 OMX_U8 nVersionMajor; 00333 OMX_U8 nVersionMinor; 00334 OMX_U8 nRevision; 00335 OMX_U8 nStep; 00336 } s; 00337 OMX_U32 nVersion; 00340 } OMX_VERSIONTYPE; 00341 00342 #ifdef __cplusplus 00343 } 00344 #endif /* __cplusplus */ 00345 00346 #endif 00347 /* File EOF */