亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? itg.h

?? CP detector (CPD) only reports the onset and removal of a tone. The analysis of timing (if required)
?? 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"          *
*                                                                         *
*-------------------------------------------------------------------------*/ 
/* 	
	Generic 'any single/dual' Tone Generator (TG), 
	it suits for DTMF and call progress tones, 
	or whatever, having no more than 2 freqs.
	
	TG adds tone to the output buffer, thus allowing extensions 
	to more freqs per tone
	and mixing with voice messages (required for call progress).
	The same approach (and mostly the same code) can be used for FSK, etc.
	
	Phase continuity during frequency change is preserved 
	(needed for warbles or other TIA/EIA-464 call progress tones, 
	like intercept tone, which contains alternating freq 440 and 620 Hz, 
	each ON for 0.16..0.3s).
	
	Phase noise, non-linear distortions 
	(really they are mirrored freq components): 
		-50 dB relative to signal level, 
	what hides artefacts below mu/A-low distortions level.

	Tone generator uses sine lookup table.
	If a [usually large] sine table is masked in ROM : use it !!!
	Spectrum improves when table grows, at least 3dB per size doubling.
	
	Contrary to oscillator and matrix rotation methods,	
	this approach provides all of: 
		- stable amplitude,
		- continuous phase (and so ability to sweep/alter frequencies),
		- lowest control() overhead 
			(no need to compute precise sin() and cos() 
			 during start-up (or any change in content),
		- low mips,
	on account of
		- large table space;
		- not-so clean spectrum;
			
	TG accepts as config input per digit / tone pair:
    	- frequencies (4000Hz (or Fsampling/2) = 32767) per frequency, 
    	- levels (FS = +3.17 dBm = 32767) per frequency
    	- durations (10 or 5ms resolution (re: ITG_FR_SZ)) of 
        	- silence-before (might be 0), 
        	- dual-tone-itself (-1 if infnite), 
        	- silence-after (might be 0).

    The simplicity of control aids in keeping control overhead 
    (on both sides: caller and callee) low. 
    It is important because in most cases it adds to peak periodic execution,
    effectively rising MIPS requirements. 
    If not accounted for, it can drive entire DSP out of MIPS budget, 
    what is not much fun if it happens in field once upon a time...
    
	Higher level functionality, as string dialing if needed 
	shall be extra - it is VERY system dependant,
	I am not aware of a 'generic' format that will work 
	for all applications (I am aware of...).
 
*/
#ifndef ITG_
#define ITG_    

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

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

#define ITG_FR_SZ 	(40) /* FRAME SIZE */

typedef struct ITG_Obj {
    struct ITG_Fxns *fxns;
} ITG_Obj;

typedef struct ITG_Obj *ITG_Handle;

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

typedef struct ITG_Params {
    Int size;           /* sizeof the whole parameter struct */
} ITG_Params;



/*
 *  ------- control interface ---------
 *
 * use it while calling algControl()
 */                          
 
/* definition of Cmd param */ 
#define ITG_CMD_NONE  (0)
#define ITG_CMD_RESET (1)
#define ITG_CMD_TONE  (2)

/* definition of Status param */
typedef struct ITG_tTone
{
	Int sAmp;
	Int sFreq; /* 32768 -> 4000 Hz, 1/2 of sampling freq */
} ITG_tToneCfg;

enum /* reported state of generator */
{
	ITG_ST_IDLE = 0,
	ITG_ST_PRE_SILENCE,
	ITG_ST_SIGNAL,
	ITG_ST_POST_SILENCE,

    ITG_ST_MAX
};


typedef struct ITG_Status {
    Int size;           /* sizeof the whole parameter struct */
    
    Int State;					/* out */    
    
                                /* the rest: in */
    Int sPreSilenceDuration;    /* all durations in integer frame sizes, 10|5ms */
    Int sSignalDuration;      	/* -1 = infinite */
    Int sPostSilenceDuration;
    ITG_tToneCfg Lo;
    ITG_tToneCfg Hi;

} ITG_Status;


/*
 *  ======== ITG_Fxns ========
 *  All implementation's of TG must declare and statically 
 *  initialize a constant variable of this type.
 *
 *  By convention the name of the variable is TG_MIKET_ITG, where
 *  MIKET is the vendor name.
 */
typedef struct ITG_Fxns {
    IALG_Fxns   ialg;
    /* functions returns the state of the tone gen. if 0 (=IDLE) - > ready for the next tone */
    Int         (*algProcess)(IALG_Handle handle, Int pOut[]);
} ITG_Fxns;

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

