⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ilec.h

📁 The line echo canceller (LEC) is designed to provide the maximum attainable transparent voice qualit
💻 H
字号:
/*------------------------------------------------------------------------*
*                                                                         *
*   THIS IS AN UNPUBLISHED WORK CONTAINING CONFIDENTIAL AND PROPRIETARY   *
*   INFORMATION.  IF PUBLICATION OCCURS, THE FOLLOWING NOTICE APPLIES:    *
*      "COPYRIGHT 2001 MIKET DSP SOLUTIONS, ALL RIGHTS RESERVED"          *
*                                                                         *
*-------------------------------------------------------------------------*/ 
#ifndef ILEC_
#define ILEC_    

#include <std.h>
#include <ialg.h>

/*--------------------- public defs ---------------------------------------*/ 

#define ILEC_FR_SZ          (40)
#define ILEC_FR_MS          (5)

typedef struct ILEC_Obj {
    struct ILEC_Fxns *fxns;
} ILEC_Obj;

typedef struct ILEC_Obj *ILEC_Handle;



/*
 *  ------- control interface ---------
 *
 * use it while calling algControl()
 */                          

/*  definition of uControl param of LEC_control(), to be or'ed      */
#define ILEC_CMD_ON             (0x0000) /* running by default */

#define ILEC_CMD_OFF            (0x0001)
#define ILEC_CMD_RESET          (0x0002)
#define ILEC_CMD_PRESERVE_ADF   (0x0004)

#define ILEC_CMD_ADAPT_OFF      (0x0010)
#define ILEC_CMD_POST_OFF       (0x0020)
#define ILEC_CMD_NLP_OFF        (0x0040)

#define ILEC_CMD_LOOPBACK       (0x0100)
#define ILEC_CMD_CFG            (0x0200)

#define ILEC_CMD_TONE_ECHO      (0x1000)
#define ILEC_CMD_DETECT_HIRCV   (0x2000)
#define ILEC_CMD_CLR_HIRCV_DT   (0x4000)

/* Configuration of LEC */
/*  sErlMin & sClipThr parameters are expressed in 0.1 dB (cB) units */
typedef struct ILEC_tCfg {
    Int uControl;   
    Int sErlMin;  /* 0.1 dB per unit, 3.0 -> 30 */
    Int sRcvMax;  /* max value of Rcv still linear ... */
    Int sClipThr; /* DT VAD sensitivity thr in cB */
    Int sToneDetectThr;  /* ~ 0.05 * 32768 */
    Int sToneReleaseThr; /* ~ 0.12 * 32768 */
} ILEC_tCfg;

/*
 *  ======== ILEC_Params ========
 *  This structure defines the parameters necessary to create an
 *  instance of a ILEC object.
 *
 */                 
 

typedef struct ILEC_Params {
    Int size;           /* sizeof the whole parameter struct */
    ILEC_tCfg *pCfg;
} ILEC_Params;


typedef struct ILEC_Status {
    Int size;           /* sizeof the whole parameter struct */
    ILEC_tCfg *pCfg;   /* in: ptr to cfg to update. used if and only if CMD_CFG indicated */
} ILEC_Status;



/*
 *  ======== ILEC_Fxns ========
 *  By convention the name of the variable is LEC_MIKET_ILEC, where
 *  MIKET is the vendor name.
 */
typedef struct ILEC_Fxns {
    IALG_Fxns   ialg;
    /* functions returns report word described above */
    Int         (*algProcess)(IALG_Handle handle, Int *pRcv, Int *pSnd);
} ILEC_Fxns;

/*--------------------- local defs ----------------------------------------*/ 
/*--------------------- public vars ---------------------------------------*/
/*--------------------- local vars ----------------------------------------*/
/*--------------------- local functions -----------------------------------*/
/*--------------------- public  functions ---------------------------------*/

#endif  /* ILEC_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -