os.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:7k
源码类别:

Symbian

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Source last modified: $Id: os.h,v 1.6.20.1 2004/07/09 01:56:17 hubbe Exp $
  3.  * 
  4.  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
  5.  * 
  6.  * The contents of this file, and the files included with this file,
  7.  * are subject to the current version of the RealNetworks Public
  8.  * Source License (the "RPSL") available at
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed
  10.  * the file under the current version of the RealNetworks Community
  11.  * Source License (the "RCSL") available at
  12.  * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
  13.  * will apply. You may also obtain the license terms directly from
  14.  * RealNetworks.  You may not use this file except in compliance with
  15.  * the RPSL or, if you have a valid RCSL with RealNetworks applicable
  16.  * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
  17.  * the rights, obligations and limitations governing use of the
  18.  * contents of the file.
  19.  * 
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU General Public License Version 2 or later (the
  22.  * "GPL") in which case the provisions of the GPL are applicable
  23.  * instead of those above. If you wish to allow use of your version of
  24.  * this file only under the terms of the GPL, and not to allow others
  25.  * to use your version of this file under the terms of either the RPSL
  26.  * or RCSL, indicate your decision by deleting the provisions above
  27.  * and replace them with the notice and other provisions required by
  28.  * the GPL. If you do not delete the provisions above, a recipient may
  29.  * use your version of this file under the terms of any one of the
  30.  * RPSL, the RCSL or the GPL.
  31.  * 
  32.  * This file is part of the Helix DNA Technology. RealNetworks is the
  33.  * developer of the Original Code and owns the copyrights in the
  34.  * portions it created.
  35.  * 
  36.  * This file, and the files included with this file, is distributed
  37.  * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
  38.  * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
  39.  * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
  40.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
  41.  * ENJOYMENT OR NON-INFRINGEMENT.
  42.  * 
  43.  * Technology Compatibility Kit Test Suite(s) Location:
  44.  *    http://www.helixcommunity.org/content/tck
  45.  * 
  46.  * Contributor(s):
  47.  * 
  48.  * ***** END LICENSE BLOCK ***** */
  49. /*-----------------------------------------------------------------------------
  50.  *
  51.  *  NAME 
  52.  *   Operating-system-dependent definitions.
  53.  *   windows NT                             #define _NTWIN
  54.  *   and 32 bits in general                 #define FLAT_OS
  55.  *
  56.  *  SYNOPSIS
  57.  *    #include "os.h"
  58.  *     ...
  59.  *
  60.  *  DESCRIPTION   
  61.  *
  62.  -----------------------------------------------------------------------------*/ 
  63. #ifndef _OS_H_
  64. #define _OS_H_
  65. #if defined(XP_UNIX)
  66. #define FOR_UNIX 1
  67. #endif
  68. #if defined(__MC68K__) || defined(__powerc)
  69. #define FOR_MAC 1
  70. #endif
  71. #if defined(__MWERKS__) && defined(_WIN32)
  72. // Compiling for Windows using the Mac Metrowerks compiler. This compiler doesn't
  73. // support inline assembly.
  74. #define FOR_WINMW
  75. #endif
  76. #if defined(_WIN32) || defined(FOR_MAC) || defined(FOR_UNIX)
  77. #define  FLAT_OS
  78. #endif
  79. #ifdef FOR_MAC
  80. #ifndef _MAC_MACHO
  81. #include <Types.h>
  82. #include <Memory.h>
  83. #endif
  84. #define UNREFERENCED_PARAMETER(x)
  85. #define PASCAL
  86. #define __declspec(X)
  87. #ifdef _DEBUG
  88. #define OutputDebugString(X) DebugStr((StringPtr) X)
  89. #else
  90. #define OutputDebugString(X) 
  91. #endif
  92. #define strcmpi strcasecmp
  93. #elif defined (FOR_UNIX)
  94. #define ASSERT assert
  95. #define PASCAL
  96. #define __declspec(X)
  97. #define strcmpi strcasecmp
  98. #define _fmemset memset
  99. #define min(a,b) (((a) < (b) ? (a) : (b)))
  100. #define max(a,b) (((a) > (b) ? (a) : (b)))
  101. #define TRACE0
  102. typedef long LONG;
  103. typedef long LRESULT;
  104. typedef unsigned short WORD;
  105. typedef unsigned long DWORD;
  106. typedef char *LPSTR;
  107. typedef unsigned char *LPBYTE;
  108. typedef void         *LPVOID;
  109. #else
  110. #if defined(_WIN32) || defined(__WINDOWS_386__)
  111. #define FOR_WINDOWS
  112. #endif
  113. /*
  114.  * tell compiler to hush warnings about double slash comments.
  115.  */
  116. #if !defined(FOR_UNIX)
  117. #pragma warning (disable: 4001)
  118. #endif
  119. #if !defined (_INC_WINDOWS) && !defined (FOR_UNIX) && !defined(_MACINTOSH)
  120. #ifndef STDAFX_H
  121. // If we haven't included MFC, we need to include windows.h
  122. #include <windows.h>
  123. #endif
  124. #endif
  125. #endif // FOR_MAC
  126. /*
  127.  * OS-Dependent macro for getting procedure pointers
  128.  */
  129. #define VVPROCPTR(name) (name)
  130. /*
  131.  * Use LOCALPROC as a modifier to indicate that a particular
  132.  * function definition/declaration isn't visible outside the
  133.  * present compilation unit.
  134.  */
  135. #define LOCALPROC static 
  136. #ifdef NOLOCAL  //Useful for debugging with Softice/W
  137. #undef LOCALPROC
  138. #define LOCALPROC  //Not static, so debugger can see the name.
  139. #endif
  140. //Use PRIVATE as a modifier for variables not visible outside compilation unit
  141. #define PRIVATE static 
  142. #ifdef NOPRIVATE    //Useful for debugging with global-symbol-only debuggers
  143. #undef PRIVATE
  144. #define PRIVATE//Nothing    -- not static
  145. #endif
  146. /*
  147.  * Definition of All-Purpose Section for getting 
  148.  * initialization parameters from VIVOPROFILE
  149.  */
  150. #define GENERALPROFILE  "general"
  151. #if defined(FLAT_OS)
  152. #define mcLpStream              lpStream;
  153. #define mcLpContext             lpContext;        
  154. #define VvLpShadowFmLp(x)       (x)
  155. #define PFMP1616(zType, p)      ((zType)(p))
  156. #define mcLpData                lpData
  157. #define mcLpFillBuffer          lpFillBuffer
  158. #define mcLpHeader              lpHeader
  159. #define CtxSwanFmPStm(pstm)     ((lpVvSwanContext)((pstm)->dwUserData))
  160. #define mcLpLinearData          lpLinearData 
  161. #define mcLpEchoData            lpEchoData
  162. #define mclpEchoSuppressor      lpEchoSuppressor
  163. #define mclpAttenuationTable    lpAttenuationTable
  164. #define mclpInputGainTable      lpInputGainTable 
  165. #define mclpLineGainTable       lpLineGainTable 
  166. #define mclpCenterClipperTable  lpCenterClipperTable
  167. #define mclpuLawToaLawTable     lpuLawToaLawTable
  168. #define mclpaLawTouLawTable     lpaLawTouLawTable
  169. #define mclpLinearTouLawTable   lpLinearTouLawTable
  170. #define mclpuLawToLinearTable   lpuLawToLinearTable
  171. // This is the callback to the Ring-3 Movieman audio  
  172. #define mclpCallAddress           fpRing3Callback
  173. #define mcSyncAudio              SyncRing3Audio
  174. #define mcReadAudio              ReadRing3Audio
  175. #define mcWriteAudio         WriteRing3Audio
  176. //#define mcLpMvManAudioParms       lpMvManAudioParms
  177. #define mcLpSilence              lpSilence
  178. #define mcLpGarbage              lpGarbage 
  179. #endif
  180. #define AssertWindows() // Nothing
  181. #define AssertMac() // Nothing
  182. #if defined( _NTWIN) || defined(_WIN32) || defined(FOR_MAC)
  183. #define _fmemset memset
  184. #define _fmemcmp memcmp
  185. #define _fstrlen strlen
  186. #define _fstrchr strchr
  187. #endif
  188. #endif//ndef _OS_H_