#endif  /* ITG_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久成人精品无人区| 亚洲国产视频一区| 欧美夫妻性生活| 国产999精品久久久久久绿帽| 国产麻豆一精品一av一免费| 欧美videossexotv100| 色综合天天做天天爱| 韩国在线一区二区| 亚洲国产精品嫩草影院| 日韩免费高清av| 成人黄色免费短视频| 亚洲国产毛片aaaaa无费看| 色一区在线观看| 国产成人精品午夜视频免费| 亚洲va韩国va欧美va| 中文字幕一区二区三中文字幕| 精品久久久久一区| 欧美日韩中文另类| 在线视频你懂得一区二区三区| 91蜜桃视频在线| 国产精品99久久久久| 紧缚奴在线一区二区三区| 婷婷丁香久久五月婷婷| 亚洲黄色av一区| 亚洲精品精品亚洲| 亚洲视频免费在线观看| 久久蜜桃av一区精品变态类天堂 | 日韩激情一区二区| 亚洲免费观看高清完整版在线观看熊| 26uuu精品一区二区| 国产午夜精品一区二区三区嫩草| 亚洲电影一级黄| 亚洲图片激情小说| 亚洲电影视频在线| 日韩不卡一区二区| 日本aⅴ精品一区二区三区| 五月天丁香久久| 亚洲高清三级视频| 日本va欧美va瓶| 久久成人精品无人区| 成人综合婷婷国产精品久久免费| 国产91在线观看| 不卡影院免费观看| 91在线视频播放| 91精品国产免费| 国产午夜精品美女毛片视频| 中文字幕+乱码+中文字幕一区| 亚洲天堂福利av| 日本va欧美va瓶| 91国产免费观看| 久久久久久久久久久久久夜| 亚洲自拍另类综合| 日本少妇一区二区| 成人激情视频网站| 日韩欧美一二三四区| 亚洲三级免费电影| 狠狠色狠狠色合久久伊人| 在线亚洲高清视频| 国产精品视频看| 久久福利视频一区二区| 欧美挠脚心视频网站| 亚洲国产精品精华液ab| 麻豆精品久久久| 国产成人免费在线观看不卡| 欧美另类久久久品| 国产一区二区伦理片| 91黄色在线观看| 日韩一区日韩二区| 成人国产精品免费观看视频| 久久精品在这里| 国产麻豆精品在线| 国产日韩精品久久久| 国内精品自线一区二区三区视频| 91精品国产品国语在线不卡 | 国产日韩av一区| 国产尤物一区二区| 国产日韩在线不卡| 成人18精品视频| 亚洲精品福利视频网站| 色噜噜夜夜夜综合网| 亚洲精品成人精品456| 色成年激情久久综合| 亚洲国产一区视频| 欧美一级生活片| 九九在线精品视频| 国产精品青草久久| 91免费观看在线| 人人爽香蕉精品| 久久久久成人黄色影片| 99国产精品一区| 亚洲mv在线观看| 久久蜜臀中文字幕| 在线日韩av片| 九色综合国产一区二区三区| 国产女主播视频一区二区| 欧美在线小视频| 国产盗摄精品一区二区三区在线 | 精一区二区三区| 亚洲欧美日韩成人高清在线一区| 久久久国际精品| 久久精品欧美一区二区三区麻豆 | 美女国产一区二区三区| 国产乱人伦精品一区二区在线观看 | 精品区一区二区| 欧洲一区二区三区在线| 成人免费观看男女羞羞视频| 日本vs亚洲vs韩国一区三区 | 国产女同互慰高潮91漫画| 欧美精品免费视频| 91蜜桃在线观看| 99视频国产精品| 国产成人免费网站| 国产精品一区免费在线观看| 日本不卡一区二区三区高清视频| 亚洲老妇xxxxxx| 国产精品久久久一区麻豆最新章节| 欧美一级高清片在线观看| 欧美日韩国产免费一区二区| 在线观看成人小视频| 99在线热播精品免费| aaa亚洲精品一二三区| a美女胸又www黄视频久久| 大白屁股一区二区视频| 在线看不卡av| 91精品国产91久久久久久一区二区 | 日韩欧美在线网站| 成人综合婷婷国产精品久久蜜臀| 欧美96一区二区免费视频| 亚洲最大色网站| 欧美激情一二三区| 国产精品的网站| 亚洲精品中文在线影院| 亚洲国产一区视频| 欧美aaa在线| 国产91精品一区二区麻豆网站| 日本精品一区二区三区高清| 97国产精品videossex| 在线一区二区视频| 欧美一二三四区在线| 久久这里只有精品6| 亚洲视频你懂的| 日韩av一区二区在线影视| 黄色日韩网站视频| 91片在线免费观看| 日韩女优毛片在线| 中文一区二区完整视频在线观看| 日韩伦理免费电影| 日本欧洲一区二区| 91视频在线观看| 精品国产99国产精品| 亚洲天堂2016| 国产91清纯白嫩初高中在线观看| 欧美性大战久久久久久久蜜臀 | 欧美三片在线视频观看| www久久久久| 人禽交欧美网站| 一本一本久久a久久精品综合麻豆| 精品奇米国产一区二区三区| 亚洲手机成人高清视频| 粉嫩在线一区二区三区视频| 欧美精品久久久久久久多人混战| 国产精品美日韩| 国产不卡视频一区| 久久亚洲欧美国产精品乐播| 天使萌一区二区三区免费观看| 成人毛片在线观看| 久久蜜臀中文字幕| 狠狠狠色丁香婷婷综合久久五月| 欧美理论在线播放| 午夜欧美电影在线观看| 欧美亚洲国产一卡| 亚洲精品视频一区| 色偷偷久久人人79超碰人人澡| 欧美激情艳妇裸体舞| 国产98色在线|日韩| 久久9热精品视频| 91麻豆精品国产91久久久使用方法| 亚洲自拍偷拍网站| 欧美日韩在线播| 色综合久久精品| 麻豆一区二区三区| 91日韩精品一区| 亚洲精品国产一区二区精华液| 欧美一级在线观看| 99久久精品国产一区| 免费日韩伦理电影| 亚洲美女免费视频| 精品国产伦一区二区三区免费| 懂色av一区二区在线播放| 亚洲女与黑人做爰| 亚洲国产精品ⅴa在线观看| 91精品国产一区二区三区蜜臀| 一本久久综合亚洲鲁鲁五月天 | 欧美一级二级三级乱码| 成人av免费在线| 精品制服美女久久| 亚洲精品视频在线观看网站| 亚洲精品一区二区三区香蕉| 欧美人动与zoxxxx乱| 欧美视频精品在线观看|