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

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

?? toneapp.h

?? DTMF收發芯片88L89完美驅動(Arm,SDT251環境)
?? H
字號:
/* tone_App.h - 音頻服務 應用層 外部消息函數 */

/* Copyright 1994-2001 Wuhan Jinglun Electronic Co., Ltd. */

/* 
modification history
--------------------
01a, 2001-11-14, Yan-CJ, 增加函數的聲明.
01a, 2001-10-16, Yan-CJ, written.
*/

/* 
DESCRIPTION	根據外部消息提供相應的服務。
*/

/* includes */
#include "routon.h"

#include "toneType.h"

#ifndef _TONEAPP_H_
#define _TONEAPP_H_

#ifdef __cplusplus
extern "C" {
#endif
/* BEGIN, 2002-05-15, Yancj */
/* PURPOSE: CODEC設備宏*/
#define TONE_DEVICE_CODEC_NUL		0
#define TONE_DEVICE_CODEC_HFC		1
#define TONE_DEVICE_CODEC_ARM		2	
/* END */

/* BEGIN, 2002-05-15, Yancj */
/* PURPOSE: 語音文件長度根據網管下載的數據*/

#define 	TONE_BYTES_PER_MS			8				// 每毫秒播放8個字節
#define	TONE_MS_PER_TICK				10				// 每次滴答10MS	

#define 	TONE_KEYS_NUM 				16				// 16個按鍵音數據
#define	TONE_KEYS_TICKS_DELAY		4				// 延時4Ticks

#define 	TONE_DTMF_NUM 				16				// 16個雙頻音數據
#define	TONE_DTMF_TICKS_DELAY		4				// 延時4Ticks


#define TONE_BUFFER 				8000				// 音頻數據長度	2003-07-03

//
//雙頻音數據總共長度			10240			
//每個雙頻音數據長度			10240/16 = 640 
//每個雙頻音數據播放時間	640 /8 = 80 (MS)	
//每個雙頻音數據滴答時間	80 / 10 = 8 
//兩個雙頻音之間間隔時間	8 + 4 = 12
//

//gTONE_Data_Buf_Main[tone_id].iBuf =   10240;
//gTONE_Sizes_Per_DTMF 	= gTONE_Data_Buf_Main[tone_id].iBuf /TONE_DTMF_NUM;	// 10240/16 = 640 
//gTONE_MSs_Per_DTMF 		= gTONE_Size_Per_DTMF / TONE_BYTES_PER_MS;			// 640 /8 = 80 (MS)	
//gTONE_Ticks_Per_DTMF 	= gTONE_MSs_Per_DTMF / TONE_MS_PER_TICK; 			// 80 / 10 = 8 
//gTONE_Interval_DTMF 		= gTONE_Ticks_Per_DTMF + TONE_DTMF_TICKS_DELAY;		// 8 + 4 = 12

/* END */


#if 0	//added by yancj, 2002-04-08 
//
//對單音按鍵
//								時間長度= [50MS |60MS |100MS]
//每個毫秒需要8 個字節
//								數據長度= 時間長度X 8
//每次滴答需要10個毫秒
//								滴答次數= 時間長度/ 10
//每次延時需要2倍滴答
//								滴答延時= 滴答次數* 2
//

//
//按鍵音100MS比較合適,太短的聲音聽起來不舒服
//按鍵音緩存設置小一些,主要以人的感覺為宜,
//過多過快的消息可以拋掉。
//

#define TONE_KEYS_TIME_LENGTH		100	/*ms */	

#define	TONE_KEYS_SIZES				(TONE_KEYS_TIME_LENGTH * 8)	
#define	TONE_KEYS_TICKS 			(TONE_KEYS_TIME_LENGTH/10)	
#define	TONE_KEYS_TICKS_DELAY	    20	/*ticks */ /* per digits*/

//
//雙頻音80MS比較合適,太長或太短需要考慮具體的交換機
//雙頻音緩存設置可大一些,根據一次可能的發送總數決定
//不能夠丟掉任何一個消息。
//

#define TONE_DTMF_TIME_LENGTH		80

#define	TONE_DTMF_SIZES				(TONE_DTMF_TIME_LENGTH * 8)	
#define	TONE_DTMF_TICKS 			(TONE_DTMF_TIME_LENGTH/10)	
#define	TONE_DTMF_TICKS_DELAY		12  /* ticks */

/* END */

#endif 

/*
數據長度	對某種提示音所需要的基本長度 (按鍵音、雙頻音除外)
發聲時間	特定的時間內發送聲音			
周期時間	周期音一個周期所需要的TICK數		
周期次數      周期音循環的次數  
連續次數	連續音對單位數據重復的次數	

數據長度保證有足夠的數據
發音時間控制設備的開關
*/

#define TONE_KEYS_SIZE			

#define TONE_KEYS_TICK_SEND		
#define TONE_KEYS_TICK_TONE		

#define TONE_KEYS_LOOP_PERIOD		
#define TONE_KEYS_LOOP_SERIES		



#if 1	//added, 2002-04-08
//
//定義數字數據流的實際通道
//
#define TONE_PASS_ERROR		-1	//此路不通		0000 0000

#define TONE_PASS_NO_WAY		-1	

#define TONE_PASS_HFC_LINE			1	//HFC線路輸出	0000 0001
#define TONE_PASS_HFC_PHONE 		2	//HFC聽筒輸出	0000 0010
#define TONE_PASS_HFC_LINE_A_PHONE 	4	//HFC聽筒輸出	0000 0100

#define TONE_PASS_ARM_PHONE 	32	//ARM聽筒輸出	0010 0000	
#define TONE_PASS_ARM_SPEAK 	64	//ARM喇叭輸出	0100 0000	
#define TONE_PASS_ARM_BUZZER 	128	//ARM蜂鳴器輸出	1000 0000
	
#define TONE_PASS_MIC_ARM 		1	//ARM聽筒輸出	0000 0001
#define TONE_PASS_MIC_HFC 		2	//ARM聽筒輸出	0000 0010
#endif

#define TONE_KEYS_BUF_DELAY_TIME		20	

#define TONE_TIME_HFC_PLAYING_YES		1		
#define TONE_TIME_HFC_PLAYING_NO		0	

#define TONE_FIFO_DTMF_YES				2	
#define TONE_FIFO_DTMF_NO				0


#define TONE_TIME_ARM_PLAYING_YES		1		
#define TONE_TIME_ARM_PLAYING_NO		0	

#define TONE_FIFO_KEYS_YES				2	
#define TONE_FIFO_KEYS_NO				0	

#define TONE_FIFO_ADDED					1
#define TONE_FIFO_NOT_NEED				2

#define DTMF_WRITE_STATE_IDLE			0
#define DTMF_WRITE_STATE_BUZY			-1

int tone_App_Pre_Msg_Keys(RtnMSG r_msg);	//預分析按鍵音消息
int tone_App_Pre_Msg_Dtmf(RtnMSG r_msg);	//預分析雙頻音消息


void tone_HISR_Timer_ARM_Delay(UNSIGNED id);		//按鍵延時定時器中斷服務程序
void tone_HISR_Timer_HFC_Delay(UNSIGNED id);		//雙頻延時定時器中斷服務程序	

//應用層
extern void	tone_App   (UNSIGNED argc, VOID *argv);	//音頻服務.應用層服務入口
extern int tone_App_Start  (void);		//啟動
extern int tone_App_Process(void);		//處理
extern int tone_App_Stop   (void);		//停止

/* BEGIN, 2002-05-14, Yancj */
/* PURPOSE: 分解tone_App_Process() 函數*/
extern int tone_App_Process_Prep(RtnMSG r_msg);		//預處理消息
extern int tone_App_Process_Core(RtnMSG r_msg);		//核心處理消息
/* END */


//數據緩存初始化	
extern int	 tone_App_Data_Init(TONE_APP_DATA_BUF_t *ToneBuf);
extern int tone_App_Data_Buf_Init	(TONE_APP_DATA_BUF_t * buffer, UINT2 num);		//主數據緩存.初始化					
extern int tone_App_Data_Buf_Deinit	(TONE_APP_DATA_BUF_t * buffer, UINT2 num);	//主數據緩存.釋放

//extern int tone_App_Data_Buf_Init_HFC(TONE_APP_DATA_BUF_t * buffer, int id);	//讀入HFC數據
extern int tone_App_Data_Buf_Init_ARM(TONE_APP_DATA_BUF_t * buffer, int id);	//讀入ARM數據



	
extern int tone_App_Data_Buf_Sub_Init	(TONE_APP_DATA_BUF_SUB_t * buffer, UINT2 num);//子數據緩存.初始化					
extern int tone_App_Data_Buf_Sub_Deinit	(TONE_APP_DATA_BUF_SUB_t * buffer, UINT2 num);//子數據緩存.釋放

//設備緩存初始化
extern int tone_App_Device_Buf_Init		(TONE_APP_DEVICE_INFO_t * Device);		//設備信息緩存.初始化
extern int tone_App_Device_Buf_Deinit	(TONE_APP_DEVICE_INFO_t * Device);		//設備信息緩存.釋放	


//智能選擇通路		
extern int  tone_App_Select_Pass( RtnMsg _msg );	

//extern int  tone_App_Get_Pass_Status_Line(void);				//獲得線路通路狀態
//extern int  tone_App_Get_Pass_Status_Phone(void);			//獲得聽筒通路狀態
//extern int  tone_App_Get_Pass_Status_Line_A_Phone(void);	//獲得線路、聽筒通路狀態
//extern int  tone_App_Get_Pass_Status_Speak(void);			//獲得喇叭通路狀態
//extern int  tone_App_Get_Pass_Status_Buzzer(void);			//獲得蜂鳴器通路狀態

//選擇數據到相應的緩存
extern int  tone_App_Select_Data(RtnMSG _msg);							
extern int  tone_App_Get_Ctrl(TONE_APP_DEVICE_INFO_t * App_Device, RtnMSG r_msg);		
extern int  tone_App_Get_Data(TONE_APP_DEVICE_INFO_t * Device, RtnMSG r_msg);		
//extern int  tone_App_Get_Data_ARM(TONE_APP_DEVICE_INFO_t * Device, RtnMSG r_msg);		

//打開設備
extern int tone_App_Send_Data(RtnMSG _msg);	
//extern int tone_App_Send_Data_HFC(void);	
extern int tone_App_Send_Data_ARM(void);	

extern int DTMFWrite( unsigned char , int );
extern int GetHfcCodecStatus(void);

/*
extern int  tone_App_Open_Pass_HFC_Line(int Channel);		//打開HFC線路輸出	
extern int  tone_App_Open_Pass_HFC_Phone(int Channel);	//打開HFC聽筒輸出	
extern int  tone_App_Open_Pass_ARM_Phone(void);	//打開ARM聽筒輸出	
extern int  tone_App_Open_Pass_ARM_Speak(void);	//打開ARM喇叭輸出	
extern int  tone_App_Open_Pass_ARM_Buzzer(void);	//打開ARM蜂鳴器輸出	

extern int  tone_App_Close_Pass_HFC_Line(void);		//關閉HFC線路輸出	
extern int  tone_App_Close_Pass_HFC_Phone(void);	//關閉HFC聽筒輸出	
extern int  tone_App_Close_Pass_ARM_Phone(void);	//關閉ARM聽筒輸出	
extern int  tone_App_Close_Pass_ARM_Speak(void);	//關閉ARM喇叭輸出	
extern int  tone_App_Close_Pass_ARM_Buzzer(void);	//關閉ARM蜂鳴器輸出	

*/

//extern int tone_App_Analyze_Msg	(TONE_APP_DEVICE_INFO_t * Device, RtnMSG	r_msg);	

#ifdef __cplusplus
}
#endif

