📄 mmi_callback.c
字号:
#include "mmi_osbridge.h"
#include "server.h"
#include "sim.map"
#include "keypad.h"
#include "mn.h"
#include "charge.h"
#include "misc_task.h"
#include "mmk_msg.h"
const uint8 keyCodeTable[ ] =
{
0, // KPD_NONE =0, /* 0x00 */
SCI_VK_UP, // KPD_UP , /* 0x01 */
SCI_VK_DOWN, // KPD_DOWN , /* 0x02 */
SCI_VK_LEFT, // KPD_LEFT , /* 0x03 */
SCI_VK_RIGHT, // KPD_RIGHT , /* 0x04 */
SCI_VK_CALL, // KPD_GREEN , /* 0x05 */
SCI_VK_CANCEL, // KPD_CAMERA , /* 0x06 */
0, // KPD_CLR , /* 0x07 */
SCI_VK_1, // KPD_1 , /* 0x08 */
SCI_VK_2, // KPD_2 , /* 0x09 */
SCI_VK_3, // KPD_3 , /* 0x0a */
SCI_VK_4, // KPD_4 , /* 0x0b */
SCI_VK_5, // KPD_5 , /* 0x0c */
SCI_VK_6, // KPD_6 , /* 0x0d */
SCI_VK_7, // KPD_7 , /* 0x0e */
SCI_VK_8, // KPD_8 , /* 0x0f */
SCI_VK_9, // KPD_9 , /* 0x10 */
SCI_VK_STAR, // KPD_STAR , /* 0x11 */
SCI_VK_0, // KPD_0 , /* 0x12 */
SCI_VK_POUND, // KPD_HASH , /* 0x13 */
0, // KPD_SPUP , /* 0x14 */
0, // KPD_SPDW , /* 0x15 */
SCI_VK_EXT1, // KPD_LEFTSOFK, /* 0x16*/
SCI_VK_EXT2, // KBD_RIGHTSOFK, /* 0x17 */
SCI_VK_POWER, // KBD_RED, /* 0x18 */
SCI_VK_EXT3 //KBD_UPSIDEKEY /* 0x19 */
SCI_VK_EXT4, // KBD_DOWNSIDEKEY /* 0x1a*/
SCI_GPIO_SIG1, // KBD_HANDFREE
SCI_GPIO_SIG2, //KBD_HOOK
};
void mmi_KeypadCallBack(uint32 taskID, uint32 argc, void *argv)
{
MmiSignalS *sendSignal ;
uint8 i;
uint32 keycode;
keycode = (uint32) argv;
sendSignal = PNULL;
MmiCreateSignal(SIG_MMI_KEY_PRESS_IND,sizeof(MmiKeyPress),&sendSignal);
sendSignal->signalType = MSG_TYPE_FOCUS;
sendSignal->sig.keyPress.keyCode = 0 ;
for( i =0; i< ARR_SIZE(keyCodeTable); i++)
{
if((uint8)keycode == keyCodeTable[i] )
{
sendSignal->sig.keyPress.keyCode = i;
break;
}
}
if(argc == KPD_DOWN)
{
sendSignal->sig.keyPress.keyIsDown = 1;
SCI_TRACE_LOW("MMI:Receive key down keycode =%d",sendSignal->sig.keyPress.keyCode);
}
else
{
sendSignal->sig.keyPress.keyIsDown = 0;
SCI_TRACE_LOW("MMI:Receive key up keycode =%d",sendSignal->sig.keyPress.keyCode);
}
MmiSendSignal(taskID,sendSignal);
}
/* @ add by Great.TIan 2003/7/9 */
/* alarm , time call back function */
void mmi_AlarmAndTimeCallBack(uint32 task_id, uint32 event_id, void *param_ptr)
{
MmiSignalS *sendSignal = PNULL;
uint16 taskid = (uint16)task_id;
switch(event_id)
{
case MISC_MSG_RTC_MIN:
MmiCreateSignal(SIG_MMI_MISC_TIME_IND, 0, &sendSignal);
MmiSendSignal(taskid,sendSignal);
break;
case MISC_MSG_RTC_DAY:
MmiCreateSignal(SIG_MMI_MISC_DATE_IND, 0, &sendSignal);
MmiSendSignal(taskid,sendSignal);
break;
case MISC_MSG_RTC_ALARM:
MmiCreateSignal(SIG_MMI_MISC_ALARM_IND, 0, &sendSignal);
MmiSendSignal(taskid,sendSignal);
break;
default:
SCI_TRACE_HIGH("MMI: the error singal of alarm and time = %d", event_id);
break;
}
}
/* MN layer call back function**************/
void MnPhone_EventCallBackFunc(
uint32 taskId, // task_id which task want to receive the event
uint32 event_id, // event id
void *param_ptr // data follow the event
)
{
MmiSignalS *sendSignal ;
uint16 task_id = (uint16)taskId;
sendSignal = PNULL;
switch (event_id)
{
// notify MMI that PS is ready to work
case EV_MN_APP_PS_READY_IND_F:
MmiCreateSignal(SIG_APP_MN_PS_READY_IND,sizeof(MnPSReadyIndS),&sendSignal);
MmiSendSignal(task_id,sendSignal);
break;
// notify MMI Phone status
case EV_MN_APP_NETWORK_STATUS_IND_F:
MmiCreateSignal(SIG_APP_MN_NETWORK_STATUS_IND,sizeof(MnNetworkStatusIndS),&sendSignal);
sendSignal->sig.MnNetworkStatusInd.plmn_status = ((APP_MN_NETWORK_STATUS_IND_T*)param_ptr)->plmn_status;
sendSignal->sig.MnNetworkStatusInd.plmn_is_selecting = ((APP_MN_NETWORK_STATUS_IND_T*)param_ptr)->plmn_is_selecting;
sendSignal->sig.MnNetworkStatusInd.mcc = ((APP_MN_NETWORK_STATUS_IND_T*)param_ptr)->mcc;
sendSignal->sig.MnNetworkStatusInd.mnc = ((APP_MN_NETWORK_STATUS_IND_T*)param_ptr)->mnc;
sendSignal->sig.MnNetworkStatusInd.lac = ((APP_MN_NETWORK_STATUS_IND_T*)param_ptr)->lac;
sendSignal->sig.MnNetworkStatusInd.cell_id = ((APP_MN_NETWORK_STATUS_IND_T*)param_ptr)->cell_id;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_SIMCARD_READY_IND_F:
MmiCreateSignal(SIG_APP_MN_SIM_READY_IND,sizeof(MnSimReadyIndS),&sendSignal);
sendSignal->sig.MnSimReadyInd.pin1_is_enabled = ((APP_MN_SIM_READY_IND_T*)param_ptr)->pin1_is_enabled;
sendSignal->sig.MnSimReadyInd.pin1_is_blocked = ((APP_MN_SIM_READY_IND_T*)param_ptr)->pin1_is_blocked;
sendSignal->sig.MnSimReadyInd.pin1_status = ((APP_MN_SIM_READY_IND_T*)param_ptr)->pin1_status;
sendSignal->sig.MnSimReadyInd.pin2_status = ((APP_MN_SIM_READY_IND_T*)param_ptr)->pin2_status;
sendSignal->sig.MnSimReadyInd.unblock_pin1_status = ((APP_MN_SIM_READY_IND_T*)param_ptr)->unblock_pin1_status;
sendSignal->sig.MnSimReadyInd.unblock_pin2_Status = ((APP_MN_SIM_READY_IND_T*)param_ptr)->unblock_pin2_Status;
sendSignal->sig.MnSimReadyInd.is_pin2_required_acm_max = ((APP_MN_SIM_READY_IND_T*)param_ptr)->is_pin2_required_acm_max;
sendSignal->sig.MnSimReadyInd.is_pin2_Required_acm = ((APP_MN_SIM_READY_IND_T*)param_ptr)->is_pin2_Required_acm;
sendSignal->sig.MnSimReadyInd.is_pin2_Required_puct = ((APP_MN_SIM_READY_IND_T*)param_ptr)->is_pin2_Required_puct;
sendSignal->sig.MnSimReadyInd.imsi = ((APP_MN_SIM_READY_IND_T*)param_ptr)->imsi;
sendSignal->sig.MnSimReadyInd.hplmn = ((APP_MN_SIM_READY_IND_T*)param_ptr)->hplmn;
sendSignal->sig.MnSimReadyInd.location_info = ((APP_MN_SIM_READY_IND_T*)param_ptr)->location_info;
sendSignal->sig.MnSimReadyInd.phase = ((APP_MN_SIM_READY_IND_T*)param_ptr)->phase;
sendSignal->sig.MnSimReadyInd.sim_service = ((APP_MN_SIM_READY_IND_T*)param_ptr)->sim_service;
sendSignal->sig.MnSimReadyInd.admin = ((APP_MN_SIM_READY_IND_T*)param_ptr)->admin;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_SIMCARD_NOT_READY_IND_F:
MmiCreateSignal(SIG_APP_MN_SIM_NOT_READY_IND,sizeof(MnSimNotReadyIndS),&sendSignal);
sendSignal->sig.MnSimNotReadyInd.reason = ((APP_MN_SIM_NOT_READY_IND_T*)param_ptr)->reason;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_SIMCARD_GET_PIN_IND_F:
MmiCreateSignal(SIG_APP_MN_SIM_GET_PIN_IND,sizeof(MnSimGetPinIndS),&sendSignal);
sendSignal->sig.MnSimGetPinInd.pin_num = ((APP_MN_SIM_GET_PIN_IND_T*)param_ptr)->pin_num;
sendSignal->sig.MnSimGetPinInd.pin_is_blocked = ((APP_MN_SIM_GET_PIN_IND_T*)param_ptr)->pin_is_blocked;
sendSignal->sig.MnSimGetPinInd.remain_times = ((APP_MN_SIM_GET_PIN_IND_T*)param_ptr)->remain_times;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_SCELL_RSSI_IND_F:
MmiCreateSignal(SIG_APP_MN_SCELL_RSSI_IND,sizeof(MnScellRssiIndS),&sendSignal);
sendSignal->sig.MnScellRssiInd.rx_level = ((MN_PHONE_SCELL_MEAS_T*)param_ptr)->rxlev;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_MS_POWERING_OFF_IND_F:
MmiCreateSignal(SIG_APP_MN_MS_POWERING_OFF_IND,sizeof(MnPowerOffIndS),&sendSignal);
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_MS_POWER_OFF_CNF_F:
MmiCreateSignal(SIG_APP_MN_MS_POWER_OFF_CNF,sizeof(MnPowerOffCnfS),&sendSignal);
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_NCELL_RSSI_CNF_F:
MmiCreateSignal(SIG_APP_MN_NCELL_RSSI_CNF,sizeof(MnNcellRssiCnfS),&sendSignal);
//APP_MN_NCELL_RSSI_CNF_T changed , so modify this
//@steven , 2003.06.16
sendSignal->sig.MnNcellRssiCnf.ncell_num = MN_MAX_NCELL_NUM;
memcpy(sendSignal->sig.MnNcellRssiCnf.ncell_power ,((APP_MN_NCELL_RSSI_CNF_T*)param_ptr)->ncell_power,
sendSignal->sig.MnNcellRssiCnf.ncell_num);
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_AOC_MODIFIED_IND_F:
MmiCreateSignal(SIG_APP_MN_AOC_MODIFIED_IND,sizeof(MnAocModifyIndS),&sendSignal);
sendSignal->sig.MnAocModifyInd.is_ok =((APP_MN_AOC_MODIFIED_IND_T*)param_ptr)->is_ok;
sendSignal->sig.MnAocModifyInd.is_reach_max =((APP_MN_AOC_MODIFIED_IND_T*)param_ptr)->is_reach_max;
sendSignal->sig.MnAocModifyInd.acm_unit =((APP_MN_AOC_MODIFIED_IND_T*)param_ptr)->acm_unit;
sendSignal->sig.MnAocModifyInd.acm_max =((APP_MN_AOC_MODIFIED_IND_T*)param_ptr)->acm_max;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_PLMN_LIST_CNF_F:
MmiCreateSignal(SIG_APP_MN_PLMN_LIST_CNF,sizeof(MnPlmnListCnfS),&sendSignal);
sendSignal->sig.MnPlmnListCnf.is_valid_result =((APP_MN_PLMN_LIST_CNF_T*)param_ptr)->is_valid_result;
sendSignal->sig.MnPlmnListCnf.plmn_detail_list =((APP_MN_PLMN_LIST_CNF_T*)param_ptr)->plmn_detail_list;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_PIN_FUNC_CNF_F:
MmiCreateSignal(SIG_APP_MN_SIM_PIN_FUNC_CNF,sizeof(MnSimPinFuncCnfS),&sendSignal);
sendSignal->sig.MnSimPinFuncCnf.pin_operate_result =((APP_MN_SIM_PIN_FUNC_CNF_T*)param_ptr)->pin_operate_result;
sendSignal->sig.MnSimPinFuncCnf.pin_function_type =((APP_MN_SIM_PIN_FUNC_CNF_T*)param_ptr)->pin_function_type;
sendSignal->sig.MnSimPinFuncCnf.pin_num =((APP_MN_SIM_PIN_FUNC_CNF_T*)param_ptr)->pin_num;
sendSignal->sig.MnSimPinFuncCnf.pin_status =((APP_MN_SIM_PIN_FUNC_CNF_T*)param_ptr)->pin_status;
sendSignal->sig.MnSimPinFuncCnf.unblock_pin_status =((APP_MN_SIM_PIN_FUNC_CNF_T*)param_ptr)->unblock_pin_status;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_PLMN_SELECT_CNF_F:
MmiCreateSignal(SIG_APP_MN_PLMN_SELECT_CNF,sizeof(MnPlmnSelectCnfS),&sendSignal);
sendSignal->sig.MnPlmnSelectCnf.plmn_is_selected =((APP_MN_PLMN_SELECT_CNF_T*)param_ptr)->plmn_is_selected;
sendSignal->sig.MnPlmnSelectCnf.plmn_status =((APP_MN_PLMN_SELECT_CNF_T*)param_ptr)->plmn_status;
sendSignal->sig.MnPlmnSelectCnf.mode_is_manual =((APP_MN_PLMN_SELECT_CNF_T*)param_ptr)->mode_is_manual;
sendSignal->sig.MnPlmnSelectCnf.mcc =((APP_MN_PLMN_SELECT_CNF_T*)param_ptr)->mcc;
sendSignal->sig.MnPlmnSelectCnf.mnc =((APP_MN_PLMN_SELECT_CNF_T*)param_ptr)->mnc;
sendSignal->sig.MnPlmnSelectCnf.lac =((APP_MN_PLMN_SELECT_CNF_T*)param_ptr)->lac;
sendSignal->sig.MnPlmnSelectCnf.cell_id =((APP_MN_PLMN_SELECT_CNF_T*)param_ptr)->cell_id;
MmiSendSignal(task_id,sendSignal);
break;
case EV_MN_APP_FDN_SERVICE_IND_F:
MmiCreateSignal(SIG_APP_MN_FDN_SERVICE_IND,sizeof(MnFdnServiceIndS),&sendSignal);
sendSignal->sig.MnFdnServiceInd.is_fdn_enable =((APP_MN_FDN_SERVICE_IND_T*)param_ptr)->is_fdn_enable;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -