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