#endif /* _TONEAPP_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美专区日韩专区| 国产精品自在欧美一区| 精品少妇一区二区三区视频免付费| 成人美女视频在线观看| 国产一区二区视频在线播放| 全部av―极品视觉盛宴亚洲| 三级在线观看一区二区 | 欧美久久一二三四区| 91久久精品一区二区三| 91在线精品秘密一区二区| av一本久道久久综合久久鬼色| 国产精一品亚洲二区在线视频| 精品写真视频在线观看| 国产一区视频导航| 风流少妇一区二区| 不卡一卡二卡三乱码免费网站| 99亚偷拍自图区亚洲| 色综合天天在线| 在线免费观看日本欧美| 欧美精品久久久久久久久老牛影院| 欧美三级韩国三级日本一级| 69av一区二区三区| 国产欧美日韩在线看| 国产精品电影一区二区三区| 亚洲一二三四在线观看| 日韩av一区二区在线影视| 黄色成人免费在线| 99视频国产精品| 欧美日韩在线直播| 久久影音资源网| 国产精品免费视频一区| 亚洲第一狼人社区| 国产米奇在线777精品观看| 成人不卡免费av| 欧美日本不卡视频| 久久久久国产免费免费| 一区二区在线观看不卡| 蜜桃视频在线一区| 99久久777色| 7777精品久久久大香线蕉| 国产午夜久久久久| 午夜精品久久久久久久久| 国内精品国产成人国产三级粉色 | 一区二区三区在线观看视频| 欧美aaaaaa午夜精品| 成人综合在线网站| 日韩精品资源二区在线| 亚洲激情男女视频| 国产成人在线看| 欧美顶级少妇做爰| 亚洲视频在线一区二区| 国产一区二区三区观看| 在线观看日韩电影| 中文字幕av在线一区二区三区| 三级久久三级久久| 色综合久久88色综合天天免费| 精品国产免费人成电影在线观看四季| 亚洲人成在线播放网站岛国| 国产伦精品一区二区三区视频青涩| 欧美制服丝袜第一页| 中文字幕一区二区三中文字幕| 免费观看30秒视频久久| 色偷偷久久一区二区三区| 久久九九久精品国产免费直播| 日本欧美肥老太交大片| 欧美伊人久久久久久久久影院| 一色屋精品亚洲香蕉网站| 韩国女主播一区二区三区| 91精品欧美久久久久久动漫| 一区二区三区免费看视频| www.性欧美| 国产三级三级三级精品8ⅰ区| 免费成人av资源网| 制服丝袜亚洲播放| 日韩精品色哟哟| 91精品欧美一区二区三区综合在| 一区二区三区免费网站| 91福利资源站| 亚洲资源中文字幕| 欧美性大战xxxxx久久久| 一区二区高清视频在线观看| 97久久精品人人澡人人爽| 中文无字幕一区二区三区| 粉嫩嫩av羞羞动漫久久久 | 91女人视频在线观看| 国产精品人妖ts系列视频| 粉嫩aⅴ一区二区三区四区 | 成人app网站| 国产精品久久看| 99久久久久久| 亚洲精选视频免费看| 欧洲中文字幕精品| 日韩av不卡一区二区| 欧美一区二区黄色| 国产乱人伦精品一区二区在线观看| 久久综合九色综合97婷婷| 国产麻豆精品视频| 成人免费一区二区三区在线观看| 99re热视频这里只精品| 亚洲第一会所有码转帖| 日韩一区二区免费视频| 精品一区二区三区香蕉蜜桃| 欧美国产欧美综合| 欧美日韩专区在线| 久久99精品网久久| 亚洲欧美日韩精品久久久久| 欧美写真视频网站| 麻豆91在线看| 亚洲人成人一区二区在线观看| 欧美日韩国产大片| 黑人巨大精品欧美黑白配亚洲| 国产精品美女久久久久久久久| 在线观看av一区| 国产一区二区网址| 亚洲综合视频网| 国产亚洲欧美日韩在线一区| 日本韩国欧美一区| 国产一区二区三区日韩| 亚洲色图第一区| 日韩欧美一区二区三区在线| 成人免费的视频| 久久超碰97中文字幕| 成人免费一区二区三区在线观看| 日韩欧美一级二级三级| 91在线视频免费91| 国产精品99久久久久久久vr| 亚洲超碰精品一区二区| 国产精品免费看片| 欧美tickling网站挠脚心| 在线观看国产一区二区| 成人app网站| 激情综合色综合久久| 亚洲福中文字幕伊人影院| 国产精品久久久久国产精品日日| 欧美电影免费观看高清完整版在线| 91女厕偷拍女厕偷拍高清| 国产伦精品一区二区三区在线观看| 亚洲成a人片在线不卡一二三区| 亚洲国产激情av| 久久色.com| 欧美大片顶级少妇| 正在播放亚洲一区| 欧美日韩情趣电影| 色偷偷一区二区三区| 91女厕偷拍女厕偷拍高清| 不卡的av电影| 成人app在线观看| 粉嫩13p一区二区三区| 精品一区二区在线免费观看| 蜜桃传媒麻豆第一区在线观看| 亚洲va天堂va国产va久| 亚洲一区二区精品久久av| 亚洲精品国产精品乱码不99| 中文字幕一区二区在线观看| 国产精品乱子久久久久| 中文字幕一区二区三区蜜月| 亚洲国产成人自拍| 日本一区二区高清| 最近日韩中文字幕| 亚洲视频免费在线观看| 亚洲色图欧美偷拍| 亚洲国产日产av| 亚洲欧洲日本在线| 欧美电视剧免费观看| 国产成人在线看| 亚洲国产精品久久不卡毛片| 亚洲欧洲日产国码二区| 亚洲精品乱码久久久久| 有坂深雪av一区二区精品| 亚洲午夜久久久久久久久电影院 | 亚洲一区二区三区国产| 亚洲高清免费观看高清完整版在线观看 | 欧美日韩在线免费视频| 欧美日韩精品一区二区三区蜜桃 | 日韩精品在线网站| 久久综合网色—综合色88| 精品盗摄一区二区三区| 亚洲国产精品精华液网站| 欧美日韩mp4| 日韩三级精品电影久久久| 久久综合狠狠综合久久激情| 久久久精品免费免费| 亚洲欧美国产高清| 丝袜美腿亚洲色图| 国产成人精品亚洲777人妖| 99视频在线精品| 日韩小视频在线观看专区| 国产日韩欧美一区二区三区乱码 | 香蕉成人伊视频在线观看| 日本中文在线一区| 国产福利一区二区三区视频在线| 色综合天天综合网天天狠天天| 欧美日韩不卡一区二区| 国产亚洲成av人在线观看导航| 亚洲欧美一区二区三区国产精品| 美腿丝袜亚洲三区| 97久久超碰国产精品电影| 精品久久一二三区| 亚洲精品乱码久久久久久久久| 国产一区二区精品久久99|