📄 mmiservices.c
字号:
case ServicesDeactCLIR:
case ServicesCheckCLIR:
winShow(win);
timStart(times); /* start timer to go back in the submenu */
break;
case ServicesCheckCW_OK:
TRACE_FUNCTION(" ServicesCheckCW_OK");
winShow(win);
timStart(times); /* start timer to go back in the submenu */
break;
case ServicesCheckCLI_OK:
TRACE_FUNCTION("ServicesCheckCLI_OK");
winShow(win);
timStart(times);
break;
case ServicesIMEI_OK:
TRACE_FUNCTION("ServicesIMEI_OK");
winShow(win);
timStart(times);
break;
case ServicesResShow:
TRACE_FUNCTION("ServicesResShow");
winShow(win);
timStart(times);
break;
case ServicesCB_OK:
TRACE_FUNCTION("ServicesCB_OK");
lastFocus = winFocus(win);
winShow(win);
timStart(times);
break;
case ServicesCFU_OK:
TRACE_FUNCTION("ServicesCFUShow");
lastFocus = winFocus(win);
winShow(win);
timStart(times);
break;
case ServicesDoCallDivert:
servicesSendCallDivert(0);
break;
case PIN2_ABORT:
TRACE_FUNCTION("ServicesPin2_Abort");
break;
default:
break;
}
}
/*******************************************************************************
$Function: showWait
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static void showWait (T_MFW_HND win)
{
T_DISPLAY_DATA display_info;
TRACE_FUNCTION("showWait");
dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, TxtRequesting, TxtNull, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
display_info.Identifier = SS_WAIT;
/*
* Call Info Screen
*/
ss_data.info_wait = info_dialog (win, &display_info);
}
/*******************************************************************************
$Function: showOk
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static void showOk (T_MFW_HND win)
{
T_DISPLAY_DATA display_info;
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtDone, TxtNull, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
display_info.Identifier = ServicesOk;
/*
* Call Info Screen
*/
ss_data.info_win = info_dialog (ss_data.win, &display_info);
}
/*******************************************************************************
$Function: showFailed
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static void showFailed (T_MFW_HND win)
{
T_DISPLAY_DATA display_info;
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtFailed, TxtNull, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
display_info.Identifier = ServicesFailed;
/*
* Call Info Screen
*/
ss_data.info_win = info_dialog (ss_data.win, &display_info);
}
/*******************************************************************************
$Function: showError
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static void showError (T_MFW_HND win, T_MFW_SS_ERROR ss_error)
{
T_DISPLAY_DATA display_info;
TRACE_FUNCTION("showError");
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtFailed, serviceGetError(ss_error), COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_HUP| KEY_LEFT );
display_info.Identifier = ServicesError;
/*
* Call Info Screen
*/
ss_data.info_win = info_dialog (ss_data.win, &display_info);
}
/*******************************************************************************
$Function: showSSNotify
$Description: Show result from E_SS_NOTIFY being returned. Short ss-related
notification window.
$Returns:
$Arguments:
*******************************************************************************/
static void showSSNotify (T_MFW_HND win, T_MFW_SS_NOTIFY * ss_notify)
{
T_DISPLAY_DATA display_info;
USHORT TxtId1,TxtId2;
TRACE_FUNCTION("++ showSSNotify");
TxtId1 = TxtNull;
TxtId2 = TxtNull;
switch (ss_notify->code)
{
case MFW_SS_MO_unconFORWARD: /* CFU activated */
iconsSetState(iconIdCallFor);
/* Activate the CFU icon */
/* break; */ /***** NO BREAK ******/
case MFW_SS_MO_conFORWARD: /* Conditional CF active */
TxtId1 = TxtForward;
TxtId2 = TxtActivated;
break;
case MFW_SS_MT_FORWARDED: /* incoming call fowarded */
TxtId1 = TxtIncomingCall;
TxtId2 = TxtForwarded;
break;
case MFW_SS_MO_FORWARDED: /* our call is being forwarded */
TxtId1 = TxtSoftCall;
TxtId2 = TxtForwarded;
break;
case MFW_SS_MO_WAITING: /* outgoing call is waiting signal received */
TxtId1 = TxtSoftCall;
TxtId2 = TxtWaiting;
break;
case MFW_SS_MO_moBARRED: /* outgoing calls barred */
TxtId1 = TxtOutgoingCalls;
TxtId2 = TxtBarred;
break;
case MFW_SS_MO_mtBARRED: /* incoming calls barred */
TxtId1 = TxtIncomingCall;
TxtId2 = TxtBarred;
break;
case MFW_SS_MO_DEFLECTED: /* incoming call diverted */
TxtId1 = TxtIncomingCall;
TxtId2 = TxtCallDivert;
break;
default:
break;
}
if (TxtId1 != TxtNull )
{
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtId1, TxtId2, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, THREE_SECS, KEY_CLEAR| KEY_LEFT );
display_info.Identifier = E_SS_NOTIFY;
/*
* Call Info Screen
*/
ss_data.info_win = info_dialog (ss_data.win, &display_info);
}
}
/*******************************************************************************
$Function: srv_display_status
$Description: Indicate a sensefull response to the user if only the .
$Returns:
$Arguments:
*******************************************************************************/
static void srv_display_status (UBYTE ss_status)
{
T_DISPLAY_DATA display_info;
USHORT TxtId2;
TRACE_FUNCTION("srv_display_status()");
//GW Swapped text strings over
if (ss_status & SS_STAT_ACTIVE)
TxtId2 = TxtActivated;
/* Marcus: Issue 1652: 03/02/2003: Start */
else if (ss_status & SS_STAT_PROVISIONED)
TxtId2 = TxtProvisioned;
/* Marcus: Issue 1652: 03/02/2003: End */
else
TxtId2 = TxtDeActivated;
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtNull, TxtId2, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT );
display_info.Identifier = E_SS_CB_CNF; // can be used also for CF and CW
/*
* Call Info Screen
*/
ss_data.info_win = info_dialog (ss_data.win, &display_info);
}
/*******************************************************************************
$Function: ysrv_empty_list_result
$Description: Indicate a sensefull response to the user if an
activation / deactivation or interrogation leads to an
empty list.
$Returns:
$Arguments:
*******************************************************************************/
static void srv_empty_list_result (UBYTE ss_category, USHORT event, UBYTE ss_status) /* Marcus: Issue 1652: 03/02/2002 */
{
T_DISPLAY_DATA display_info;
USHORT TxtId1 = TxtNull;
TRACE_FUNCTION("srv_empty_list_result");
/* Marcus: Issue 1652: 03/02/2002: Start */
TRACE_EVENT_P3("ss_category %d, event %d, ss_status %d", ss_category, event, ss_status);
switch (ss_category)
{
case SS_ACTIVATION:
case SS_REGISTRATION:
TRACE_FUNCTION ("ACTIVATED !");
TxtId1 = TxtActivated;
break;
/* Marcus: Issue 1588: 23/01/2003: Start */
case SS_INTERROGATION:
if ((event == E_SS_CW_CNF) || (event == E_SS_CF_CNF))
{
if (ss_status & SS_STAT_ACTIVE)
{
TRACE_EVENT ("INTERROGATION:ACTIVATED !");
TxtId1 = TxtActivated;
}
/* Marcus: Issue 1651: 30/01/2003: Start */
else if (ss_status & SS_STAT_PROVISIONED)
{
TRACE_EVENT ("INTERROGATION:PROVISIONED !");
TxtId1 = TxtProvisioned;
}
/* Marcus: Issue 1651: 30/01/2003: End */
else
{
TRACE_EVENT ("INTERROGATION:DEACTIVATED !");
TxtId1 = TxtDeActivated;
}
}
else
{
TRACE_EVENT ("DEACTIVATED !");
TxtId1 = TxtDeActivated;
}
break;
case SS_ERASURE:
case SS_DEACTIVATION:
TRACE_FUNCTION ("DEACTIVATED !");
TxtId1 = TxtDeActivated;
break;
default:
TxtId1 = TxtNull;
break;
}
/* Marcus: Issue 1652: 03/02/2002: End */
if (TxtId1 != TxtNull )
{
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, TxtNull, TxtId1, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT );
display_info.Identifier = E_SS_CB_CNF; // can be used also for CF and CW
/*
* Call Info Screen
*/
ss_data.info_win = info_dialog (ss_data.win, &display_info);
}
}
/*******************************************************************************
$Function: showCWState
$Description: display CW state
$Returns:
$Arguments:
*******************************************************************************/
static void showCWStatus (T_MFW_HND win , T_ss * data)
{
T_DISPLAY_DATA display_info;
T_ss_feature_cw_data * pFeature;
TRACE_FUNCTION("showCWStatus");
//MC got rid of dodgy pointer arithmetic
pFeature = &data->mfw_ss_cw->ss[data->current_feature];
if (data->max_feature == 1)
{
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, pFeature->service, data->mfw_ss_cw->status, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT);
}
else
{
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtSoftNext, pFeature->service, data->mfw_ss_cw->status, COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR| KEY_LEFT | KEY_RIGHT );
}
display_info.Identifier = E_SS_CW_CNF;
/*
* Call Info Screen
*/
ss_data.info_win = info_dialog (ss_data.win, &display_info);
if (ss_data.info_win EQ NULL)
{
TRACE_FUNCTION("NOT ENOUGH RESOURCES TO CREATE EXT INFO DIALOG");
}
}
/*******************************************************************************
$Function: showCLIStatus
$Description:
$Returns:
$Arguments:
*******************************************************************************/
static void showCLIStatus(T_MFW_HND win, T_MFW_SS_PARA * ss_cnf)
{
T_DISPLAY_DATA display_info;
TRACE_FUNCTION("showCLIStatus()");
dlg_initDisplayData_TextId( &display_info, TxtSoftOK, TxtNull, serviceGetType(ss_cnf->cli_cnf.ss_code), TxtNull , COLOUR_STATUS);
dlg_initDisplayData_events( &display_info, (T_VOID_FUNC)services_info_cb, FOREVER, KEY_CLEAR | KEY_LEFT );
display_info.Identifier = ServicesCheckCLI_OK;
if (ss_cnf->cli_cnf.ss_status == SS_STAT_UNKNOWN)
{
// Unknown status. By defaut say that the id is sent
display_info.TextId2 = TxtActivated;
}
else if (ss_cnf->cli_cnf.ss_status & SS_STAT_ACTIVE)
{
switch (ss_cnf->cli_cnf.ss_clir_option)
{
// By defaut the caller id is not sent
case MFW_CL_TEMP_DEF_REST:
switch (CFAction)
{
// ActivateCLIR, so deactivate the sending of caller id
case CFActivate:
// By defaut the caller id is not sent
display_info.TextId2 = TxtActivated;
// No CLIR suppress or invoke
cm_mo_prefix(0x04);
break;
// Deactivate CLIR, so activate the sending of caller id
case CFDeactivate:
// By defaut the caller id is not sent
display_info.TextId2 = TxtDeActi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -