📄 smi_ui.c
字号:
ui_startNewInput (areaUser,
0,
0,
">",
MAX_INPUT_SIZE - 10,
IT_NUMERIC | IT_ECHO,
INP_MOD_DIAL,
NULL,
TRUE);
ui_data->inputSeq = INP_SEQ_NONE;
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_WAITING_CALL
*---------------------------------------------------------------
*/
case UI_SIG_WAITING_CALL:
{
CHAR* caller;
ui_backlight (TRUE);
/*
*-------------------------------------------------------------
* switch on an acoustic indication of the waiting call
*-------------------------------------------------------------
*/
if (!ui_data->waitingOn)
{
cal_sendAudioToneReq (CT_CALL_WAIT,
csf_getVolume (VT_RINGER),
TONE_SWT_ON_PERIODIC);
ui_data->waitingOn = TRUE;
}
/*
*-------------------------------------------------------------
* make an optic indication of the waiting call
*-------------------------------------------------------------
*/
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_WAITING_CALL));
wm_showArea (areaState);
/*
*-------------------------------------------------------------
* show the caller if screen is large enough
*-------------------------------------------------------------
*/
if (screensize_y EQ 4)
{
va_start (varpars, sigCode);
caller = va_arg (varpars, CHAR*);
va_end (varpars);
wm_clearArea (areaCaller);
wm_areaWrite (areaCaller, 0, 0, caller);
wm_showArea (areaCaller);
}
/*
*-------------------------------------------------------------
* close any menu while a call is waiting
*-------------------------------------------------------------
*/
if (ui_data->state EQ UI_SELECT)
ui_stopMenu ();
/*
*-------------------------------------------------------------
* reset the input while a call is waiting
*-------------------------------------------------------------
*/
ui_startNewInput (areaUser,
0,
0,
">",
MAX_INPUT_SIZE - 10,
IT_NUMERIC | IT_ECHO,
INP_MOD_DIAL,
NULL,
TRUE);
ui_data->inputSeq = INP_SEQ_NONE;
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_BUSY
*---------------------------------------------------------------
*/
case UI_SIG_BUSY:
{
ui_backlight (TRUE);
/*
*-------------------------------------------------------------
* switch on an acoustic indication of the busy subscriber
*-------------------------------------------------------------
*/
if (!ui_data->nibtOn)
{
ui_handleNibt(NIBT_BUSY);
/*
cal_sendAudioToneReq (CT_BUSY,
csf_getVolume (VT_RINGER),
TONE_SWT_ON_PERIODIC);
*/
ui_data->nibtOn = TRUE;
}
/*
*-------------------------------------------------------------
* make an optic indication of the busy indication
*-------------------------------------------------------------
*/
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_USER_BUSY));
wm_showArea (areaState);
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_NO_ANSWER
*---------------------------------------------------------------
*/
case UI_SIG_NO_ANSWER:
{
ui_backlight (TRUE);
/*
*-------------------------------------------------------------
* make an optic indication when subscriber does not answer
*-------------------------------------------------------------
*/
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_NO_ANSWER));
wm_showArea (areaState);
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_CLIP
*---------------------------------------------------------------
*/
case UI_SIG_CLIP:
{
CHAR* alpha_calladdr;
CHAR* subaddr;
CHAR callInfo[60];
ui_backlight (TRUE);
/*
*-------------------------------------------------------------
* make an optic indication of the CLIP
*-------------------------------------------------------------
*/
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, "CLIP");
wm_showArea (areaState);
/*
*-------------------------------------------------------------
* show the calling line identity if screen is large enough
*-------------------------------------------------------------
*/
if (screensize_y EQ 4)
{
va_start (varpars, sigCode);
alpha_calladdr = va_arg (varpars, CHAR*);
subaddr = va_arg (varpars, CHAR*);
va_end (varpars);
if (strlen (subaddr) > 0)
sprintf (callInfo, "%s-%s", alpha_calladdr, subaddr);
else
strcpy (callInfo, alpha_calladdr);
wm_clearArea (areaCaller);
wm_areaWrite (areaCaller, 0, 0, callInfo);
wm_showArea (areaCaller);
}
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_COLP
*---------------------------------------------------------------
*/
case UI_SIG_COLP:
{
CHAR* alpha_calladdr;
CHAR* subaddr;
CHAR callInfo[60];
ui_backlight (TRUE);
/*
*-------------------------------------------------------------
* make an optic indication of the COLP
*-------------------------------------------------------------
*/
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, "COLP");
wm_showArea (areaState);
/*
*-------------------------------------------------------------
* show the connected line identity if the screen is large
* enough
*-------------------------------------------------------------
*/
if (screensize_y EQ 4)
{
va_start (varpars, sigCode);
alpha_calladdr = va_arg (varpars, CHAR*);
subaddr = va_arg (varpars, CHAR*);
va_end (varpars);
if (strlen (subaddr) > 0)
sprintf (callInfo, "%s-%s", alpha_calladdr, subaddr);
else
strcpy (callInfo, alpha_calladdr);
wm_clearArea (areaCaller);
wm_areaWrite (areaCaller, 0, 0, callInfo);
wm_showArea (areaCaller);
}
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_OUTGOING_CALL
*---------------------------------------------------------------
*/
case UI_SIG_OUTGOING_CALL:
{
CHAR *calledParty;
va_start (varpars, sigCode);
calledParty = va_arg (varpars, CHAR*);
va_end (varpars);
/*
*-------------------------------------------------------------
* make an optic indication of dialing
*-------------------------------------------------------------
*/
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_DIALING));
wm_showArea (areaState);
/*
*-------------------------------------------------------------
* display the called party if screen is large enough
*-------------------------------------------------------------
*/
if (screensize_y EQ 4)
{
wm_clearArea (areaCaller);
wm_areaWrite (areaCaller, 0, 0, calledParty);
wm_showArea (areaCaller);
}
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_REGISTERED
*---------------------------------------------------------------
*/
case UI_SIG_REGISTERED:
{
wm_clearArea (areaState);
/*
ui_areaServiceWrite (lng_getText (TXT_NORMAL_SERVICE));
ui_data->normalService = TRUE;
*/
if (ui_data->inputMode NEQ INP_MOD_PIN AND
ui_data->inputMode NEQ INP_MOD_NPIN AND
ui_data->inputMode NEQ INP_MOD_NPIN_TWICE AND
ui_data->inputMode NEQ INP_MOD_PUK )
{
ui_startNewInput (areaUser,
0,
0,
">",
MAX_INPUT_SIZE - 10,
IT_NUMERIC | IT_ECHO,
INP_MOD_DIAL,
NULL,
TRUE);
ui_data->inputSeq = INP_SEQ_NONE;
}
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_REGISTERING
*---------------------------------------------------------------
*/
case UI_SIG_REGISTERING:
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_REGISTERING));
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_DEREGISTERING
*---------------------------------------------------------------
*/
case UI_SIG_DEREGISTERING:
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_DEREGISTERING));
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_CONNECTING
*---------------------------------------------------------------
*/
case UI_SIG_CONNECTING:
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_CONNECTING));
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_DISCONNECTING
*---------------------------------------------------------------
*/
case UI_SIG_DISCONNECTING:
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_DISCONNECTING));
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_CONNECTED
*---------------------------------------------------------------
*/
case UI_SIG_CONNECTED:
/*
*-------------------------------------------------------------
* switch off the ringer
*-------------------------------------------------------------
*/
if (ui_data->ringerOn)
{
cal_sendAudioToneReq (CT_RING,
csf_getVolume (VT_RINGER),
TONE_SWT_OFF);
ui_data->ringerOn = FALSE;
}
/*
*-------------------------------------------------------------
* make an optic indication
*-------------------------------------------------------------
*/
wm_areaWrite (areaHook, 0, 0, "/");
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_CONNECTED));
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_DATA_CONNECTED
*---------------------------------------------------------------
*/
case UI_SIG_DATA_CONNECTED:
{
CHAR buffer[15];
USHORT speed;
va_start (varpars, sigCode);
speed = va_arg (varpars, USHORT);
va_end (varpars);
/*
*-------------------------------------------------------------
* switch off the ringer
*-------------------------------------------------------------
*/
if (ui_data->ringerOn)
{
cal_sendAudioToneReq (CT_RING,
csf_getVolume (VT_RINGER),
TONE_SWT_OFF);
ui_data->ringerOn = FALSE;
}
/*
*-------------------------------------------------------------
* make an optic indication
*-------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -