📄 networkfunctions.c
字号:
U8 recordnum = mmi_eons_check_if_plmn_present(UpdatePlmn);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (recordnum)
{
mmi_eons_get_pnn_record_req(recordnum);
return;
}
#endif /* ( (defined __MMI_EONS_SUPPORT__) && (defined MMI_ON_HARDWARE_P) ) */
/* diamond, 2006/03/08 Get plmn string from gPLMN[MAX_PLMN_LEN_MMI+1] */
mmi_netset_retrieve_opname_from_plmn(UpdatePlmn, gNWProviderName);
}
/*****************************************************************************
* FUNCTION
* NetWorkSignalLevelIndication
* DESCRIPTION
* This function is a call back for PRT_NW_RX_LEVEL_IND, which is used to update signal strenth icon
* PARAMETERS
* inMsg [?]
* void*(?)
* RETURNS
* void
*****************************************************************************/
void NetWorkSignalLevelIndication(void *inMsg)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MMINWRXLEVELIND *local_data = (MMINWRXLEVELIND*) inMsg;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION(("Inside NetWorkSignalLevelIndication "));
g_pwr_context.CurrentCampOnBand = local_data->current_band; /* LED display for different band */
/* MTK Modified, 030917, Robin, For Signal strength */
if (local_data->level == SIGNAL_STRENGTH_INVAILD)
{
PRINT_INFORMATION(("Invalid Signal Indication"));
}
else if (local_data->level == SIGNAL_STRENGTH_NONE)
{
PRINT_INFORMATION(("No Signal Indication"));
gSignalStrengthLevel = 0;
}
else if (local_data->level < SIGNAL_STRENGTH_LEVEL1) /* Robin 1116 */
{
PRINT_INFORMATION(("No Signal Indication"));
gSignalStrengthLevel = 0;
}
//malata modifie, 20071010, wangbei
#ifdef __NEW_UI_STYLE__
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL1) && (local_data->level < SIGNAL_STRENGTH_LEVEL2))
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 15;
}
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL2) && (local_data->level < SIGNAL_STRENGTH_LEVEL3))
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 30;
}
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL3) && (local_data->level < SIGNAL_STRENGTH_LEVEL4))
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 44;
}
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL4) && (local_data->level < SIGNAL_STRENGTH_LEVEL5))
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 58;
}
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL5) && (local_data->level < SIGNAL_STRENGTH_LEVEL6))
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 72;
}
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL6) && (local_data->level < SIGNAL_STRENGTH_LEVEL7))
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 86;
}
else if (local_data->level >= SIGNAL_STRENGTH_LEVEL8)
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 100;
}
#else
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL1) && (local_data->level < SIGNAL_STRENGTH_LEVEL2))
{
PRINT_INFORMATION(("Show only one bar shaded "));
gSignalStrengthLevel = 25;
}
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL2) && (local_data->level < SIGNAL_STRENGTH_LEVEL3))
{
PRINT_INFORMATION(("Show two bar shaded "));
gSignalStrengthLevel = 50;
}
else if ((local_data->level >= SIGNAL_STRENGTH_LEVEL3) && (local_data->level < SIGNAL_STRENGTH_LEVEL4))
{
PRINT_INFORMATION(("Show three bar shaded "));
gSignalStrengthLevel = 75;
}
else if (local_data->level >= SIGNAL_STRENGTH_LEVEL4)
{
PRINT_INFORMATION(("Show four bar shaded "));
gSignalStrengthLevel = 100;
}
#endif
//wangbei modify end
/* Robin 1117, no service shall not display signal level */
if (g_pwr_context.CurrentServiceType == NO_SERVICE)
{
ChangeStatusIconLevel(STATUS_ICON_SIGNAL_STRENGTH, SIGNAL_STRENGTH_NONE);
// wangbei add start 20071010
#ifdef __NEW_STATUS_ICONS_STYLE__
draw_submenu_statusicons();
#endif
// wangbei add end
}
else
{
ChangeStatusIconLevel(STATUS_ICON_SIGNAL_STRENGTH, gSignalStrengthLevel);
// wangbei add start 20071010
#ifdef __NEW_STATUS_ICONS_STYLE__
draw_submenu_statusicons();
#endif
// wangbei add end
}
#ifdef __MMI_SUBLCD__
if (g_pwr_context.CurrentServiceType == NO_SERVICE)
{
ChangeStatusIconLevel(STATUS_ICON_SUBLCD_SIGNAL_STRENGTH, SIGNAL_STRENGTH_NONE);
}
else
{
ChangeStatusIconLevel(STATUS_ICON_SUBLCD_SIGNAL_STRENGTH, gSignalStrengthLevel);
}
#endif /* __MMI_SUBLCD__ */
}
/*****************************************************************************
* FUNCTION
* NetWorkServiceTypeIndication
* DESCRIPTION
* This function is a call back for PRT_SERVICE_TYPE_IND
* PARAMETERS
* iMsg [?]
* void*(?)
* RETURNS
* void
*****************************************************************************/
void NetWorkServiceTypeIndication(void *iMsg)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/* MMINWREGSTATEIND *local_data = (MMINWREGSTATEIND *)iMsg; */
mmi_nw_reg_state_ind_struct *local_data = (mmi_nw_reg_state_ind_struct*) iMsg;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION(("\n NetWorkServiceTypeIndication\n"));
if (local_data->status == MMI_RAC_OK)
{
/* micha0120 */
UpdateGPRSStatusIcon(local_data->gprs_status);
/* micha0423 */
if (gGPRSStatusModified)
{
refresh_status_icon_display();
gGPRSStatusModified = 0;
}
}
else
{
/* Do nothing, keep original state */
}
}
/*****************************************************************************
* FUNCTION
* NumberOfPLMNSuported
* DESCRIPTION
* This function is a call back for MSG_ID_MMI_SMU_SUPPORT_PLMN_LIST_IND
* PARAMETERS
* iMsg [?]
* void*(?)
* RETURNS
* void
*****************************************************************************/
void NumberOfPLMNSuported(void *iMsg)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MMISMUSUPPORTPLMNLISTIND *local_data = (MMISMUSUPPORTPLMNLISTIND*) iMsg;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
g_pwr_context.NoOfPLMNSupported = local_data->length;
PRINT_INFORMATION(("NumberOfPLMNSuported gNoOfPLMNSupported = %d\n", g_pwr_context.NoOfPLMNSupported));
}
/**************************************************************************
Roaming API
**************************************************************************/
/*****************************************************************************
* FUNCTION
* ChangeRoamingState
* DESCRIPTION
* Change Roaming state
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void ChangeRoamingState(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 gPLMNLen = strlen((S8*) gPLMN);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* diamond, 2005/08/28 avoid the case VPLMN=OPN */
if (memcmp(gHomePLMNNum, gPLMN, gPLMNLen) != 0 &&
pfnUnicodeStrcmp((S8*) gNWProviderName, (S8*) gOperatorName) != 0 &&
!((memcmp(gHomePLMNNum, "46002", 5) == 0 && memcmp(gPLMN, "46000", 5) == 0)) &&
mmi_netset_equivalent_plmn_check() != 1)
{
/* Set Roaming Signal to be display on idle screen */
/* g_pwr_context.RoamingFlag = 1; */
g_pwr_context.PowerOnSIMStatus |= MMI_SIM_STATUS_ROAMING;
IdleSetStatusIcon(STATUS_ICON_ROAMING);
/* if( g_pwr_context.idleScreenFirst ) */
if (mmi_bootup_is_searching_or_idle_reached() == MMI_TRUE)
{
StopLEDPatternRoaming(); /* MTK add Robin 1009. Stop LED will trigger the Band led pattern resume mechanism */
}
#ifdef MMS_SUPPORT
wap_roaming_status_indication_callback((U32) 1);
#endif
}
else
{
/* g_pwr_context.RoamingFlag = 0; */
g_pwr_context.PowerOnSIMStatus &= ~MMI_SIM_STATUS_ROAMING;
IdleResetStatusIcon(STATUS_ICON_ROAMING);
/* if( g_pwr_context.idleScreenFirst ) */
if (mmi_bootup_is_searching_or_idle_reached() == MMI_TRUE)
{
StopLEDPatternRoaming(); /* MTK add Robin 1009. Stop LED will trigger the Band led pattern resume mechanism */
}
#ifdef MMS_SUPPORT
wap_roaming_status_indication_callback((U32) 0);
#endif
}
}
/*****************************************************************************
* FUNCTION
* RequestToTestRoamingEnabled
* DESCRIPTION
* To send message MSG_ID_MMI_SMU_GET_IMSI_REQ
* in response of this message imsi field is returned
* compare first 5byte of this arr , if they are not same
* with the plmn , means roaming is enabled, display the
* roaming icon.
* PARAMETERS
* void
* RETURNS
* void
*****************************************************************************/
void RequestToTestRoamingEnabled(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MYQUEUE Message;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
SetProtocolEventHandler(RspToTestRoamingEnabled, PRT_GET_IMSI_RSP);
g_pwr_context.testRoaming = 2;
PRINT_INFORMATION(("@@@@@ RequestToTestRoamingEnabled @@@@@"));
Message.oslSrcId = MOD_MMI;
Message.oslDestId = MOD_L4C;
Message.oslMsgId = PRT_GET_IMSI_REQ;
Message.oslDataPtr = NULL; /* (oslParaType *)local_data; */
Message.oslPeerBuffPtr = NULL;
OslMsgSendExtQueue(&Message);
}
/*****************************************************************************
* FUNCTION
* RspToTestRoamingEnabled
* DESCRIPTION
* To send message MSG_ID_MMI_SMU_GET_IMSI_REQ
* in response of this message imsi field is returned
* compare first 5byte of this arr , if they are not same
* with the plmn , means roaming is enabled, display the
* roaming icon.
* PARAMETERS
* inMsg [?]
* void*(?)
* RETURNS
* void
*****************************************************************************/
void RspToTestRoamingEnabled(void *inMsg)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
MMISMUGETIMSIRSP *local_data = (MMISMUGETIMSIRSP*) inMsg;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PRINT_INFORMATION(("Inside RspToTestRoamingEnabled"));
if (local_data->result == ST_SUCCESS)
{
g_pwr_context.testRoaming = 3;
memset(gHomePLMNNum, '\0', sizeof(gHomePLMNNum));
memcpy(gHomePLMNNum, (local_data->imsi) + 1, MAX_PLMN_LEN_MMI); /* always copy 6 digits to gHomePLMNNum no matter they're 5 or 6 digits */
// zrx add begin 20070420
#ifdef __CAIVS_SUPPORT__
memcpy(CaivsIMSI,(local_data->imsi) +1, 17);//
//kal_prompt_trace(MOD_MED_V,"^^ ^^ ^^ ^^^ caivs_getIMSI CaivsIMSI=%s",CaivsIMSI);
#endif
// zrx add end
#ifdef MMS_SUPPORT
wap_plmn_number_indication_callback((const U8*)gHomePLMNNum);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -