📄 c_trkin.c
字号:
}
break;
case CHA_SHAN://等待用户选择查询或删除聊天号
{
if(user_select != IDLE)
{
audio_stop(user_e1[user_num].dtmf);//停止放音
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
if(user_select == 1)//查询聊天号
{
command(5,2,user_num,1,user_e1[user_num].user_sex,user_e1[user_num].user_age,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);
user_e1[user_num].user_state = IDLE;
}
else
{
if(user_select == 2)//删除聊天号
{
command(5,2,user_num,2,user_e1[user_num].user_sex,user_e1[user_num].user_age,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);
user_e1[user_num].user_state = IDLE;
}
else//错误的输入
{
error_chuli(user_num);
}
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
case INFORM_CHAT://通知用户的聊天号
{
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = TONGZHI_CHAT_NUMBER;//“你的聊天号是:”
for(trk_j = 1;trk_j < 7;trk_j++)//清播放音
{
audio_dtmf_resource[user_e1[user_num].dtmf].num[trk_j] = user_e1[user_num].number_chat[trk_j - 1];
}
audio_dtmf_resource[user_e1[user_num].dtmf].num[8] = IDLE;
audio_dtmf_resource[user_e1[user_num].dtmf].length = 8;//置播放长度
audio_dtmf_resource[user_e1[user_num].dtmf].count = 0;//清播放次数
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
//播放提示音
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
user_e1[user_num].user_state = INFORM_END;//转为等待提示音结束
}
break;
case INFORM_SHAN://通知用户已经成功删除聊天号
{
clr_duan(user_num);
play_one(user_num,SHAN_DUAN);
user_e1[user_num].user_state = INFORM_END;//转为等待提示音结束
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = OCCUPY;
}
break;
case WAIT_NO://没有注册的用户进入个人资料中心,提示是否想注册
{
clr_duan(user_num);
play_one(user_num,ZHUCE_SELECT_DUAN);
user_e1[user_num].user_state = ZHUCE_SELECT;//转为等待用户选择是否注册
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = OCCUPY;
}
break;
case ZHUCE_SELECT://等待用户选择是否注册
{
if(user_select != IDLE)
{
audio_stop(user_e1[user_num].dtmf);//停止放音
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
if(user_select == 2)//用户选择不注册
{
clr_duan(user_num);
play_one(user_num,FIRST_AUDIO);
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = OCCUPY;
user_e1[user_num].user_state = SELECT_START;//转到起始选择
}
else
{
if(user_select == 1)//用户选择注册
{
audio_stop(user_e1[user_num].dtmf);//停止当前操作
clr_duan(user_num);
play_one(user_num,USER_SEX_DUAN);
user_e1[user_num].user_state = USER_SEX;//提示输入性别
user_e1[user_num].user_index = 0;
}
else//错误的选择
{
error_chuli(user_num);
}
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
case INFORM_ZHUCE://通知新注册的用户自己的聊天号
{
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = SUCCESS_ZHUCE_A;//播放情感交友私人聊天室
for(trk_j = 1;trk_j < 7;trk_j++)//清播放音
{
audio_dtmf_resource[user_e1[user_num].dtmf].num[trk_j] = user_e1[user_num].number_chat[trk_j - 1];
}
audio_dtmf_resource[user_e1[user_num].dtmf].num[7] = SUCCESS_ZHUCE_B;//播放情感交友私人聊天室
audio_dtmf_resource[user_e1[user_num].dtmf].length = 8;//置播放长度
audio_dtmf_resource[user_e1[user_num].dtmf].count = 0;//清播放次数
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
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
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = OCCUPY;
if(user_e1[user_num].wait == 1)//通过进入个人资料中心注册的用户
{
user_e1[user_num].user_state = INFORM_END;//转为等待提示音结束
user_e1[user_num].wait = 0;
}
else//选择私聊进行注册的用户
{
user_e1[user_num].user_state = ZHUCE_END;//转为注册结束
}
}
break;
case ZHUCE_END://注册结束
{
if(audio_dtmf_resource[user_e1[user_num].dtmf].count > 0)
{
clr_duan(user_num);
play_one(user_num,OPP_SEX_DUAN);
user_e1[user_num].user_state = OPP_SEX;//提示输入对方的性别
user_e1[user_num].user_index = 0;
}
}
break;
case INFORM_END://提示音结束
{
if(audio_dtmf_resource[user_e1[user_num].dtmf].count > 0)
{
clr_duan(user_num);
play_one(user_num,FIRST_AUDIO);
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = OCCUPY;
user_e1[user_num].user_state = SELECT_START;//转到起始选择
}
}
break;
case JUDGE_USER://判断聊天室的人数
{
if(audio_dtmf_resource[user_e1[user_num].dtmf].count > 0)//欢迎提示音放完了
{
if(add_user(user_num,user_e1[user_num].password,user_e1[user_num].chat_type) != IDLE)
//聊天室的人数没满
{
no_sound(user_num);//无音处理
switch(user_e1[user_num].chat_type)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
{//用户选择公共聊天室
clr_duan(user_num);
connect(audio_dtmf_resource[user_e1[user_num].dtmf].slot,user_e1[user_num].user_mix);
//连接相应时隙
if(user_num == user_monitor_num)
{
connect(audio_dtmf_resource[user_e1[user_num].dtmf].slot,CHAIRMAN_SLOT);//如果为监视端口,将提示音交换到监听时隙
}
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = user_e1[user_num].user_num + 1;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[1] = INFORM_DUAN;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].length = 2;//置段长度
user_e1[user_num].user_state = INFORM_USER;//转到通知用户
}
break;
case 0x80://用户选择私人聊天室
{
if(user_num == user_monitor_num)
{
connect(audio_dtmf_resource[user_e1[user_num].dtmf].slot,CHAIRMAN_SLOT);//如果为监视端口,将提示音交换到监听时隙
}
if(user_e1[user_num].opp_num != IDLE)//用户已经成功进入一对一聊天室
{
connect(audio_dtmf_resource[user_e1[user_num].dtmf].slot,user_e1[user_num].opp_num);
//连接相应时隙
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = user_e1[user_num].user_num + 1;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[1] = INFORM_DUAN;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
audio_dtmf_resource[user_e1[user_num].dtmf].length = 2;//置段长度
}
else//用户新创建了一对一聊天室
{
audio_dtmf_resource[user_e1[user_num].dtmf].count = 1;//清空放音次数
}
user_e1[user_num].user_state = INFORM_USER;//转到通知用户
}
break;
default:
break;
}
}
else//用户选择的聊天室已满
{
connect(audio_dtmf_resource[user_e1[user_num].dtmf].slot,user_num);
//连接相应时隙
if(user_num == user_monitor_num)
{
connect(audio_dtmf_resource[user_e1[user_num].dtmf].slot,CHAIRMAN_SLOT);//如果为监视端口,将提示音交换到监听时隙
}
play_one(user_num,FULL_DUAN);
user_e1[user_num].user_state = INFORM_END;//转为等待提示音结束
}
if(audio_dtmf_resource[user_e1[user_num].dtmf].count != 1)
{
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//提示音索引号加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
audio_dtmf_resource[user_e1[user_num].dtmf].count = 0;//清空放音次数
}
}
}
break;
case INFORM_USER://通知用户已经成功进入聊天系统
{
if(audio_dtmf_resource[user_e1[user_num].dtmf].count > 0)//提示音放完了
{
connect(audio_dtmf_resource[user_e1[user_num].dtmf].slot,user_num);//连接相应时隙
clr_duan(user_num);
switch(user_e1[user_num].chat_type)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7://用户选择非密码公共聊天室
{
no_sound(user_e1[user_num].user_mix);//无音处理
if(chat_common_resource[user_e1[user_num].chat_num - 0x80].user_count > 1)//公共聊天室中至少有两个人
{
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = SUCCESS_DUANA;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[1] = user_e1[user_num].user_num + 1;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[2] = SUCCESS_DUANB;
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
audio_dtmf_resource[user_e1[user_num].dtmf].length = 3;//置段长度
user_e1[user_num].user_state = SUCCESS_COMMON;//转到成功处理
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
}
else//用户新创建了一个公共聊天室
{
trk_j = ask_online(user_num,user_e1[user_num].password,user_e1[user_num].chat_type);
//在线寻找第一选择相同的用户
if(trk_j != IDLE)
{
user_e1[user_num].opp_num = trk_j;
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = SUCCESS_DUANA;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[1] = user_e1[user_num].user_num + 1;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[2] = SUCCESS_DUANB;
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
audio_dtmf_resource[user_e1[user_num].dtmf].length = 3;//置段长度
user_e1[user_num].user_state = ONLINE_CHAT;//转到成功处理
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
}
else//查询有无回呼资源
{
command(5,4,user_num,user_e1[user_num].chat_type,IDLE,IDLE,IDLE,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);
user_e1[user_num].user_state = IDLE;
}
}
}
break;
case 8://用户选择密码聊天室
{
no_sound(user_e1[user_num].user_mix);//无音处理
if(chat_common_resource[user_e1[user_num].chat_num - 0x80].user_count > 1)//聊天室中至少有一人
{
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = SUCCESS_DUANA;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[1] = user_e1[user_num].user_num + 1;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[2] = SUCCESS_DUANB;
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
audio_dtmf_resource[user_e1[user_num].dtmf].length = 3;//置段长度
user_e1[user_num].user_state = SUCCESS_COMMON;//转到成功处理
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
}
else//用户新创建了一个密码聊天室
{
trk_j = ask_online(user_num,user_e1[user_num].password,user_e1[user_num].chat_type);
if(trk_j != IDLE)
{
user_e1[user_num].opp_num = trk_j;
audio_dtmf_resource[user_e1[user_num].dtmf].num[0] = SUCCESS_DUANA;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[1] = user_e1[user_num].user_num + 1;//通知聊天室中的人X号到了
audio_dtmf_resource[user_e1[user_num].dtmf].num[2] = SUCCESS_DUANB;
audio_dtmf_resource[user_e1[user_num].dtmf].index = 0;//清空段索引
audio_dtmf_resource[user_e1[user_num].dtmf].length = 3;//置段长度
user_e1[user_num].user_state = ONLINE_CHAT;//转到成功处理
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
}
else
{
command(5,4,user_num,user_e1[user_num].chat_type,(user_e1[user_num].password[0] << 4) + (user_e1[user_num].password[1] & 0x0f),(user_e1[user_num].password[2] << 4) + (user_e1[user_num].password[3] & 0x0f),(user_e1[user_num].password[4] << 4) + (user_e1[user_num].password[5] & 0x0f),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);
user_e1[user_num].user_state = IDLE;
}
}
}
break;
case 0x80://用户选择为一对一聊天
{
no_sound(user_e1[user_num].opp_num);//无音处理
if(chat_private_resource[user_e1[user_num].chat_num].user_count > 1)//用户已经成功进入一对一聊天室
{
play_one(user_num,SUCCESS_PRIVATE);
user_e1[user_num].user_state = SUCCESS_COMMON;//转到成功处理
}
else//用户新创建了一个一对一聊天室
{
trk_j = ask_online(user_num,user_e1[user_num].password,user_e1[user_num].chat_type);
if(trk_j != IDLE)//在线寻找到合意的聊友
{
user_e1[user_num].opp_num = trk_j;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -