⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmitask.c

📁 MTK平台QQ移植
💻 C
📖 第 1 页 / 共 5 页
字号:
                                    #ifdef __MMI_DUAL_SIM_MASTER__
                                        MTPNP_AD_Set_PowerOn_Mode(MTPNP_AD_POWERON_KEYPAD);
                                        MTPNP_AD_Init();
                                    #endif /* __MMI_DUAL_SIM_MASTER__ */

                                    #ifdef __MMI_DUAL_SIM_SINGLE_CALL__
                                        if (p->flightmode_state == 1)
                                        {
                                            g_pwr_context.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG;
                                            g_pwr_context_2.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG;
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_FLIGHT);
                                        }
                                        else if (p->dual_sim_mode_setting == 0)
                                        {
                                            g_pwr_context_2.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG; /* no need to search SIM2 network in SIM1 only mode */
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_CARD1);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SIGNAL_STRENGTH, IMG_SI_MASTER_SIGNAL_STRENGTH);
                                        }
                                        else if (p->dual_sim_mode_setting == 1)
                                        {
                                            g_pwr_context.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG; /* no need to search SIM1 network in SIM2 only mode */
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_CARD2);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SLAVE_SIGNAL_STRENGTH, IMG_SI_SLAVE_SIGNAL_STRENGTH);
                                        }
                                        else
                                        {
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_DUALCARD);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SIGNAL_STRENGTH, IMG_SI_MASTER_SIGNAL_STRENGTH);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SLAVE_SIGNAL_STRENGTH, IMG_SI_SLAVE_SIGNAL_STRENGTH);
                                        }

                                        PhnsetSetUARTConfig(p->dual_sim_uart_setting); 
                                    #endif /* __MMI_DUAL_SIM_SINGLE_CALL__ */

                                        OslMemoryStart(TRUE);
                                        g_charbat_context.PowerOnCharger = 0;
                                        g_pwr_context.PowerOnMode = POWER_ON_KEYPAD;
                                    #ifdef __MMI_DUAL_SIM_SINGLE_CALL__                            
                                        g_pwr_context_2.PowerOnMMIStatus = POWER_ON_KEYPAD;
                                    #endif

                                        DTGetRTCTime(&StartUpTime);
                                        memset(&LastDuration, 0, sizeof(LastDuration));

                                #if !defined(__MTK_TARGET__) /* MoDIS only */
                                        mmi_netset_write_auto_test_result(MMI_FALSE);
                                #endif

                                        /* disk check */
                                #ifdef __FLIGHT_MODE_SUPPORT__
                                        g_phnset_cntx.curFlightMode = p->flightmode_state;
                                #endif 

                                    #ifdef __MMI_DUAL_SIM_DUAL_CALL_SLAVE__
                                        MTPNP_AD_Set_Slave_PowerOn_Mode(MTPNP_AD_POWERON_KEYPAD);
                                        break;
                                    #else
                                        mmi_bootup_entry_disk_check();
                                        PRINT_INFORMATION(" NORMAL POWER ON SUCCESS!!!!");
                                        break;
                                    #endif

                                    case POWER_ON_PRECHARGE:
                                    case POWER_ON_CHARGER_IN:
                           /************************************** 
                            * Always send charger-in indication
                            * to avoid fast repeating charger 
                            * in-out b4 power-on completes
                            * Lisen 04/13/2004
                           ***************************************/
                                    #ifdef __MMI_DUAL_SIM_MASTER__
                                        if (p->poweron_mode == POWER_ON_PRECHARGE)
                                        {
                                            MTPNP_AD_Set_PowerOn_Mode(MTPNP_AD_POWERON_PRECHARGE);
                                        }
                                        else if (p->poweron_mode == POWER_ON_CHARGER_IN)
                                        {
                                            MTPNP_AD_Set_PowerOn_Mode(MTPNP_AD_POWERON_CHARGER_IN);
                                        }
                                    #endif  /* __MMI_DUAL_SIM_MASTER__ */
                                    #ifdef __MMI_DUAL_SIM_DUAL_CALL_SLAVE__
                                        break;
                                    #endif
                                        g_pwr_context.PowerOnMode = p->poweron_mode;    /* Charger/Pre-charge Power On */
                                        InitializeChargingScr();
                                        if (!g_charbat_context.isChargerConnected)
                                        {
                                            QuitSystemOperation();
                                        }

                                        PRINT_INFORMATION(" CHARGER POWER ON SUCCESS!!!!");
                                        break;

                                    case POWER_ON_ALARM:
                                	#ifdef __MMI_DUAL_SIM_MASTER__
                                        MTPNP_AD_Set_PowerOn_Mode(MTPNP_AD_POWERON_ALARM);
                                	#endif
                                	#ifdef __MMI_DUAL_SIM_DUAL_CALL_SLAVE__
                                           break;
                                	#endif
                                        g_pwr_context.PowerOnMode = POWER_ON_ALARM;
                                    #ifdef __MMI_SUBLCD__
                                        gdi_lcd_set_active(GDI_LCD_SUB_LCD_HANDLE);
                                        gdi_layer_clear(GDI_COLOR_BLACK);
                                        gdi_lcd_set_active(GDI_LCD_MAIN_LCD_HANDLE);
                                    #endif /* __MMI_SUBLCD__ */ 
                                        gdi_layer_clear(GDI_COLOR_BLACK);
                                        AlmInitRTCPwron();
                                        PRINT_INFORMATION(" ALARM POWER ON SUCCESS!!!!");
                                        break;
                                    case POWER_ON_EXCEPTION:
                                    #ifdef __MMI_DUAL_SIM_MASTER__
                                        {
                                            MTPNP_AD_Set_PowerOn_Mode(MTPNP_AD_POWERON_EXCEPTION);
                                            MTPNP_AD_Init();
                                        }
                                    #endif  /* __MMI_DUAL_SIM_MASTER__ */
                                    #ifdef __MMI_DUAL_SIM_DUAL_CALL_SLAVE__
                                        {
                                            MTPNP_AD_Set_Slave_PowerOn_Mode(MTPNP_AD_POWERON_EXCEPTION);
                                            break;
                                        }
                                    #endif  /* __MMI_DUAL_SIM_DUAL_CALL_SLAVE__ */
                                        g_pwr_context.PowerOnMode = POWER_ON_EXCEPTION;

                                    #ifdef __MMI_DUAL_SIM_SINGLE_CALL__
                                        if (p->flightmode_state == 1)
                                        {
                                            g_pwr_context.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG;
                                            g_pwr_context_2.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG;
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_FLIGHT);
                                        }
                                        else if (p->dual_sim_mode_setting == 0)
                                        {
                                            g_pwr_context_2.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG; /* no need to search SIM2 network in SIM1 only mode */
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_CARD1);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SIGNAL_STRENGTH, IMG_SI_MASTER_SIGNAL_STRENGTH);
                                        }
                                        else if (p->dual_sim_mode_setting == 1)
                                        {
                                            g_pwr_context.PowerOnNWStatus |= MMI_NW_STATUS_NETWORK_FLAG; /* no need to search SIM1 network in SIM2 only mode */
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_CARD2);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SLAVE_SIGNAL_STRENGTH, IMG_SI_SLAVE_SIGNAL_STRENGTH);
                                        }
                                        else
                                        {
                                            MTPNP_AD_Set_Startup_Mode(MTPNP_AD_NVRAM_DUALCARD);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SIGNAL_STRENGTH, IMG_SI_MASTER_SIGNAL_STRENGTH);
                                            MTPNP_PFAL_Replace_StatusICON(STATUS_ICON_SLAVE_SIGNAL_STRENGTH, IMG_SI_SLAVE_SIGNAL_STRENGTH);
                                        }

                                        PhnsetSetUARTConfig(p->dual_sim_uart_setting); 
                                    #endif /* __MMI_DUAL_SIM_SINGLE_CALL__ */

                                    #ifdef __MMI_SUBLCD__
                                        gdi_lcd_set_active(GDI_LCD_SUB_LCD_HANDLE);
                                        gdi_layer_clear(GDI_COLOR_BLACK);
                                        gdi_lcd_set_active(GDI_LCD_MAIN_LCD_HANDLE);
                                    #endif /* __MMI_SUBLCD__ */ 
                                        gdi_layer_clear(GDI_COLOR_BLACK);
                                        OslMemoryStart(TRUE);
                                        SetAbnormalReset();
                                        InitializeAll();
                                        OslDumpDataInFile();
                                        PRINT_INFORMATION(" Exception POWER ON SUCCESS!!!!");
                                        ClearInputEventHandler(MMI_DEVICE_ALL);
                                        ClearKeyHandler(KEY_END, KEY_LONG_PRESS);

                           /**************************************
                            * Please note that the order of the following actions matters. 
                            * NVRAM data must be read before InitAllApplications, or there might be 
                            * unexpected errors. 
                           ***************************************/
                                        InitNvramData();
                                        InitAllApplications();

                                    #ifdef __FLIGHT_MODE_SUPPORT__
                                        PhnsetFlightModePowerOnException();
                                    #endif 
                           /***************************************
                            * To check power on display if need restore 
                            ***************************************/
                                        mmi_pwron_exception_check_display();

                                        break;

                                    #ifdef __MMI_USB_SUPPORT__
                                    case POWER_ON_USB:
                                    #ifdef __MMI_DUAL_SIM_MASTER__
                                        {
                                            MTPNP_AD_Set_PowerOn_Mode(MTPNP_AD_POWERON_USB);
                                        }
									#endif	/* __MMI_DUAL_SIM_MASTER__ */
                                    #ifdef __MMI_DUAL_SIM_DUAL_CALL_SLAVE__
                                            break;
                                    #endif  /* __MMI_DUAL_SIM_DUAL_CALL_SLAVE__ */
                                        g_pwr_context.PowerOnMode = POWER_ON_USB;
                           /***************************************
                            * Because Aux task will not init in USB boot mode 
                            * Interrupt service routine for clam detection CLAM_EINT_HISR() 
                            * is not register, force the clam state to open 
                            * If Aux task is necessary in USB mode, this tircky could be removed 
                            * Robin 1209 
                            ***************************************/
                                        gMMIClamState = 1;
                                        InitializeUsbScr();
                           /***************************************
                            * To disable keypad tone state 
                            ***************************************/
                                        mmi_frm_kbd_set_tone_state(MMI_KEY_TONE_DISABLED);
                                        PRINT_INFORMATION(" USB POWER ON SUCCESS!!!!");
                                        break;
                                    #endif /* __MMI_USB_SUPPORT__ */ 

                                    default:
                                        break;
                                }
                            }
                                break;

                            default:
                                ProtocolEventHandler(
                                    (U16) Message.oslMsgId,
                                    (void*)Message.oslDataPtr,
                                    (int)Message.oslSrcId,
                                    (void*)&Message);
                                break;
                        }

                    }

                    OslFreeInterTaskMsg(&Message);
                }   /* OslReadCircularQ(&Message) */
                msg_get_ext_queue_info(mmi_ext_qid, &queue_node_number);
                count--;
            }
        }     
    }
}


