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

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

?? tvshow.c

?? 采用五岳鑫公司的板卡開發的,電話可以接入和打出,方便易懂
?? C
字號:

/*****************************************************************************


	注意: 凡是隨 TeleWind 電話卡提供的 C 庫函數, 都以 TV 開頭,
	如 TV_Installed(), TV_Initialize(), TV_Disable() 等.

	本程序中用到的 TeleWind 電話卡 C 語言庫函數:

        TV_Installed()          判斷 TW8VID 驅動程序是否已經安裝
        TV_Initialize()         初始化系統中所有的 TW8VID 電話卡
        TV_Disable()            禁止 TW8VID 工作
	TV_CompressRatio()      設置錄放音的壓縮比
        TV_GetSerial()          取出 TW8VID 的序列號
	TV_StartPlayFile()      對某一通道進行文件放音
	TV_PlayFileRest()       繼續文件放音, 并不斷將語音文件中未放音的部分讀入緩沖區
	TV_OffHookDetect()      判斷某一內線通道是否已摘機
	TV_StopPlayFile()       強制停止某一通道的文件放音
	TV_GetDTMFChar()        獲取某一通道接收到的一個 DTMF 字符
	TV_ChannelType()        查詢某一通道的類型
	TV_RingDetect()         判斷某一外線通道是否在振鈴
	TV_OffHookCtrl()        控制某一外線通道摘機
	TV_FlushDTMF()          清除某一通道的 DTMF 接收緩沖區
	TV_StartTimer()         開始某一通道的計時器
	TV_MonitorBusy()        根據忙音監視掛機狀態
	TV_CheckSignal()        查詢某一通道的信號音結果 (一般來說只查詢外線通道)
	TV_HangUpCtrl()         控制某一外線通道掛機
	TV_TimerElapsed()       查詢某一通道的計時器開始后已走過的時間 (單位: 秒)
	TV_GenerateSignal()     在某一通道產生信號音

*****************************************************************************/
#include <windows.h>
#define far

#include <stdio.h>
#include <limits.h>
#include <conio.h>
#include "TW8VID.H"

#define VOICE_FILE      "VOICE\\TVCALL.TW"
#define WAIT_TIMER      15              /* 15 秒 */

typedef enum {
	WS_HANGUP,      /* 掛機 */
	WS_PLAYING,     /* 放音 */
	WS_TIMER,       /* 計時 */
	WS_BUSY         /* 忙音 (僅對內線通道) */
} WORKING_STATUS;

WORKING_STATUS  CS[MAX_CHANNELS];      /* 存放各通道狀態 */

int     iChannels;
char    sSerial[10];


void CheckDtmf (int i) {
	int     d;

	while ((d = TV_GetDTMFChar (i)) != -1)
		printf ("\n 通道%2d (%c) : 接收到 DTMF 碼: '%c'", i, TV_ChannelType (i) == CT_INTERNAL ? '+' : '*', d);
}

void ExternalChannels (int i) {
	int     Sig, SigCount, SigLen;

	switch (CS[i]) {

		case WS_HANGUP :
			if (TV_RingDetect (i) > 1) {
				printf ("\n 通道%2d (*) : 振鈴", i);
				TV_OffHookCtrl (i);
				TV_FlushDTMF (i);
				if (TV_StartPlayFile (i, VOICE_FILE, 0, LONG_MAX) == -1) {
					printf ("\n 通道%2d (*) : 放音失敗", i);
					TV_StartTimer (i, WAIT_TIMER);
					CS[i] = WS_TIMER;
				} else {
					printf ("\n 通道%2d (*) : 放音", i);
					CS[i] = WS_PLAYING;
				}
			}
			break;

		case WS_PLAYING :
			CheckDtmf (i);
			Sig = TV_CheckSignal (i, &SigCount, &SigLen);
			if ((Sig == SIG_BUSY1 || Sig == SIG_BUSY2) && SigCount >= 3) {
				printf ("\n 通道%2d (*) : 外線掛機", i);
				TV_HangUpCtrl (i);
				CS[i] = WS_HANGUP;
			}
			else if (TV_PlayFileRest (i) <= 0) {
				printf ("\n 通道%2d (*) : 放音完畢", i);
				TV_StartTimer (i, WAIT_TIMER);
				CS[i] = WS_TIMER;
			}
			break;

		case WS_TIMER :
			CheckDtmf (i);
			Sig = TV_CheckSignal (i, &SigCount, &SigLen);
			if ((Sig == SIG_BUSY1 || Sig == SIG_BUSY2) && SigCount >= 3) {
				printf ("\n 通道%2d (*) : 外線掛機", i);
				TV_HangUpCtrl (i);
				CS[i] = WS_HANGUP;
			}
			else if (TV_TimerElapsed (i) < 0) {
				printf ("\n 通道%2d (*) : 超時", i);
				TV_HangUpCtrl (i);
				CS[i] = WS_HANGUP;
			}
			break;
	}
}

