📄 smi_ui.c
字号:
0,
">",
MAX_INPUT_SIZE - 10,
IT_NUMERIC | IT_ECHO,
INP_MOD_DIAL,
NULL,
TRUE);
ui_data->inputSeq = INP_SEQ_NONE;
/*
*-----------------------------------------------------------
* show the welcome window
*-----------------------------------------------------------
*/
if (screensize_y EQ 4)
{
row += 1;
/*
column += 2;
*/
}
wm_areaWrite (areaUniversal, row, column, "WELCOME TO THE");
wm_areaWrite (areaUniversal,
(UBYTE)(row + 1), (UBYTE)(column + 1),
"WORLD OF GSM");
ui_topArea (areaUniversal);
wm_showArea (areaUniversal);
#if defined (NEW_FRAME)
TIMERSTART (TWELCOME_VALUE, SMI_TUNIVERSAL);
t_universal_running = TRUE;
#else
TIMERSTART (TWELCOME_VALUE, t_universal_handle);
#endif
ui_data->timerMod = TIMER_MOD_WELCOME;
/*
*-----------------------------------------------------------
* request RX level indications
*-----------------------------------------------------------
*/
rx_Init(rx_callback);
}
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_POWER_DOWN
*---------------------------------------------------------------
*/
case UI_SIG_POWER_DOWN:
#if defined (NEW_FRAME)
if (t_slider_running NEQ FALSE)
{
TIMERSTOP (SMI_TSLIDER);
t_slider_running = FALSE;
}
if (t_universal_running NEQ FALSE)
{
TIMERSTOP (SMI_TUNIVERSAL);
t_universal_running = FALSE;
wm_hideArea (areaUniversal);
}
#else
if (t_slider_handle NEQ (T_VSI_THANDLE) VSI_ERROR)
{
TIMERSTOP (t_slider_handle);
}
if (t_universal_handle NEQ (T_VSI_THANDLE) VSI_ERROR)
{
TIMERSTOP (t_universal_handle);
wm_hideArea (areaUniversal);
}
#endif
/*
*-------------------------------------------------------------
* switch off the LCD backlight and clean the LCD display
*-------------------------------------------------------------
*/
ui_backlight (FALSE);
wm_hideArea (areaProvider);
wm_hideArea (areaService);
wm_hideArea (areaState);
wm_hideArea (areaFS);
wm_hideArea (areaBAT);
wm_hideArea (areaUser);
wm_hideArea (areaShift);
if (screensize_y EQ 4)
wm_hideArea (areaCaller);
wm_hideArea (areaSlider);
wm_hideArea (areaHook);
ui_data->powerOn = FALSE;
powerKeyOn = FALSE;
/*
*--------------------------------------------------------------
* stop any tones
*-------------------------------------------------------------
*/
audio_Exit ();
/*
*-------------------------------------------------------------
* stop RX level indications
*-------------------------------------------------------------
*/
rx_Exit ();
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_PLMN
*---------------------------------------------------------------
*/
case UI_SIG_PLMN:
{
CHAR* oper;
va_start (varpars, sigCode);
oper = va_arg (varpars, CHAR*);
va_end (varpars);
wm_clearArea (areaProvider);
wm_areaWrite (areaProvider, 0, 0, oper);
ui_areaServiceWrite (lng_getText (TXT_NORMAL_SERVICE));
ui_data->normalService = TRUE;
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_SELECT_PLMN
*---------------------------------------------------------------
*/
case UI_SIG_SELECT_PLMN:
{
CHAR** oper;
USHORT i;
va_start (varpars, sigCode);
oper = va_arg (varpars, CHAR**);
va_end (varpars);
if (ui_data->state NEQ UI_SELECT)
{
i = 0;
if (oper[i] EQ NULL)
{
/*
*---------------------------------------------------------
* the PLMN menu is empty
*---------------------------------------------------------
*/
plmnIsEmpty = TRUE;
plmnmenu[i] = lng_getText (TXT_EMPTY);
i++;
}
else
{
/*
*---------------------------------------------------------
* the PLMN menu is initialized while not empty
*---------------------------------------------------------
*/
plmnIsEmpty = FALSE;
while (oper[i] NEQ NULL)
{
plmnmenu[i] = oper[i];
i++;
}
}
/*
*-----------------------------------------------------------
* the PLMN menu is terminated
*-----------------------------------------------------------
*/
plmnmenu[i] = NULL;
/*
*-----------------------------------------------------------
* show the PLMN menu
*-----------------------------------------------------------
*/
ui_topArea (areaMenu);
wm_showArea (areaMenu);
men_startMenu (areaMenu,
lng_getText (TXT_MEN_SELECT_PLMN),
plmnmenu);
oldState = ui_data->state;
ui_data->state = UI_SELECT;
ui_data->menuMode = MEN_MOD_PLMN;
}
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_SHOW_CALL_TABLE
*---------------------------------------------------------------
*/
case UI_SIG_SHOW_CALL_TABLE:
{
T_CTB_INFO* ctb;
USHORT i;
va_start (varpars, sigCode);
ctb = va_arg (varpars, T_CTB_INFO*);
va_end (varpars);
if (ui_data->state NEQ UI_SELECT)
{
i = 0;
if (ctb[i].index EQ -1)
{
/*
*---------------------------------------------------------
* the call table is empty
*---------------------------------------------------------
*/
CHAR* empty = lng_getText (TXT_EMPTY);
strncpy (ctbstring[i], empty, MENU_ENTRY_WIDTH_L);
ctbstring[i][MENU_ENTRY_WIDTH_L] = NULL_TERM;
i++;
}
else
{
/*
*---------------------------------------------------------
* the call table menu entries are build up
*---------------------------------------------------------
*/
while (ctb[i].index NEQ -1)
{
CHAR* status;
switch (ctb[i].status)
{
case (CAL_STAT_Wait):
status = lng_getStatText(STAT_TXT_WAIT);
break;
case (CAL_STAT_Active):
status = lng_getStatText(STAT_TXT_ACTIVE);
break;
case (CAL_STAT_Held):
status = lng_getStatText(STAT_TXT_HELD);
break;
case (CAL_STAT_Dial):
status = lng_getStatText(STAT_TXT_DIAL);
break;
}
sprintf (ctbstring[i], "%d %s", ctb[i].index, status);
i++;
}
}
/*
*---------------------------------------------------------
* the list of call table menu entries is terminated
*---------------------------------------------------------
*/
ctbstring[i][0] = NULL_TERM;
/*
*-----------------------------------------------------------
* the call table menu is initialized and terminated
*-----------------------------------------------------------
*/
i = 0;
while (ctbstring[i][0] NEQ NULL_TERM)
{
ctbmenu[i] = ctbstring[i];
i++;
}
ctbmenu[i] = NULL;
/*
*-----------------------------------------------------------
* show the call table menu
*-----------------------------------------------------------
*/
ui_topArea (areaMenu);
wm_showArea (areaMenu);
men_startMenu (areaMenu,
lng_getText (TXT_MEN_CALL_TABLE),
ctbmenu);
oldState = ui_data->state;
ui_data->state = UI_SELECT;
ui_data->menuMode = MEN_MOD_CTB;
}
break;
}
/*
*---------------------------------------------------------------
* process signal UI_SIG_ILLEGAL_MS
*---------------------------------------------------------------
*/
case UI_SIG_ILLEGAL_MS:
wm_clearArea (areaUser);
wm_areaWrite (areaUser, 0, 0, "####");
ui_data->state = UI_BLOCKED;
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_NO_CELL
*---------------------------------------------------------------
*/
case UI_SIG_NO_CELL:
ui_data->normalService = FALSE;
wm_clearArea (areaProvider);
ui_areaServiceWrite (lng_getText (TXT_NO_SERVICE));
/*
cal_sendAudioToneReq (CT_CALL_DROPPED,
csf_getVolume (VT_RINGER),
TONE_SWT_ON_SINGLE);
*/
break;
/*
*---------------------------------------------------------------
* process signal UI_SIG_LIMITED_SERVICE
*---------------------------------------------------------------
*/
case UI_SIG_LIMITED_SERVICE:
ui_data->normalService = FALSE;
wm_clearArea (areaProvider);
ui_areaServiceWrite (lng_getText (TXT_LIMITD_SERVICE));
/*
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_INCOMMING_CALL
*---------------------------------------------------------------
*/
case UI_SIG_INCOMMING_CALL:
ui_backlight (TRUE);
/*
*-------------------------------------------------------------
* switch on the ringer
*-------------------------------------------------------------
*/
if (!ui_data->ringerOn)
{
cal_sendAudioToneReq (CT_RING,
csf_getVolume (VT_RINGER),
TONE_SWT_ON_PERIODIC);
ui_data->ringerOn = TRUE;
}
/*
*-------------------------------------------------------------
* make an optic indication of the incoming call
*-------------------------------------------------------------
*/
wm_clearArea (areaState);
wm_areaWrite (areaState, 0, 0, lng_getText (TXT_ALERT));
wm_showArea (areaState);
/*
*-------------------------------------------------------------
* close any menu while a call comes in
*-------------------------------------------------------------
*/
if (ui_data->state EQ UI_SELECT)
ui_stopMenu ();
/*
*-------------------------------------------------------------
* reset the input while a call comes in
*-------------------------------------------------------------
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -