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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c_trkin.c

?? 這是電信語音聊天設(shè)備的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*******主要完成數(shù)字中繼的呼入處理和用戶選擇處理*********//* 老聊友回呼:1、修改命令字 2、兩個成員的加入私聊的問題 */

#pragma CODE DEBUG SYMBOLS OBJECTEXTEND
#include <reg51.h>
#include <absacc.h>
#include "Const.h"
#include "Extern.h"

extern unsigned char mfc_req(unsigned char trk_num,unsigned char send_type);//請求MFC通道
extern mfc_release(unsigned char mfc_num);//釋放MFC通道

extern unsigned char dtmf_req(unsigned char trk_num,unsigned char type);//請求DTMF通道
extern dtmf_release(unsigned char dtmf_num);//釋放DTMF通道

extern command(unsigned char x,unsigned char y,unsigned char z,unsigned char i,unsigned char j,unsigned char k,unsigned char l,unsigned char m,
			   unsigned char n,unsigned char o,unsigned char p,unsigned char q,unsigned char r,unsigned char s,unsigned char t,unsigned char u);

extern connect(unsigned char i_slot,unsigned char o_slot);//用于連接兩個時隙
extern no_sound(unsigned char para1);//無音處理
extern sig_req(unsigned char para1, unsigned char para2);//發(fā)送線路信令

extern user_release(unsigned char user_num);//釋放呼出資源

extern audio_play(unsigned char audio_num,unsigned char duan_num);//放音程序
extern audio_stop(unsigned char audio_num);//停止目前操作

extern delay_time(unsigned int subtime);//延時程序

extern unsigned char add_user(unsigned char user_num,unsigned char password[6],unsigned char chat_type);//公共聊天室加入會員
extern reduce_user(unsigned char chat_num,unsigned char user_num);//用戶從此聊天室中退出
extern unsigned char ask_online(unsigned char user_num,unsigned char password[6],unsigned char chat_type);//公共聊天室加入會員
extern unsigned search_user(unsigned char chat_num,unsigned char user_num);

extern unsigned char call_out_req(unsigned char user_num);//申請呼出資源

extern unsigned char back_search(unsigned char phone[6],unsigned char type);//判斷用戶是否為普通回呼用戶
extern unsigned char number_release(unsigned char phone[6],unsigned char type);//判斷用戶是否為老聊友回呼用戶
extern back_index(unsigned char user_num);//激活回呼用戶

extern audio_control(unsigned char yukong_num,unsigned char chat_num);//語音控制
extern yukong_release(unsigned char yukong_num);//語控資源釋放

void send_mfc_in(unsigned char mfc_num,unsigned char mfc_data)//MFC發(fā)送芯片操作 mfc_data:要發(fā)送的數(shù)據(jù) mfc_number:發(fā)送通道號
{
	unsigned char xdata temp;
	temp = 1;
	while(temp)
	{
    	if(((MFC_W_R >> (2 * mfc_num + 4)) & 0x01) != 0x01)//判斷此通道是否可寫
    	{
            XBYTE[chat_mfc_resource[mfc_num].addr] = 0x3c;//設(shè)置為發(fā)后項,收前項
            temp = 0;
        }
    }   
    delay_time(1000);
    temp = 1;
    mfc_data = (mfc_data & 0x0f);
	while(temp)
	{
    	if(((MFC_W_R >> (2 * mfc_num + 4)) & 0x01) != 0x01)//判斷此通道是否可寫
    	{
            XBYTE[chat_mfc_resource[mfc_num].addr] = 0x80 + mfc_data;//發(fā)送要發(fā)的數(shù)據(jù)
            temp = 0;
        }
    }
}

void error_chuli(unsigned char user_num)//輸入錯誤處理
{
	audio_play(user_e1[user_num].dtmf,ERROR_DUAN);//放選擇錯誤提示音
	audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//放完了,將指針置為0
	audio_dtmf_resource[user_e1[user_num].dtmf].time = 0;//清空時間間隔
	audio_dtmf_resource[user_e1[user_num].dtmf].count = 0;//本段音播放次數(shù)加1
}

