OMX_Types.h

Go to the documentation of this file.
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 */

Generated for OpenMAX Bellagio rel. 0.9.0 by  doxygen 1.5.1
SourceForge.net Logo