/* ** Copyright 2003-2010, VisualOn, Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ /* * * File : typedefs.h * Description : Definition of platform independent data * types and constants * * * The following platform independent data types and corresponding * preprocessor (#define) constants are defined: * * defined type meaning corresponding constants * ---------------------------------------------------------- * Char character (none) * Bool boolean true, false * Word8 8-bit signed minWord8, maxWord8 * UWord8 8-bit unsigned minUWord8, maxUWord8 * Word16 16-bit signed minWord16, maxWord16 * UWord16 16-bit unsigned minUWord16, maxUWord16 * Word32 32-bit signed minWord32, maxWord32 * UWord32 32-bit unsigned minUWord32, maxUWord32 * Float floating point minFloat, maxFloat * * * The following compile switches are #defined: * * PLATFORM string indicating platform progam is compiled on * possible values: "OSF", "PC", "SUN" * * OSF only defined if the current platform is an Alpha * PC only defined if the current platform is a PC * SUN only defined if the current platform is a Sun * * LSBFIRST is defined if the byte order on this platform is * "least significant byte first" -> defined on DEC Alpha * and PC, undefined on Sun * ******************************************************************************** */ #ifndef __TYPEDEFS_H__ #define __TYPEDEFS_H__ /* ******************************************************************************** * INCLUDE FILES ******************************************************************************** */ #include #include /* ******************************************************************************** * DEFINITION OF CONSTANTS ******************************************************************************** */ /* ********* define char type */ typedef char Char; /* ********* define 8 bit signed/unsigned types & constants */ #if SCHAR_MAX == 127 typedef signed char Word8; #define minWord8 SCHAR_MIN #define maxWord8 SCHAR_MAX typedef unsigned char UWord8; #define minUWord8 0 #define maxUWord8 UCHAR_MAX #else #error cannot find 8-bit type #endif /* ********* define 16 bit signed/unsigned types & constants */ #if INT_MAX == 32767 typedef int Word16; #define minWord16 INT_MIN #define maxWord16 INT_MAX typedef unsigned int UWord16; #define minUWord16 0 #define maxUWord16 UINT_MAX #elif SHRT_MAX == 32767 typedef short Word16; #define minWord16 SHRT_MIN #define maxWord16 SHRT_MAX typedef unsigned short UWord16; #define minUWord16 0 #define maxUWord16 USHRT_MAX #else #error cannot find 16-bit type #endif /* ********* define 32 bit signed/unsigned types & constants */ #if INT_MAX == 2147483647 typedef int Word32; #define minWord32 INT_MIN #define maxWord32 INT_MAX typedef unsigned int UWord32; #define minUWord32 0 #define maxUWord32 UINT_MAX #elif LONG_MAX == 2147483647 typedef long Word32; #define minWord32 LONG_MIN #define maxWord32 LONG_MAX typedef unsigned long UWord32; #define minUWord32 0 #define maxUWord32 ULONG_MAX #else #error cannot find 32-bit type #endif /* ********* define floating point type & constants */ /* use "#if 0" below if Float should be double; use "#if 1" below if Float should be float */ #if 0 typedef float Float; #define maxFloat FLT_MAX #define minFloat FLT_MIN #else typedef double Float; #define maxFloat DBL_MAX #define minFloat DBL_MIN #endif /* ********* define complex type */ typedef struct { Float r; /* real part */ Float i; /* imaginary part */ } CPX; /* ********* define boolean type */ typedef int Bool; #define false 0 #define true 1 /* ******Avoid function multiple definition****** */ #define Autocorr voAWB_Autocorr #define Convolve voAWB_Convolve #define cor_h_x voAWB_cor_h_x #define dtx_enc_init voAWB_dtx_enc_init #define dtx_enc_reset voAWB_dtx_enc_reset #define dtx_enc_exit voAWB_dtx_enc_exit #define dtx_enc voAWB_dtx_enc #define dtx_buffer voAWB_dtx_buffer #define tx_dtx_handler voAWB_tx_dtx_handler #define G_pitch voAWB_G_pitch #define Isp_Az voAWB_Isp_Az #define Lag_window voAWB_Lag_window #define Log2_norm voAWB_Log2_norm #define Log2 voAWB_Log2 #define Pow2 voAWB_Pow2 #define L_Comp voAWB_L_Comp #define Mpy_32 voAWB_Mpy_32 #define Mpy_32_16 voAWB_Mpy_32_16 #define Div_32 voAWB_Div_32 #define Pit_shrp voAWB_Pit_shrp #define Qisf_ns voAWB_Qisf_ns #define Disf_ns voAWB_Disf_ns #define Residu voAWB_Residu #define Syn_filt voAWB_Syn_filt #define Set_zero voAWB_Set_zero #define Copy voAWB_Copy #define voice_factor voAWB_voice_factor #define Syn_filt_32 voAWB_Syn_filt_32 #define Isf_isp voAWB_Isf_isp #define Levinson voAWB_Levinson #define median5 voAWB_median5 #define Pred_lt4 voAWB_Pred_lt4 #define Reorder_isf voAWB_Reorder_isf #define Dpisf_2s_36b voAWB_Dpisf_2s_36b #define Dpisf_2s_46b voAWB_Dpisf_2s_46b #define Dot_product12 voAWB_Dot_product12 #define mem_malloc voAWB_mem_malloc #define mem_free voAWB_mem_free /******************************************************/ #endif //#define __TYPEDEFS_H__