void clr_duan(unsigned char user_num)//清空放音
{
	unsigned char xdata trk_j;
	for(trk_j = 0;trk_j < 8;trk_j++)//清播放音
	{
		audio_dtmf_resource[user_e1[user_num].dtmf].num[trk_j] = IDLE;
	}
	audio_dtmf_resource[user_e1[user_num].dtmf].length = 0;//清空長度
	audio_dtmf_resource[user_e1[user_num].dtmf].count = 0;//清播放次數(shù)
	audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
}

void play_one(unsigned char user_num,unsigned char duan)//播放單段音
{
	audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = duan;//通知聊天室中的人X號到了
	audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
	audio_dtmf_resource[user_e1[user_num].dtmf].length = 1;//置段長度
	audio_play(user_e1[user_num].dtmf,audio_dtmf_resource[user_e1[user_num].dtmf].num[audio_dtmf_resource[user_e1[user_num].dtmf].index]);
	//放提示音
	audio_dtmf_resource[user_e1[user_num].dtmf].index++;//提示音索引號加1
}

void only_one(unsigned char user_num)//聊天室中只剩下一個人時處理
{
	unsigned char xdata trk_j;
	trk_j = IDLE;
	if(user_e1[user_num].chat_num > 0x7f)//用戶進(jìn)入的是公共聊天室
	{
		if(chat_common_resource[user_e1[user_num].chat_num - 0x80].user_count == 2)//此聊天室僅剩一人
		{
			trk_j = search_user(user_e1[user_num].chat_num,user_num);//找到此人,問他是否想要轉(zhuǎn)到其他聊天室
		}
	}
	else//用戶進(jìn)入的是私人聊天室
	{
		if(chat_private_resource[user_e1[user_num].chat_num].user_count == 2)//此聊天室僅剩一人
		{
			trk_j = search_user(user_e1[user_num].chat_num,user_num);//找到此人,問他是否想要轉(zhuǎn)到其他聊天室
		}
	}
	if(trk_j != IDLE)//僅剩一人
	{
		if(dtmf_req(trk_j,IDLE) != IDLE)//申請DTMF資源
		{
			user_e1[trk_j].lc_state = WAIT_DOWN;//準(zhǔn)備接收用戶選擇
			user_e1[trk_j].user_state = WAIT_COMMON;//等待用戶選擇
			clr_duan(user_e1[trk_j].dtmf);
			audio_dtmf_resource[user_e1[trk_j].dtmf].auto_flag = OCCUPY;//允許自動放音
			play_one(trk_j,ONLY_ONE_DUAN);
			connect(audio_dtmf_resource[user_e1[trk_j].dtmf].slot,trk_j);//連接相應(yīng)時隙
			connect(trk_j,audio_dtmf_resource[user_e1[trk_j].dtmf].slot);//連接相應(yīng)時隙
		}
	}
}