/*****************************************************************************
 * FUNCTION
 *  InitFramework
 * DESCRIPTION
 *  To Initialize framework,
 *  
 *  This is used to To Initialize framework,.
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void InitFramework(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* 
     * Initialize events handler  
     */
    InitEvents();
    /* 
     * Initialize keyprocess 
     */
    InitProcessKeyEvent();
    /* 
     * Initialize history 
     */
    InitHistory(NULL, (SubLcdHistoryCBPtr)SubLCDIdleScreen);

}

#ifdef __MMI_SUPPORT_DUMP_SCREEN_STRING__

/*****************************************************************************
 * FUNCTION
 *  mmi_trace_screen_string
 * DESCRIPTION
 *  Sending the screen string
 *  
 * PARAMETERS
 *  x           [IN]
 *  y           [IN]
 *  str         [IN]
 *  len         [IN]
 *  Bordered    [IN]
 * RETURNS
 *  MMI_BOOL
 *****************************************************************************/
MMI_BOOL mmi_trace_screen_string(S32 x, S32 y, U8 *str, S32 len, S32 Bordered)
{
    MMI_BOOL ret = MMI_FALSE;
#ifdef __MTK_TARGET__
    mmi_eq_str_res_req_struct *rsp_msg;
#else
    U8 data_string[200];
#endif

    /* If having combined_chars, dump the string first */
    if (mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.combined_chars))
    {
    #ifdef __MTK_TARGET__
        rsp_msg = (mmi_eq_str_res_req_struct *)	OslConstructDataPtr( sizeof(mmi_eq_str_res_req_struct) );
        kal_sprintf((char*)rsp_msg->data_string, "%d,(%d,%d),%d,", 
                        1,  /* Normal string */
                        g_mmi_frm_cntx.dump_screen_info.combined_chars_x,
                        g_mmi_frm_cntx.dump_screen_info.combined_chars_y,
                        mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.combined_chars));

        rsp_msg->length = strlen((char*)rsp_msg->data_string);
        mmi_ucs2ncpy((S8*)(rsp_msg->data_string+rsp_msg->length), (S8*)g_mmi_frm_cntx.dump_screen_info.combined_chars, MMI_SCREEN_COMBINED_CHAR_MAX_LENGTH/ENCODING_LENGTH);
        rsp_msg->length += mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.combined_chars)*ENCODING_LENGTH;

        MMI_ASSERT(rsp_msg->length <= MMI_SCREEN_STR_MAX_LENGTH);
        SendMsg2AT(MSG_ID_MMI_EQ_STR_RES_REQ, (void *)rsp_msg, NULL);
    #else /* __MTK_TARGET__ */
        kal_sprintf((char*)data_string, "%d,(%d,%d),%d,", 
                        1,  /* Normal string */
                        g_mmi_frm_cntx.dump_screen_info.combined_chars_x,
                        g_mmi_frm_cntx.dump_screen_info.combined_chars_y,
                        mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.combined_chars));

    #ifdef ENABLE_DUMP_SCREEN_STRING_TRACE
        kal_printf(data_string);
        kal_printf("%c%c%c%c%c ...",g_mmi_frm_cntx.dump_screen_info.combined_chars[0], g_mmi_frm_cntx.dump_screen_info.combined_chars[2], 
                                    g_mmi_frm_cntx.dump_screen_info.combined_chars[4], g_mmi_frm_cntx.dump_screen_info.combined_chars[6],
                                    g_mmi_frm_cntx.dump_screen_info.combined_chars[8]);
        kal_printf(" ++++ \n");
    #endif /* ENABLE_DUMP_SCREEN_STRING_TRACE */
    #endif /* __MTK_TARGET__ */

    }

    /* Dump the screen string */
    if (g_mmi_frm_cntx.dump_screen_info.is_enable
        && (g_mmi_frm_cntx.dump_screen_info.allow_dump_screen_str
            || g_mmi_frm_cntx.dump_screen_info.allow_dump_dm_screen))
    {
        /* check if the string is the same */
        if (mmi_ucs2strlen((S8*)str) && 
            (mmi_ucs2cmp((S8*)str, g_mmi_frm_cntx.dump_screen_info.backup_string) != 0 || g_mmi_frm_cntx.dump_screen_info.y != y))
        {
            mmi_ucs2ncpy(g_mmi_frm_cntx.dump_screen_info.backup_string, (S8*)str, MMI_SCREEN_STR_MAX_LENGTH/ENCODING_LENGTH);
            g_mmi_frm_cntx.dump_screen_info.y = y;

            if (g_mmi_frm_cntx.dump_screen_info.backup_hightlight_type &&
                g_mmi_frm_cntx.dump_screen_info.backup_y == y)
            {
                g_mmi_frm_cntx.dump_screen_info.hightlight_type = g_mmi_frm_cntx.dump_screen_info.backup_hightlight_type;
            }
            /*
            else
            {
                g_mmi_frm_cntx.dump_screen_info.backup_y = 0;
                g_mmi_frm_cntx.dump_screen_info.hightlight_type = 0;
            }
            */
        #ifdef __MTK_TARGET__

            rsp_msg = (mmi_eq_str_res_req_struct *)	OslConstructDataPtr( sizeof(mmi_eq_str_res_req_struct) );
            kal_sprintf((char*)rsp_msg->data_string, "%d,(%d,%d),%d,", 
                            (g_mmi_frm_cntx.dump_screen_info.hightlight_type>0)?MMI_SCREEN_HIGHLIGHT_STR:MMI_SCREEN_NORMAL_STR,
                            x, 
                            y,
                            mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.backup_string));
            rsp_msg->length = strlen((char*)rsp_msg->data_string);
            mmi_ucs2cpy((S8*)(rsp_msg->data_string+rsp_msg->length), g_mmi_frm_cntx.dump_screen_info.backup_string);
            rsp_msg->length += mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.backup_string)*ENCODING_LENGTH;

            MMI_ASSERT(rsp_msg->length <= MMI_SCREEN_STR_MAX_LENGTH);
            SendMsg2AT(MSG_ID_MMI_EQ_STR_RES_REQ, (void *)rsp_msg, NULL);
        #else  /* __MTK_TARGET__ */
            kal_sprintf((char*)data_string, "%d,(%d,%d),%d,", 
                            (g_mmi_frm_cntx.dump_screen_info.hightlight_type>0)?MMI_SCREEN_HIGHLIGHT_STR:MMI_SCREEN_NORMAL_STR,
                            x, 
                            y,
                            mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.backup_string));

        #ifdef ENABLE_DUMP_SCREEN_STRING_TRACE
            kal_printf(data_string);
            kal_printf("%c%c%c%c%c ...",str[0], str[2], str[4], str[6], str[8]);
            kal_printf(" ++++ \n");
        #endif  /* ENABLE_DUMP_SCREEN_STRING_TRACE */
        #endif  /* __MTK_TARGET__ */
            if (g_mmi_frm_cntx.dump_screen_info.hightlight_type)
            {
                g_mmi_frm_cntx.dump_screen_info.backup_hightlight_type = g_mmi_frm_cntx.dump_screen_info.hightlight_type;
                g_mmi_frm_cntx.dump_screen_info.backup_y = y;
            }

            gui_cancel_timer(mmi_no_more_str_hdlr);
            gui_start_timer(MMI_STR_DUMP_TIMEOUT, mmi_no_more_str_hdlr);
            ret = MMI_TRUE;
        }
    }
    g_mmi_frm_cntx.dump_screen_info.hightlight_type = 0;

    if (mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.combined_chars))
    {
        memset(g_mmi_frm_cntx.dump_screen_info.combined_chars, 0, ENCODING_LENGTH);
        g_mmi_frm_cntx.dump_screen_info.combined_chars_x = 0;
        g_mmi_frm_cntx.dump_screen_info.combined_chars_y = 0;
    }

    return ret;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_trace_screen_char
 * DESCRIPTION
 *  Sending the screen char
 *  
 * PARAMETERS
 *  x           [IN]
 *  y           [IN]
 *  unicode     [IN]
 *  len         [IN]
 *  Bordered    [IN]
 * RETURNS
 *  MMI_BOOL
 *****************************************************************************/
MMI_BOOL mmi_trace_screen_char(S32 x, S32 y, U16 unicode, S32 len, S32 Bordered)
{
    MMI_BOOL ret = MMI_FALSE;
    
    if (g_mmi_frm_cntx.dump_screen_info.is_enable
        && (g_mmi_frm_cntx.dump_screen_info.allow_dump_screen_str
            || g_mmi_frm_cntx.dump_screen_info.allow_dump_dm_screen))
    {
    #ifdef __COMBINE_CHAR_IN_DUMP_SCREEN_STRING__
        U8 dummy;
        S32 len;

        /* combine the separated chars to the string */
        len = mmi_ucs2strlen(g_mmi_frm_cntx.dump_screen_info.combined_chars);
        if (g_mmi_frm_cntx.dump_screen_info.combined_chars_y == y)
        {
            /* chars are at The same column */
			if ((len + 1) < (MMI_SCR

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -