1/* 2 ** Copyright 2003-2010, VisualOn, Inc. 3 ** 4 ** Licensed under the Apache License, Version 2.0 (the "License"); 5 ** you may not use this file except in compliance with the License. 6 ** You may obtain a copy of the License at 7 ** 8 ** http://www.apache.org/licenses/LICENSE-2.0 9 ** 10 ** Unless required by applicable law or agreed to in writing, software 11 ** distributed under the License is distributed on an "AS IS" BASIS, 12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 ** See the License for the specific language governing permissions and 14 ** limitations under the License. 15 */ 16 17/* 18* 19* File : typedefs.h 20* Description : Definition of platform independent data 21* types and constants 22* 23* 24* The following platform independent data types and corresponding 25* preprocessor (#define) constants are defined: 26* 27* defined type meaning corresponding constants 28* ---------------------------------------------------------- 29* Char character (none) 30* Bool boolean true, false 31* Word8 8-bit signed minWord8, maxWord8 32* UWord8 8-bit unsigned minUWord8, maxUWord8 33* Word16 16-bit signed minWord16, maxWord16 34* UWord16 16-bit unsigned minUWord16, maxUWord16 35* Word32 32-bit signed minWord32, maxWord32 36* UWord32 32-bit unsigned minUWord32, maxUWord32 37* Float floating point minFloat, maxFloat 38* 39* 40* The following compile switches are #defined: 41* 42* PLATFORM string indicating platform progam is compiled on 43* possible values: "OSF", "PC", "SUN" 44* 45* OSF only defined if the current platform is an Alpha 46* PC only defined if the current platform is a PC 47* SUN only defined if the current platform is a Sun 48* 49* LSBFIRST is defined if the byte order on this platform is 50* "least significant byte first" -> defined on DEC Alpha 51* and PC, undefined on Sun 52* 53******************************************************************************** 54*/ 55 56#ifndef __TYPEDEFS_H__ 57#define __TYPEDEFS_H__ 58 59/* 60******************************************************************************** 61* INCLUDE FILES 62******************************************************************************** 63*/ 64#include <float.h> 65#include <limits.h> 66 67 68 69/* 70******************************************************************************** 71* DEFINITION OF CONSTANTS 72******************************************************************************** 73*/ 74/* 75 ********* define char type 76 */ 77typedef char Char; 78 79/* 80 ********* define 8 bit signed/unsigned types & constants 81 */ 82#if SCHAR_MAX == 127 83typedef signed char Word8; 84#define minWord8 SCHAR_MIN 85#define maxWord8 SCHAR_MAX 86 87typedef unsigned char UWord8; 88#define minUWord8 0 89#define maxUWord8 UCHAR_MAX 90#else 91#error cannot find 8-bit type 92#endif 93 94 95/* 96 ********* define 16 bit signed/unsigned types & constants 97 */ 98#if INT_MAX == 32767 99typedef int Word16; 100#define minWord16 INT_MIN 101#define maxWord16 INT_MAX 102typedef unsigned int UWord16; 103#define minUWord16 0 104#define maxUWord16 UINT_MAX 105#elif SHRT_MAX == 32767 106typedef short Word16; 107#define minWord16 SHRT_MIN 108#define maxWord16 SHRT_MAX 109typedef unsigned short UWord16; 110#define minUWord16 0 111#define maxUWord16 USHRT_MAX 112#else 113#error cannot find 16-bit type 114#endif 115 116 117/* 118 ********* define 32 bit signed/unsigned types & constants 119 */ 120#if INT_MAX == 2147483647 121typedef int Word32; 122#define minWord32 INT_MIN 123#define maxWord32 INT_MAX 124typedef unsigned int UWord32; 125#define minUWord32 0 126#define maxUWord32 UINT_MAX 127#elif LONG_MAX == 2147483647 128typedef long Word32; 129#define minWord32 LONG_MIN 130#define maxWord32 LONG_MAX 131typedef unsigned long UWord32; 132#define minUWord32 0 133#define maxUWord32 ULONG_MAX 134#else 135#error cannot find 32-bit type 136#endif 137 138/* 139 ********* define floating point type & constants 140 */ 141/* use "#if 0" below if Float should be double; 142 use "#if 1" below if Float should be float 143 */ 144#if 0 145typedef float Float; 146#define maxFloat FLT_MAX 147#define minFloat FLT_MIN 148#else 149typedef double Float; 150#define maxFloat DBL_MAX 151#define minFloat DBL_MIN 152#endif 153 154/* 155 ********* define complex type 156 */ 157typedef struct { 158 Float r; /* real part */ 159 Float i; /* imaginary part */ 160} CPX; 161 162/* 163 ********* define boolean type 164 */ 165typedef int Bool; 166#define false 0 167#define true 1 168 169/* ******Avoid function multiple definition****** */ 170#define Autocorr voAWB_Autocorr 171#define Convolve voAWB_Convolve 172#define cor_h_x voAWB_cor_h_x 173#define dtx_enc_init voAWB_dtx_enc_init 174#define dtx_enc_reset voAWB_dtx_enc_reset 175#define dtx_enc_exit voAWB_dtx_enc_exit 176#define dtx_enc voAWB_dtx_enc 177#define dtx_buffer voAWB_dtx_buffer 178#define tx_dtx_handler voAWB_tx_dtx_handler 179#define G_pitch voAWB_G_pitch 180#define Isp_Az voAWB_Isp_Az 181#define Lag_window voAWB_Lag_window 182#define Log2_norm voAWB_Log2_norm 183#define Log2 voAWB_Log2 184#define Pow2 voAWB_Pow2 185#define L_Comp voAWB_L_Comp 186#define Mpy_32 voAWB_Mpy_32 187#define Mpy_32_16 voAWB_Mpy_32_16 188#define Div_32 voAWB_Div_32 189#define Pit_shrp voAWB_Pit_shrp 190#define Qisf_ns voAWB_Qisf_ns 191#define Disf_ns voAWB_Disf_ns 192#define Residu voAWB_Residu 193#define Syn_filt voAWB_Syn_filt 194#define Set_zero voAWB_Set_zero 195#define Copy voAWB_Copy 196#define voice_factor voAWB_voice_factor 197#define Syn_filt_32 voAWB_Syn_filt_32 198#define Isf_isp voAWB_Isf_isp 199#define Levinson voAWB_Levinson 200#define median5 voAWB_median5 201#define Pred_lt4 voAWB_Pred_lt4 202#define Reorder_isf voAWB_Reorder_isf 203#define Dpisf_2s_36b voAWB_Dpisf_2s_36b 204#define Dpisf_2s_46b voAWB_Dpisf_2s_46b 205#define Dot_product12 voAWB_Dot_product12 206#define mem_malloc voAWB_mem_malloc 207#define mem_free voAWB_mem_free 208/******************************************************/ 209 210#endif //#define __TYPEDEFS_H__ 211 212