void InternalChannels (int i) {
	switch (CS[i]) {

		case WS_HANGUP :
			if (TV_OffHookDetect (i)) {
				printf ("\n 通道%2d (+) : 摘機", i);
				TV_FlushDTMF (i);
				if (TV_StartPlayFile (i, VOICE_FILE, 0, LONG_MAX) == -1) {
					printf ("\n 通道%2d (+) : 放音失敗", i);
					TV_StartTimer (i, WAIT_TIMER);
					CS[i] = WS_TIMER;
				} else {
					printf ("\n 通道%2d (+) : 放音", i);
					CS[i] = WS_PLAYING;
				}
			}
			break;

		case WS_PLAYING :
			CheckDtmf (i);
			if (!TV_OffHookDetect (i)) {
				printf ("\n 通道%2d (+) : 放音時內線掛機", i);
				TV_StopPlayFile (i);
				CS[i] = WS_HANGUP;
			}
			else if (TV_PlayFileRest (i) <= 0) {
				printf ("\n 通道%2d (+) : 放音完畢", i);
				TV_StartTimer (i, WAIT_TIMER);
				CS[i] = WS_TIMER;
			}
			break;

		case WS_TIMER :
			CheckDtmf (i);
			if (!TV_OffHookDetect (i)) {
				printf ("\n 通道%2d (+) : 內線掛機", i);
				CS[i] = WS_HANGUP;
			}
			else if (TV_TimerElapsed (i) < 0) {
				printf ("\n 通道%2d (+) : 超時", i);
				TV_GenerateSignal (i, SIG_BUSY1);
				CS[i] = WS_BUSY;
			}
			break;

		case WS_BUSY :
			if (!TV_OffHookDetect (i)) {
				printf ("\n 通道%2d (+) : 忙音通道掛機", i);
				TV_GenerateSignal (i, SIG_SILENCE);
				CS[i] = WS_HANGUP;
			}
			break;
	}
}

void Demo (void) {
	int     i;

	printf ("\n現在開始工作, 按 Esc 鍵退出 ...\n");
	for (i = 0; i < iChannels; ++i)
		CS[i] = WS_HANGUP;
	while (1) {
		if ((kbhit() && getch() == 0x1b)) {     /* ESC ? */
			for (i = 0; i < iChannels; ++i)
				TV_StopPlayFile(i);
			break;
		}
		for (i = 0; i < iChannels; ++i) {
			switch (TV_ChannelType (i)) {

				case CT_EXTERNAL :
					ExternalChannels (i);
					break;

				case CT_INTERNAL :
					InternalChannels (i);
					break;
			}
		}
	}
}

int main (void) {
	if ((iChannels = TV_Installed()) == 0) {
                printf ("\n錯誤: TeleWind 8VID 驅動程序未安裝 !\n\007");
		return 1;
	}
	TV_Initialize();
	TV_CompressRatio (RATE_64K);
	TV_GetSerial (sSerial);
	printf ("\n TeleWind Demonstration Ver 1.0"
		"\n\n    序列號 = [%s]    通道總數 = [%1d]\n", sSerial, iChannels);
	printf ("\n\n本程序演示電話卡多路同時工作:"
		"\n處理內外線; 多路放音; 接收 DTMF 碼"
		"\n對于內線通道, 請直接摘機;"
		"\n對于外線通道, 請撥該通道所接電話線的號碼\n");
	Demo();
	TV_Disable();
	return 0;
}

