blob: 0062584adb5bf6b3d8611e771d80e01d2d00fd8b [file] [log] [blame]
/*
** 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 <float.h>
#include <limits.h>
/*
********************************************************************************
* 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__