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