/*****************************************************************************
	End Of File     - TVSHOW.C
*****************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本不卡视频| 欧美猛男超大videosgay| 日韩高清不卡一区二区| 伊人一区二区三区| 亚洲精品一二三| 亚洲人成7777| 亚洲在线一区二区三区| 亚洲在线视频网站| 午夜精品久久久久久久久| 同产精品九九九| 九九精品视频在线看| 国产乱码精品一区二区三区av| 国内久久精品视频| 高清av一区二区| av午夜精品一区二区三区| 色狠狠色狠狠综合| 91精品国产高清一区二区三区蜜臀| 欧美日韩国产美| 精品国产乱码久久久久久1区2区 | www.av亚洲| 91国内精品野花午夜精品| 欧美高清dvd| 精品国产乱码久久久久久1区2区| 国产欧美日韩在线| 激情五月激情综合网| 成人一区二区三区视频| 日本道免费精品一区二区三区| 欧美日韩欧美一区二区| 日韩欧美资源站| 国产精品三级视频| 亚洲成人av免费| 国产成人精品免费视频网站| 91在线国内视频| 欧美成人精品二区三区99精品| 国产女主播视频一区二区| 一区二区三区日本| 免费日韩伦理电影| 91在线精品一区二区三区| 91精品国产91久久久久久一区二区| 久久久99精品免费观看不卡| 亚洲国产成人av| 成人国产精品免费观看视频| 欧美日本精品一区二区三区| 国产精品美女久久久久高潮| 免费成人在线观看| 一本色道久久综合精品竹菊| 亚洲精品在线免费播放| 亚洲香蕉伊在人在线观| 国产传媒日韩欧美成人| 欧美一级片在线看| 亚洲高清三级视频| 91丝袜美腿高跟国产极品老师| 日韩午夜在线观看视频| 亚洲国产一区二区视频| 97se狠狠狠综合亚洲狠狠| 亚洲精品一区二区三区蜜桃下载| 亚洲综合丁香婷婷六月香| 丁香激情综合国产| 久久婷婷成人综合色| 免费在线欧美视频| 亚洲一区二区视频| 亚洲精品国久久99热| |精品福利一区二区三区| 亚洲sss视频在线视频| av亚洲精华国产精华精华| 久久奇米777| 久久成人av少妇免费| 91麻豆精品久久久久蜜臀| 一区二区三区四区不卡视频| 北岛玲一区二区三区四区| 日本一区二区三区视频视频| 久久国产剧场电影| 日韩精品一区二区三区视频在线观看| 在线精品视频免费播放| 中文字幕一区二区三区四区 | 中文字幕亚洲视频| 国产91在线看| 国产精品麻豆欧美日韩ww| 成人午夜免费视频| 亚洲色图20p| 欧美三级午夜理伦三级中视频| 亚洲午夜久久久| 51精品视频一区二区三区| 琪琪久久久久日韩精品| 日韩欧美中文字幕精品| 国产一区二区三区免费播放 | 亚洲一区av在线| 欧美亚洲国产一卡| 日韩高清欧美激情| 精品三级av在线| 成人高清在线视频| 亚洲欧洲综合另类在线| 在线播放/欧美激情| 精品一区二区免费视频| 国产精品毛片大码女人| 欧美三级日韩在线| 精品一二线国产| 欧美国产精品v| 欧美自拍偷拍午夜视频| 日本欧美一区二区| 国产精品美女久久久久久| 在线观看成人小视频| 精品一区二区av| 亚洲乱码精品一二三四区日韩在线| 欧美吞精做爰啪啪高潮| 国产一区在线观看视频| 樱桃视频在线观看一区| 日韩欧美亚洲国产另类 | 欧美电影一区二区三区| 国产一区二区中文字幕| 一区二区三区在线免费| 26uuu另类欧美亚洲曰本| 一本一本大道香蕉久在线精品 | 国产成人精品免费| 自拍偷拍国产精品| 精品国产一区a| 色先锋aa成人| 国产精品一区二区久激情瑜伽| 亚洲精品国产视频| 欧美精彩视频一区二区三区| 欧美人伦禁忌dvd放荡欲情| 成年人国产精品| 激情文学综合网| 日本亚洲免费观看| 亚洲美女视频在线观看| 久久久久国产精品免费免费搜索| 在线欧美日韩精品| 成人免费看片app下载| 免费人成在线不卡| 午夜欧美大尺度福利影院在线看| 国产精品天美传媒| 久久久九九九九| 精品国产自在久精品国产| 欧美三级日韩在线| 色8久久精品久久久久久蜜| 国产99久久久国产精品| 国产一区二区不卡在线| 日本午夜精品一区二区三区电影| 一区二区成人在线| 一区二区三区欧美日| 亚洲欧洲成人精品av97| 欧美高清在线视频| 久久久久一区二区三区四区| 日韩亚洲欧美中文三级| 欧美精品日韩一区| 在线免费观看视频一区| 99vv1com这只有精品| 91最新地址在线播放| 成人一区二区三区视频| 国产91色综合久久免费分享| 国产成人综合亚洲91猫咪| 韩国av一区二区三区四区| 九九精品视频在线看| 国产一区二区在线视频| 国产盗摄一区二区三区| 国产成人激情av| 99视频精品免费视频| 99精品视频在线观看免费| 91免费视频网址| 91成人免费网站| 欧美日韩在线综合| 欧美日韩国产首页| 这里是久久伊人| 精品va天堂亚洲国产| 欧美韩国日本综合| 亚洲欧美日韩一区二区| 亚洲成人在线网站| 免费精品视频最新在线| 国产一区二区福利视频| 99久久婷婷国产综合精品电影| 91在线播放网址| 欧美高清hd18日本| 26uuu亚洲综合色| 综合久久一区二区三区| 亚洲图片欧美色图| 久久国产生活片100| 成人一区二区三区在线观看| 欧美伊人精品成人久久综合97| 91麻豆精品国产自产在线| 久久久久国产一区二区三区四区| 中文字幕在线视频一区| 亚洲国产一区视频| 国产精品99久久久| 欧美日韩一区二区三区高清| 精品国免费一区二区三区| 综合电影一区二区三区 | 国产午夜精品一区二区三区嫩草| 国产精品第13页| 另类小说一区二区三区| 91香蕉国产在线观看软件| 欧美日本精品一区二区三区| 国产嫩草影院久久久久| 午夜伦欧美伦电影理论片| 国产成人精品影院| 欧美理论片在线| 亚洲欧洲综合另类在线| 激情五月婷婷综合| 69p69国产精品| 亚洲人成精品久久久久久| 国产黄色成人av|