void first_chuli(unsigned char user_num,unsigned char user_select,unsigned char type)//用戶第一選擇流程
{
	switch(user_select)//用戶的按鍵
	{
		case 1://選擇進(jìn)入情感交友聊天室
		{
			if(type == 0)//正常的呼入擁護(hù)
			{
				audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
				clr_duan(user_num);
				play_one(user_num,FEELING_DUAN);
				user_e1[user_num].user_state = SELECT_TYPE;//轉(zhuǎn)到聊天室人數(shù)判斷
			}
			else//回呼用戶
			{
				if(user_e1[user_num].first_select == IDLE)
				{
					user_e1[user_num].first_select = COMMON_FEELING;
				}
				audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
				audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
				clr_duan(user_num);
				play_one(user_num,FEELING_COMMON);
				user_e1[user_num].chat_type = COMMON_FEELING;
				user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			}
		}
		break;
		case 2://選擇進(jìn)入新聞聊天室
		{
			if(user_e1[user_num].first_select == IDLE)
			{
				user_e1[user_num].first_select = NEWS;
			}
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			clr_duan(user_num);
		    play_one(user_num,NEWS_DUAN);
			user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			user_e1[user_num].chat_type = NEWS;//置用戶的聊天室種類
		}
		break;
		case 3://選擇進(jìn)入足球聊天室
		{	
			if(user_e1[user_num].first_select == IDLE)
			{
				user_e1[user_num].first_select = FOOTBALL;
			}
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			clr_duan(user_num);
			play_one(user_num,FOOTBALL_DUAN);
			user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			user_e1[user_num].chat_type = FOOTBALL;//置用戶的聊天室種類
		}	
		break;
		case 4://選擇進(jìn)入股票聊天室
		{
			if(user_e1[user_num].first_select == IDLE)
			{
				user_e1[user_num].first_select = STOCK;	
			}
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			clr_duan(user_num);
			play_one(user_num,STOCK_DUAN);
			user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			user_e1[user_num].chat_type = STOCK;//置用戶的聊天室種類
		}
		break;
		case 5://選擇進(jìn)入彩票聊天室
		{
			if(user_e1[user_num].first_select == IDLE)
			{
				user_e1[user_num].first_select = LOTTERY;
			}
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			clr_duan(user_num);
			play_one(user_num,LOTTERY_DUAN);
			user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			user_e1[user_num].chat_type = LOTTERY;//置用戶的聊天室種類
		}
		break;
		case 6://選擇進(jìn)入英語聊天室
		{
			if(user_e1[user_num].first_select == IDLE)
			{
				user_e1[user_num].first_select = ENGLISH;	
			}
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			clr_duan(user_num);
			play_one(user_num,ENGLISH_DUAN);
			user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			user_e1[user_num].chat_type = ENGLISH;//置用戶的聊天室種類
		}
		break;
		case 7://選擇進(jìn)入熱門話題聊天室
		{
			if(user_e1[user_num].first_select == IDLE)
			{
				user_e1[user_num].first_select = HOT_MATTER;
			}
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			clr_duan(user_num);
			play_one(user_num,HOT_MATTER_DUAN);
			user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			user_e1[user_num].chat_type = HOT_MATTER;//置用戶的聊天室種類
		}
		break;
		case 8://選擇進(jìn)入密碼聊天室
		{
			if(type == 0)//正常呼入的用戶
			{
				if(user_e1[user_num].first_select == IDLE)
				{
					user_e1[user_num].first_select = PASSWORD;
				}
				audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
				clr_duan(user_num);
				play_one(user_num,PASSWORD_DUAN);
				user_e1[user_num].user_state = WAIT_PASSWORD;//等待用戶輸入密碼
				user_e1[user_num].chat_type = PASSWORD;//置用戶的聊天室種類
				user_e1[user_num].user_index = 0;
			}
			else//回呼用戶
			{
				if(user_e1[user_num].first_select == IDLE)
				{
					user_e1[user_num].first_select = PASSWORD;
				}
				audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
				clr_duan(user_num);
				audio_dtmf_resource[user_e1[user_num].dtmf].count = 1;	 
				user_e1[user_num].user_state = JUDGE_USER;//等待用戶輸入密碼
				user_e1[user_num].chat_type = PASSWORD;//置用戶的聊天室種類
			}
		}
		break;
		case 9://選擇進(jìn)入個人資料修改查詢
		{
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			clr_duan(user_num);
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			command(5,0,user_num,0,user_e1[user_num].telephone[0],user_e1[user_num].telephone[1],user_e1[user_num].telephone[2],user_e1[user_num].telephone[3],user_e1[user_num].telephone[4],user_e1[user_num].telephone[5],IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
			user_e1[user_num].wait = 1;
			user_e1[user_num].user_state = IDLE;
		}
		break;
		case 0x80://回呼用戶(選擇私聊)
		{
			if(user_e1[user_num].first_select == IDLE)
			{
				user_e1[user_num].first_select = PRIVATE_FEELING;
			}
			audio_stop(user_e1[user_num].dtmf);//停止當(dāng)前操作
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自動放音標(biāo)志
			clr_duan(user_num);
		    audio_dtmf_resource[user_e1[user_num].dtmf].count = 1;
			user_e1[user_num].user_state = JUDGE_USER;//轉(zhuǎn)到聊天室人數(shù)判斷
			user_e1[user_num].chat_type = PRIVATE_FEELING;//置用戶的聊天室種類
		}
		break;
		default:
		{
			error_chuli(user_num);//輸入錯誤
		}
		break;
	}
	audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;//清空用戶撥鍵
}

void back_failure(unsigned char user_num)//回呼的用戶:申請回呼的用戶已經(jīng)和別人聊上了
{
	clr_duan(user_num);
	play_one(user_num,OTHER_USER);
	user_e1[user_num].user_state = INFORM_END;
	user_e1[user_num].back_flag = 0;
}

user_select_ctrl(unsigned char user_num,unsigned char user_select)//用戶選擇流程
{
	unsigned char xdata trk_j,trk_k;
	switch(user_e1[user_num].user_state)
	{
		case SELECT_START://開始處理用戶選擇
		{
			if(user_select != IDLE)//用戶按鍵了 
			{
				if(user_monitor_num == user_num)//往后臺回應(yīng)監(jiān)視信息
				{
					command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
				}
				first_chuli(user_num,user_select,0);
			}		
		}
		break;
		case WAIT_YES://已經(jīng)注冊的用戶進(jìn)入個人資料中心
		{
			play_one(user_num,PRIVATE_CENTER);
			user_e1[user_num].user_state = CHA_SHAN;//轉(zhuǎn)到等待用戶選擇查詢或刪除聊天號
			audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = OCCUPY;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久网站| 欧美日韩免费电影| 国产精品你懂的在线欣赏| 国产**成人网毛片九色| 国产精品色哟哟| 一本一道波多野结衣一区二区| 亚洲一级二级在线| 日韩一区二区三区av| 国产成人一区在线| 亚洲日本成人在线观看| 欧美精选午夜久久久乱码6080| 九九精品视频在线看| 国产精品久久久久久久久免费桃花| 色综合天天在线| 日韩精品91亚洲二区在线观看| 26uuu国产日韩综合| 波多野结衣中文一区| 亚洲国产精品久久艾草纯爱| 欧美大片日本大片免费观看| 成人av在线一区二区三区| 性欧美疯狂xxxxbbbb| 久久精子c满五个校花| 色综合天天天天做夜夜夜夜做| 日韩国产欧美视频| 日本一区二区综合亚洲| 欧美日韩一区久久| 国产福利91精品一区二区三区| 一区二区在线观看视频在线观看| 日韩免费电影一区| 一本到不卡免费一区二区| 久久精品国产亚洲高清剧情介绍 | 欧美日韩一区二区三区不卡| 韩国av一区二区三区在线观看| 亚洲婷婷综合久久一本伊一区| 91精品一区二区三区在线观看| 大陆成人av片| 日本不卡高清视频| 亚洲日本免费电影| 精品av综合导航| 欧亚洲嫩模精品一区三区| 国产成人在线观看免费网站| 日韩精品1区2区3区| 亚洲天堂av一区| 久久久国产一区二区三区四区小说| 欧美亚洲动漫精品| thepron国产精品| 国产在线视频一区二区三区| 日韩福利电影在线观看| 亚洲一区免费在线观看| 综合色天天鬼久久鬼色| 国产欧美精品一区二区色综合朱莉| 91精品国模一区二区三区| 97精品国产97久久久久久久久久久久| 精品一区二区精品| 婷婷国产在线综合| 亚洲精选视频在线| 最好看的中文字幕久久| 国产精品免费网站在线观看| 久久婷婷成人综合色| 日韩欧美在线观看一区二区三区| 91美女精品福利| 91丝袜呻吟高潮美腿白嫩在线观看| 国产一区二区三区在线观看免费| 久久精品国内一区二区三区| 视频一区二区三区在线| 亚洲高清三级视频| 亚洲一区在线播放| 亚洲国产另类av| 一区二区三区在线不卡| 亚洲综合在线视频| 一区二区在线观看不卡| 亚洲欧美日韩国产综合| 亚洲精品免费在线| 亚洲一级二级三级在线免费观看| 亚洲无线码一区二区三区| 亚洲午夜三级在线| 婷婷中文字幕一区三区| 日本欧美加勒比视频| 久久国产精品露脸对白| 国产在线播精品第三| 国产自产高清不卡| 激情综合网天天干| 国产91精品免费| 99久久99久久综合| 色狠狠综合天天综合综合| 日本道免费精品一区二区三区| 在线精品亚洲一区二区不卡| 欧美日韩国产不卡| 日韩视频在线一区二区| 久久女同性恋中文字幕| 中文久久乱码一区二区| 亚洲免费成人av| 三级一区在线视频先锋| 韩国av一区二区三区| 成人av高清在线| 欧洲视频一区二区| 91精品国产综合久久小美女| 久久先锋影音av| 国产精品免费免费| 亚洲444eee在线观看| 狠狠色狠狠色综合| 99久久久免费精品国产一区二区 | 日韩电影在线一区二区三区| 韩国中文字幕2020精品| 成人午夜电影久久影院| 欧美三级三级三级爽爽爽| 精品sm在线观看| 亚洲日本一区二区三区| 欧美a级一区二区| 国产aⅴ精品一区二区三区色成熟| 日本国产一区二区| 精品乱人伦一区二区三区| 最新成人av在线| 久久99精品国产.久久久久久| 99久久精品费精品国产一区二区| 欧美美女bb生活片| 国产精品成人免费| 久久精品国产成人一区二区三区 | 日本一区二区三区在线不卡| 亚洲香肠在线观看| 岛国一区二区三区| 欧美一级xxx| 亚洲影视资源网| 成人午夜大片免费观看| 欧美一区二区视频在线观看 | 精品日韩一区二区| 一区二区三区蜜桃网| 国产成人在线网站| 欧美肥大bbwbbw高潮| 亚洲色图视频网站| 国产在线播放一区二区三区| 欧美美女一区二区三区| 亚洲免费资源在线播放| 国产精品一区一区三区| 欧美精品xxxxbbbb| 亚洲激情网站免费观看| 成人av在线网| 久久久久久久久久久电影| 日本视频在线一区| 在线这里只有精品| 中文字幕欧美一| 国产精品影视在线| 精品久久国产老人久久综合| 天堂av在线一区| 在线亚洲欧美专区二区| 国产精品传媒视频| 成人免费视频国产在线观看| 精品国产1区2区3区| 美国欧美日韩国产在线播放| 欧美人动与zoxxxx乱| 亚洲伊人色欲综合网| 91亚洲国产成人精品一区二区三 | 26uuuu精品一区二区| 麻豆国产一区二区| 欧美一区二区三区男人的天堂| 亚洲国产精品一区二区久久恐怖片 | 亚洲人成网站在线| av男人天堂一区| 国产精品国产三级国产a| 成人免费高清视频| 国产欧美一区二区三区网站| 国产精品538一区二区在线| 精品福利一区二区三区 | 亚洲一区二区免费视频| 欧美在线观看18| 一区二区三区免费网站| 欧美色男人天堂| 视频一区二区不卡| 日韩欧美电影在线| 国精产品一区一区三区mba桃花| 欧美成人精品高清在线播放 | 国产精品美女久久久久久| 丁香婷婷综合网| 国产精品乱人伦中文| 色综合一区二区三区| 亚洲最色的网站| 欧美欧美欧美欧美| 狂野欧美性猛交blacked| 久久久影院官网| 成年人午夜久久久| 一区二区免费在线| 欧美一区二区女人| 国产精品1区二区.| 综合久久给合久久狠狠狠97色 | 久久久亚洲精品一区二区三区| 国产91精品欧美| 亚洲精品成人少妇| 欧美一级专区免费大片| 国产乱理伦片在线观看夜一区| 日本一区二区不卡视频| 91久久精品一区二区三区| 免费美女久久99| 中文在线免费一区三区高中清不卡| 色综合av在线| 久久 天天综合| 亚洲欧洲精品一区二区精品久久久| 欧美视频一区在线观看| 激情小说欧美图片| 玉米视频成人免费看| 26uuu亚洲婷婷狠狠天堂|