📄 wmatypes.h
字号:
//*@@@+++@@@@******************************************************************//// Microsoft Windows Media// Copyright (C) Microsoft Corporation. All rights reserved.////*@@@---@@@@******************************************************************/*************************************************************************Copyright (C) Microsoft Corporation, 1996 - 1999Module Name: wmatypes.hAbstract: Processor-specific data types.Author: Kazuhito Koishida (kazukoi) Jan 31, 2003Revision History:*************************************************************************/#ifndef __WMATYPES_H#define __WMATYPES_H//#if 0 //O.K. moved to macros.h// ***************************************************// Platform-Specific typedefs// ***************************************************#ifndef DISABLE_OPT // If this is defined, use the ANSI build#ifdef __QNX__#undef _M_IX86#endif#if defined(_M_IX86) && !defined(INTEGER_ENCODER)//#ifdef __QNX__//#define WMA_TARGET_QNX_X86//#else#define WMA_TARGET_X86//#endif#endif#ifdef _M_AMD64 #ifndef WMA_TARGET_WIN64 #define WMA_TARGET_WIN64 #endif #ifndef DISABLE_INTELFFT #define DISABLE_INTELFFT #endif #endif#ifdef _M_IA64 #ifndef WMA_TARGET_WIN64 #define WMA_TARGET_WIN64 #endif #ifndef DISABLE_INTELFFT #define DISABLE_INTELFFT #endif #endif#ifdef _MIPS_#define WMA_TARGET_MIPS#endif#if defined(_SH3_) && !defined(_SH4_)#define WMA_TARGET_SH3#endif#ifdef _SH4_#define WMA_TARGET_SH4#endif#ifdef _Embedded_x86#define WMA_TARGET_Embedded_x86#endif#ifdef S_SUNOS5#define WMA_TARGET_S_SUNOS5#endif#ifdef _ARM_#define WMA_TARGET_ARM#endif// It's often nice to be able to compare the output between optimized versions// and the ANSI version, to verify that the optimizations are in sync. Alas,// some optimizations sacrifice reproducibility for speed. The following #define allows// us to disable those optimizations to verify the main algorithms.//#define WMA_ANSI_COMPATIBILITY_MODE#endif // !DISABLE_OPT#if defined(WMA_TARGET_WIN64)#include "wmatypes_win64.h"#elif defined(WMA_TARGET_X86)#include "wmatypes_x86.h"#elif defined(WMA_TARGET_QNX_X86)#include "wmatypes_qnx_x86.h"#elif defined(WMA_TARGET_MIPS)#include "wmatypes_mips.h"#elif defined(WMA_TARGET_SH3)#include "wmatypes_sh3.h"#elif defined(WMA_TARGET_SH4)#include "wmatypes_sh4.h"#elif defined(WMA_TARGET_ARM)//#include "wmatypes_arm.h" //O.K.#elif defined(WMA_TARGET_Embedded_x86)#include "wmatypes_embedded_x86.h"#elif defined(WMA_TARGET_S_SUNOS5)#include "wmatypes_s_sunos5.h"#elif defined(WMA_TARGET_MACOS)#include "wmatypes_macos.h"#else#define WMA_TARGET_ANSI#include "wmatypes_ansi.h"#endif // platform specific #ifdefs// **************************************************************************// Overridable Compiler Directives// **************************************************************************#ifndef PLATFORM_SPECIFIC_INLINE// This should hopefully work for most compilers. It works for VC#ifdef WMA_TARGET_ARM#ifndef INLINE #ifdef __GNUCOMP_VERSION #define INLINE inline __attribute__((always_inline)) //O.K. removed from macros.h #else //#define INLINE __forceinline // RVDS armcc #define INLINE __inline // ADS armcc #endif #endif#else#define INLINE __inline#endif#endif // PLATFORM_SPECIFIC_INLINE// ***************************************************// default fundamental typedefs// ***************************************************#ifndef PLATFORM_SPECIFIC_U64typedef unsigned long long U64; //O.K.#endif#ifndef PLATFORM_SPECIFIC_I64typedef long long I64;#endif#ifndef PLATFORM_SPECIFIC_U32typedef unsigned long int U32;#define U32_MAX ((U32)0xffffffffu)#endif#ifndef PLATFORM_SPECIFIC_I32typedef long int I32;#define I32_MIN ((I32)0x80000000)#define I32_MAX ((I32)0x7fffffff)#endif#ifndef PLATFORM_SPECIFIC_U16typedef unsigned short U16;#define U16_MAX ((I32)0x0000ffff)#endif#ifndef PLATFORM_SPECIFIC_I16typedef short I16;#define I16_MIN ((I32)0xffff8000)#define I16_MAX ((I32)0x00007fff)#endif#ifndef PLATFORM_SPECIFIC_U8typedef unsigned char U8;#define U8_MAX ((I32)0x000000ff)#endif#ifndef PLATFORM_SPECIFIC_I8typedef signed char I8;#define I8_MIN ((I32)0xffffff80)#define I8_MAX ((I32)0x0000007f)#endif#ifndef PLATFORM_SPECIFIC_F32typedef float F32;#endif#ifndef PLATFORM_SPECIFIC_F64typedef double F64;#endif// the following "UP" types are for using n-bit or native type, in case// using native types might be faster.#ifndef PLATFORM_SPECIFIC_I8UPtypedef int I8UP;#endif#ifndef PLATFORM_SPECIFIC_U8UPtypedef unsigned U8UP;#endif#ifndef PLATFORM_SPECIFIC_I16UPtypedef int I16UP;#endif#ifndef PLATFORM_SPECIFIC_U16UPtypedef unsigned U16UP;#endif#ifndef PLATFORM_SPECIFIC_I32UPtypedef int I32UP;#endif#ifndef PLATFORM_SPECIFIC_U32UPtypedef unsigned U32UP;#endif#ifndef PLATFORM_SPECIFIC_I64UPtypedef long long I64UP;#endif#ifndef PLATFORM_SPECIFIC_U64UPtypedef unsigned long long U64UP;#endif#ifndef PLATFORM_SPECIFIC_F32UPtypedef float F32UP;#endif#ifndef PLATFORM_SPECIFIC_F64UPtypedef double F64UP;#endif#ifndef PLATFORM_SPECIFIC_CBDATAtypedef void* CBDATA; // callback data parameter#endif // PLATFORM_SPECIFIC_CBDATAtypedef double Double;typedef float Float;typedef void Void;typedef U32 UIntW; //[LL] UInt -> UintWtypedef I32 IntW; //[LL] Int -> IntWtypedef I32 Bool; // In Win32, BOOL is an "int" == 4 bytes. Keep it this way to reduce problems.typedef char Char;#ifndef True#define True 1#endif#ifndef False#define False 0#endif#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endif#define WMAB_TRUE 1#define WMAB_FALSE 0//added O.K. ------------------------------------------------------------------#ifndef _BOOL_DEFINED#define _BOOL_DEFINEDtypedef Bool BOOL;#endif /* _BOOL_DEFINED */#ifndef _BYTE_DEFINED#define _BYTE_DEFINEDtypedef unsigned char BYTE;#endif /* _BYTE_DEFINED */#ifndef _WORD_DEFINED#define _WORD_DEFINEDtypedef unsigned short WORD;#endif /* _WORD_DEFINED */#ifndef _DWORD_DEFINED#define _DWORD_DEFINEDtypedef unsigned long DWORD; /* actually long, but this should be okay */#endif /* _DWORD_DEFINED */// define basic types/*typedef I64 WMA_I64; //O.K.typedef unsigned long WMA_U32;typedef long WMA_I32;typedef unsigned short WMA_U16;typedef short WMA_I16;typedef unsigned char WMA_U8;typedef WMA_I32 WMA_Bool;typedef int WMARESULT;*///#endif // 0#endif // __WMATYPES_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -