📄 mmicall.c
字号:
call_data.win_incoming = 0;
stopIncallLed();/*zy add 01-23-2003 for led incomingcall stop*/
}
if( (*cid==call_data.outCall)&&(call_data.win_calling) )
{
SEND_EVENT(call_data.win_calling,DIALOG_DESTROY,0,0);
call_data.win_calling = 0;
}
//Quick check to see if we're duplicating call table
for( i =0; i++; i<MAX_CALL_NR )
{
if( *cid == call_data.calls.status[i].call_number )
{
return 1;//zy 2003-04-16 turn from"return" to "return 1;"
}
}
call_data.outCall = 0;
call_data.incCall = 0;
callConnect(*cid);
// mmeSetVolume (1, FFS_flashData.output_volume);//zy 09/18 its needn't
/*begin of zy change 12/11*/
SetASpk_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].speakervolume);//wms added 01-21
if( call_data.isHandSetMode )
{
SetHandsetMode();
call_data.handSetOldStatus=1;
}
else
{
//SetEarMode();
call_data.handSetOldStatus=0;
}
/*end of zy change 12/11 for handsetmode*/
// SetSpk_UplinkSLT(6);//zy 11/05
//SetASpk_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].speakervolume);//wms added 01-21
OpenMic();
winShow(call_data.win);//zy add 2003-02-21 show connect win imediately
//SetASpk_DownLinkPGA(SpeakerVols);
if( extnum[0]!='\0' )
StartAutoDtmf();
TRACE_EVENT(extnum);
break;
case E_CM_CONNECT:
MMI_TRACE_EVENT(("wangyan: callCmEvent -- E_CM_CONNECT"));
if( LocalRing )
{
LocalRing = FALSE;
}
if( (*cid==call_data.incCall)&&(call_data.win_incoming) )
{
SEND_EVENT(call_data.win_incoming,DIALOG_DESTROY,0,0);
call_data.win_incoming = 0;
stopIncallLed();/* zy add 01-23-2003 for led incomingcall stop*/
}
if( (*cid==call_data.outCall)&&(call_data.win_calling) )
{
SEND_EVENT(call_data.win_calling,DIALOG_DESTROY,0,0);
call_data.win_calling = 0;
}
call_data.outCall = 0;
call_data.incCall = 0;
callConnect(*cid);
// mmeSetVolume (1, FFS_flashData.output_volume);//zy 09/18 its needn't
break;
case E_CM_WAP_CALL_CONNECTED:
break;
case E_CM_COMMAND:
MMI_TRACE_EVENT(("wangyan: callCmEvent -- E_CM_COMMAND"));
comm = (T_MFW_CM_COMMAND*)para;
/*2004/04/05,talcon delete*/
//sprintf((char*)stringTrace,"comm.result = %d comm.command = %d",comm->result,comm->command);
if( comm->command!=CM_RETRIEVE )
{
Iscallnumber1=0;
}//zy 2003-02-24 active indeed hold
if( comm->result == Present )
{
/*2004/04/05,talcon delete*/
//sprintf((char*)stringTrace,"okcomm.result = %d comm.command = %d",comm->result,comm->command);
//TRACE_EVENT((char*)stringTrace);
switch( comm->command )
{
case CM_RETRIEVE:
TRACE_EVENT("call CM_RETRIEVED received");
/*begin of zy change 2003-02-24 if callnumber(1) successed Iscallnumber1 reset*/
if( Iscallnumber1 )
Iscallnumber1=0;
/*end of zy change 2003-02-24 if callnumber(1) successed Iscallnumber1 reset*/
break;
case CM_HOLD:
TRACE_EVENT("call CM_HOLD received");
break;
case CM_BUILD_MULTIPARTY:
TRACE_EVENT("call CM_BUILDMULTIPARTY received");
call_data.calls.mode = CallConference;
break;
case CM_SPLIT_MULTIPARTY:
TRACE_EVENT("call CM_SPLIT_MULTIPARTY received");
call_data.singleCall = comm->call_number;
// call_data.calls.mode = CallPrivateCall;
call_data.calls.mode = CallSingleMultiparty;//zy 2003-03-12 private mode is needn't,if split multiparty mode is callsinglemultiparty
break;
case CM_HOLD_MULTIPARTY:
TRACE_EVENT("call CM_HOLD_MULTIPARTY received");
call_data.calls.mode = CallConference;
break;
case CM_RETRIEVE_MULTIPARTY:
TRACE_EVENT("call CM_RETRIEVE_MULTIPARTY received");
call_data.calls.mode = CallConference;
break;
case CM_SWAP:
TRACE_EVENT("call CM_SWAP received");
break;
case CM_SWAP_MULTIPARTY:
TRACE_EVENT("call CM_SWAP MULTIPARTYreceived");
if( call_data.calls.mode == CallSingleMultiparty )
call_data.calls.mode = CallMultipartySingle;
else
call_data.calls.mode = CallSingleMultiparty;
break;
case CM_ETC:
TRACE_EVENT("call CM_ETC received");
i=0;
while( i<call_data.calls.numCalls )
{
if( call_data.calls.status[i].call_number!=singleCall )
{
if( !removeCall(call_data.calls.status[i].call_number) )
i++;
}
else
i++;
}
break;
case CM_DTMF_AUTO:
break;
default:
break;
}
rebuildCalls();
if( call_data.win_waiting )
{
SEND_EVENT(call_data.win_waiting,DIALOG_DESTROY,0,0);
call_data.win_waiting = 0;
TRACE_EVENT("destroy call win h");
}
if( call_data.win_calling )
{
SEND_EVENT(call_data.win_calling,DIALOG_DESTROY,0,0);
call_data.win_calling = 0;
// TRACE_EVENT("destroy call win i");
}
/*2003/12/16, wangyan modify*//*
if (call_data.win_active)
{
SEND_EVENT(call_data.win_active,DIALOG_DESTROY,0,0);
call_data.win_active = 0;
}*/
/*2003/12/16, wangyan modify*/
}
if( call_data.accessEnd )
{
callSetMode(ViewConnect);
}
/* indicates if a command has failed e.g. ECT MC 12/04/02*/
if( comm->result == NotPresent )
{
if( call_data.win_waiting )
{ /*If we're waiting for current command*/
/*Get rid of waiting window*/
SEND_EVENT(call_data.win_waiting,DIALOG_DESTROY,0,0);
call_data.win_waiting = 0;
// TRACE_FUNCTION("destroy call win h");
}
if( call_data.win_calling&&comm->command==CM_HOLD )
{
// TRACE_EVENT("zy:1861 new call");
cm_disconnect(call_data.outCall);
// call_destroy(call_data.win_calling);
// TRACE_EVENT("E_CM_CW:call_destroy(callingwin)");
/*begin of zy change 2003-02-26 don't call call_destroy()
only destroy calling_win
*/
SEND_EVENT(call_data.win_calling,DIALOG_DESTROY,0,0);
call_data.win_calling = 0;
call_data.ignore_disconnect = TRUE;
/*end of zy change 2003-02-26 don't call call_destroy()
only destroy calling_win
*/
}
/*zy 2003-02-21 if onecall exit and add new call failed the now call shouls display hold*/
if( Iscallnumber1&&comm->command==CM_RETRIEVE )
{
call_data.calls.status[callIndex(call_data.calls.selected)].stat =CALL_HELD;
Iscallnumber1=0;
}
/*end of zy 2003-02-21 if onecall exit and add new call failed the now call shouls display hold*/
// bookShowInformation(call_data.win, TxtFailed,'\0', (T_VOID_FUNC)call_failure_cb);//zy change 11/13 "call_failure_cb" old is null
winShow(call_data.win);
}
break;
case E_CM_DTMF:
MMI_TRACE_EVENT(("wangyan: callCmEvent -- E_CM_DTMF"));
if( call_data.sendingDTMF )
{
call_data.charSent++;
sendDTMFString();
}
break;
case E_CM_REDIAL:
MMI_TRACE_EVENT(("wangyan: callCmEvent -- E_CM_REDIAL"));
pRedial = (T_MFW_CM_REDIAL*)para;
if( pRedial == NULL )
{
}
switch( pRedial->redial_mode )
{
case CM_REDIAL_BLACKLIST:
TRACE_EVENT("CM_REDIAL_BLACKLIST");
TRACE_EVENT("the blacklist is now full");
/*
GSM 2.07
when the blacklist is full the MT
shall prohibit further automatic call
attempts to any one number until
the blacklist is manually cleared at the MT
The blacklist is cleared after switch off/on ?!
*/
break;
case CM_REDIAL_NO_SERVICE:
TRACE_EVENT("CM_REDIAL_NO_SERVICE");
break;
case CM_REDIAL_OUTGOING:
TRACE_EVENT("CM_REDIAL_OUTGOING");
case CM_REDIAL_INCOMING:
TRACE_EVENT("CM_REDIAL_INCOMING");
case CM_REDIAL_ABORTED:
TRACE_EVENT("CM_REDIAL_ABORTED");
case CM_REDIAL_BLACKLISTED :
TRACE_EVENT("CM_REDIAL_BLACKLISTED");
if( call_data.win_redial )
{
SEND_EVENT(call_data.win_redial,DIALOG_DESTROY,0,0);
call_data.win_redial = 0;
TRACE_EVENT("destroy redial win ");
}
break;
case CM_REDIAL_SUCCESS:
TRACE_EVENT("CM_REDIAL_SUCCESS");
if( call_data.win_redial )
{
SEND_EVENT(call_data.win_redial,DIALOG_DESTROY,0,0);
call_data.win_redial = 0;
TRACE_EVENT("destroy redial win ");
}
rebuildCalls();
break;
case CM_REDIAL_STARTED:
TRACE_EVENT("CM_REDIAL_STARTED");
/* */
if( call_data.win_calling )
{
SEND_EVENT(call_data.win_calling,DIALOG_DESTROY,0,0);
call_data.win_calling = 0;
TRACE_EVENT("destroy call call_win");
}
/*2003/12/16, wangyan modify*//*
if (call_data.win_active)
{
SEND_EVENT(call_data.win_active,DIALOG_DESTROY,0,0);
call_data.win_active = 0;
}*/
/*2003/12/16, wangyan modify*/
if( pRedial->left_attempts EQ 0 )
{ // Not yet started redial attempts
/* start the 1st repeat attempt */
MMI_TRACE_EVENT(("wangyan redial"));
cm_autoredial_start();
}
callSetMode(ViewAutoRedial);
break;
case CM_REDIAL_STOP:
TRACE_EVENT("E_CM_REDIAL_STOP");
if( call_data.win_redial )
{
SEND_EVENT(call_data.win_redial,DIALOG_DESTROY,0,0);
call_data.win_redial = 0;
}
rebuildCalls();
break;
case CM_REDIAL_ATTEMPT:
TRACE_EVENT("E_CM_REDIAL ATTEMPT");
break;
default:
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -