machine.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:5k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. /*-----------------------------------------------------------------------------
  36.  *  machine.h
  37.  *
  38.  *  NAME 
  39.  *   Machine-dependent definitions.
  40.  *   WIN16
  41.  *   __WINDOWS_386__, VXD
  42.  *   FLAT_OS
  43.  *   _NTWIN
  44.  *   _OS2
  45.  *
  46.  *  SYNOPSIS
  47.  *    #include "machine.h"
  48.  *     ...
  49.  *
  50.  *  DESCRIPTION   
  51.  *
  52.  -----------------------------------------------------------------------------*/ 
  53. #ifndef _MACHINE_H_
  54. #define _MACHINE_H_
  55. #ifndef _OS_H_
  56. #include "hxtypes.h"
  57. #include "os.h" //We need it so can tell ifdef WIN16
  58. #endif
  59. #define VvDELETE(OBJ) if (OBJ) { delete(OBJ); OBJ=0; }
  60. // define the VvAssert() macro as appropriate for each platform
  61. #ifdef _DEBUG
  62. #ifdef FOR_MAC
  63. #include <Assert.h>
  64. #define VvAssert(expr) Assert_(expr)
  65. #else // other platforms go here
  66. #define VvAssert(expr)
  67. #endif
  68. #else // #ifdef _DEBUG
  69. #define VvAssert(expr)
  70. #endif // #ifdef _DEBUG
  71. #ifndef WIN32
  72. #define mmioFOURCC(a,b,c,d) (((U32)((U8)(d) << 24)) | ((U8)(c) << 16) | ((U8)(b) << 8) | ((U8)(a)))
  73. #endif
  74. #ifdef FOR_MAC
  75. #ifdef _MAC_MACHO
  76. #define PATH_SEPARATOR "/"
  77. #else
  78. #define PATH_SEPARATOR ":"
  79. #endif
  80. #endif
  81. #ifdef FOR_WINDOWS
  82. #define PATH_SEPARATOR "\"
  83. #endif
  84. #ifdef FOR_UNIX
  85. #define PATH_SEPARATOR "/"
  86. #endif
  87. #ifdef FOR_MAC
  88. // Define basic Windows datatypes here
  89. //#define BOOL Boolean
  90. #include "../../../common/include/hxtypes.h"
  91. typedef unsigned char * LPBYTE;
  92. #endif
  93. #ifdef FOR_UNIX
  94. // Define basic Windows datatypes here
  95. #define BOOL unsigned char
  96. #ifndef NULL
  97. #define NULL (0L)
  98. #endif
  99. #ifndef pascal
  100. #define pascal
  101. #endif
  102. #endif
  103. /* numeric types */
  104. typedef signed char S8;
  105. typedef unsigned char U8;
  106. typedef short int S16;
  107. typedef unsigned short int U16;
  108. typedef long int S32;
  109. typedef unsigned long int U32;
  110. typedef float FLOAT;
  111. #ifdef FOR_MAC
  112. typedef unsigned short WORD;
  113. //typedef S8 BYTE;
  114. typedef unsigned long DWORD;
  115. typedef S32 LONG;
  116. //typedef unsigned long TIME32;
  117. #endif
  118. typedef S16 Word16;     // used by G723 audio codec
  119. typedef S32 Word32;     // used by G723 audio codec
  120. /* graphic types */
  121. typedef U8       PIXEL; 
  122. /* pointer types (here lie dragons!) */ 
  123. /* Boolean types */
  124. typedef U16 B16;
  125. #define NATURAL_ALIGN 16
  126. #define ALIGN(len,align) ((len)+(align)-1) & (~(align-1)) 
  127. /* Metric types */
  128. typedef U32 TIME32;         /* absolute time */
  129. typedef S32 INTERVAL32;     /* interval time */
  130.                             
  131. #if defined _WIN32
  132. #define FLAT_OS
  133. #elif defined FOR_MAC
  134. #define FLAT_OS
  135. #elif defined FOR_UNIX
  136. #define FLAT_OS
  137. #else
  138.         #HEY, unknown environment type
  139. #endif
  140. #if defined(FOR_MAC) || defined(FOR_UNIX)
  141. typedef struct tagBITMAPINFOHEADER{
  142.         DWORD      biSize;
  143.         LONG       biWidth;
  144.         LONG       biHeight;
  145.         WORD       biPlanes;
  146.         WORD       biBitCount;
  147.         DWORD      biCompression;
  148.         DWORD      biSizeImage;
  149.         LONG       biXPelsPerMeter;
  150.         LONG       biYPelsPerMeter;
  151.         DWORD      biClrUsed;
  152.         DWORD      biClrImportant;
  153. } BITMAPINFOHEADER, *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
  154. typedef struct tagRGBQUAD {
  155.         BYTE    rgbBlue;
  156.         BYTE    rgbGreen;
  157.         BYTE    rgbRed;
  158.         BYTE    rgbReserved;
  159. } RGBQUAD;
  160. typedef RGBQUAD *LPRGBQUAD;
  161. #endif // MAC / Unix
  162. #endif // _MACHINE_H_