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

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.  *
  37.  *  NAME 
  38.  *   Operating-system-dependent definitions.
  39.  *   windows NT                             #define _NTWIN
  40.  *   and 32 bits in general                 #define FLAT_OS
  41.  *
  42.  *  SYNOPSIS
  43.  *    #include "os.h"
  44.  *     ...
  45.  *
  46.  *  DESCRIPTION   
  47.  *
  48.  -----------------------------------------------------------------------------*/ 
  49. #ifndef _OS_H_
  50. #define _OS_H_
  51. #if defined(XP_UNIX)
  52. #define FOR_UNIX 1
  53. #endif
  54. #if defined(__MC68K__) || defined(__powerc)
  55. #define FOR_MAC 1
  56. #endif
  57. #if defined(__MWERKS__) && defined(_WIN32)
  58. // Compiling for Windows using the Mac Metrowerks compiler. This compiler doesn't
  59. // support inline assembly.
  60. #define FOR_WINMW
  61. #endif
  62. #if defined(_WIN32) || defined(FOR_MAC) || defined(FOR_UNIX)
  63. #define  FLAT_OS
  64. #endif
  65. #ifdef FOR_MAC
  66. #ifndef _MAC_MACHO
  67. #include <Types.h>
  68. #include <Memory.h>
  69. #endif
  70. #define UNREFERENCED_PARAMETER(x)
  71. #define PASCAL
  72. #define __declspec(X)
  73. #ifdef _DEBUG
  74. #define OutputDebugString(X) DebugStr((StringPtr) X)
  75. #else
  76. #define OutputDebugString(X) 
  77. #endif
  78. #define strcmpi strcasecmp
  79. #elif defined (FOR_UNIX)
  80. #define ASSERT assert
  81. #define PASCAL
  82. #define __declspec(X)
  83. #define strcmpi strcasecmp
  84. #define _fmemset memset
  85. #define min(a,b) (((a) < (b) ? (a) : (b)))
  86. #define max(a,b) (((a) > (b) ? (a) : (b)))
  87. #define TRACE0
  88. typedef long LONG;
  89. typedef long LRESULT;
  90. typedef unsigned short WORD;
  91. typedef unsigned long DWORD;
  92. typedef char *LPSTR;
  93. typedef unsigned char *LPBYTE;
  94. typedef void         *LPVOID;
  95. #else
  96. #if defined(_WIN32) || defined(__WINDOWS_386__)
  97. #define FOR_WINDOWS
  98. #endif
  99. /*
  100.  * tell compiler to hush warnings about double slash comments.
  101.  */
  102. #if !defined(FOR_UNIX)
  103. #pragma warning (disable: 4001)
  104. #endif
  105. #if !defined (_INC_WINDOWS) && !defined (FOR_UNIX) && !defined(_MACINTOSH)
  106. #ifndef STDAFX_H
  107. // If we haven't included MFC, we need to include windows.h
  108. #include <windows.h>
  109. #endif
  110. #endif
  111. #endif // FOR_MAC
  112. /*
  113.  * OS-Dependent macro for getting procedure pointers
  114.  */
  115. #define VVPROCPTR(name) (name)
  116. /*
  117.  * Use LOCALPROC as a modifier to indicate that a particular
  118.  * function definition/declaration isn't visible outside the
  119.  * present compilation unit.
  120.  */
  121. #define LOCALPROC static 
  122. #ifdef NOLOCAL  //Useful for debugging with Softice/W
  123. #undef LOCALPROC
  124. #define LOCALPROC  //Not static, so debugger can see the name.
  125. #endif
  126. //Use PRIVATE as a modifier for variables not visible outside compilation unit
  127. #define PRIVATE static 
  128. #ifdef NOPRIVATE    //Useful for debugging with global-symbol-only debuggers
  129. #undef PRIVATE
  130. #define PRIVATE//Nothing    -- not static
  131. #endif
  132. /*
  133.  * Definition of All-Purpose Section for getting 
  134.  * initialization parameters from VIVOPROFILE
  135.  */
  136. #define GENERALPROFILE  "general"
  137. #if defined(FLAT_OS)
  138. #define mcLpStream              lpStream;
  139. #define mcLpContext             lpContext;        
  140. #define VvLpShadowFmLp(x)       (x)
  141. #define PFMP1616(zType, p)      ((zType)(p))
  142. #define mcLpData                lpData
  143. #define mcLpFillBuffer          lpFillBuffer
  144. #define mcLpHeader              lpHeader
  145. #define CtxSwanFmPStm(pstm)     ((lpVvSwanContext)((pstm)->dwUserData))
  146. #define mcLpLinearData          lpLinearData 
  147. #define mcLpEchoData            lpEchoData
  148. #define mclpEchoSuppressor      lpEchoSuppressor
  149. #define mclpAttenuationTable    lpAttenuationTable
  150. #define mclpInputGainTable      lpInputGainTable 
  151. #define mclpLineGainTable       lpLineGainTable 
  152. #define mclpCenterClipperTable  lpCenterClipperTable
  153. #define mclpuLawToaLawTable     lpuLawToaLawTable
  154. #define mclpaLawTouLawTable     lpaLawTouLawTable
  155. #define mclpLinearTouLawTable   lpLinearTouLawTable
  156. #define mclpuLawToLinearTable   lpuLawToLinearTable
  157. // This is the callback to the Ring-3 Movieman audio  
  158. #define mclpCallAddress           fpRing3Callback
  159. #define mcSyncAudio              SyncRing3Audio
  160. #define mcReadAudio              ReadRing3Audio
  161. #define mcWriteAudio         WriteRing3Audio
  162. //#define mcLpMvManAudioParms       lpMvManAudioParms
  163. #define mcLpSilence              lpSilence
  164. #define mcLpGarbage              lpGarbage 
  165. #endif
  166. #define AssertWindows() // Nothing
  167. #define AssertMac() // Nothing
  168. #if defined( _NTWIN) || defined(_WIN32) || defined(FOR_MAC)
  169. #define _fmemset memset
  170. #define _fmemcmp memcmp
  171. #define _fstrlen strlen
  172. #define _fstrchr strchr
  173. #endif
  174. #endif//ndef _OS_H_