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

📄 mmipins.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    }

    switch ( event )
    {
    

    case SIM_NLOCK_REQ:
    case SIM_NSLOCK_REQ:
    case SIM_SPLOCK_REQ:
    case SIM_CLOCK_REQ:
        main_call_mess(win,event);
        break;
    case SIM_PLOCK:
        check_nlock_to_clock(win,event);
        break;
    case SIM_NLOCK:
        check_splock_to_clock(win,event);
        break;
    case SIM_SPLOCK:
        check_nslock_to_clock(win,event);
        break;
    case SIM_NSLOCK:
        check_sim_clock(win,event);
        break;
    case SIM_CLOCK:
        if ( sim_unlock_sim_lock(MFW_SIM_CLOCK,(UBYTE *)pin_data->pin)EQ MFW_SIM_CLOCK )/* unlock code  */
        {
            main_call_mess(win,SIM_UNLOCK_OK);        /* finish sim unlock procedure */
        }
        else if ( sim_unlock_sim_lock(MFW_SIM_CLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR )
        {
            main_call_mess(win,SIM_LOCK_ERR);
        }
        break;
    default:
        break;
    }
}


/*******************************************************************************

 $Function:	check_plock_to_clock 

 $Description:	sim lock check from PLOCK to CLOCK
 $Returns:		void
 $Arguments:	window, window handler event
 
*******************************************************************************/
static void check_plock_to_clock(T_MFW_HND win,USHORT event)
{
    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    T_pin * pin_data = (T_pin *)win_data->user; // pin main data

    TRACE_FUNCTION("MmiPins:check_plock_to_clock");

    if ( sim_check_sim_Plock() EQ MFW_SIM_BLOCKED )
    {
        main_call_mess(win,SIM_LOCK_ALL);
    }
    else if ( sim_check_sim_Plock() EQ MFW_SIM_LOCKED )
    {
        main_call_mess(win,SIM_PLOCK_REQ);
    }
    else if ( sim_check_sim_Nlock() EQ MFW_SIM_LOCKED )
    {
        main_call_mess(win,SIM_NLOCK_REQ);
    }
    else if ( sim_check_sim_SPlock() EQ MFW_SIM_LOCKED )
    {
        main_call_mess(win,SIM_SPLOCK_REQ);
    }
    else if ( sim_check_sim_NSlock() EQ MFW_SIM_LOCKED )
    {
        main_call_mess(win,SIM_NSLOCK_REQ);
    }
    else if ( sim_check_sim_Clock() EQ MFW_SIM_LOCKED )
    {
        main_call_mess(win,SIM_CLOCK_REQ);
    }
    else
    {
        switch ( event )
        {
        case PIN_OK:

            /*
            *** registration in full service mode case: PIN was not necessary
            */
            /* SH - show welcome screen*/
            //xsf remarked 2002.10.08 showwelcome(idle_get_window());
            //nm_registration (NM_AUTOMATIC, 0, FALSE);
//GW-SPR#1035-Added STK Changes
/* NM, 110702
   this destroy the only ONE SIM-handler which we have 
   after switching on !!
   It should be at least one SIM-handler activ all the  time 
                pin_destroy(pin_data->pin_win);// finish main pin dialog
*/
            TRACE_EVENT("pin_destroy 5");
            //begin of xsf change 2002.10.09
            if ( CheckPassWord(PRO_ON) || CheckPassWord(PRO_SIMLOCK) )
            {
                if ( CheckPassWord(PRO_ON) )
                {
                    hostkey_init(0);    //xsf 2002.05.15
                }
                else if ( CheckPassWord(PRO_SIMLOCK) )
                {
                    if ( FlashHostkeyData.SimLockFlag==0 )
                    {
                        showwelcome(idle_get_window());
                        //Pin1OKOrNoPin1();  //xsf add 2002.10.09
                        //network_start_full_service ();
                        ReadSimIMSI();
                    }
                    else
                        JudgeSim();            
                }
            }
            else
            {
                /* SH - show welcome screen */
                showwelcome(idle_get_window());
                //Pin1OKOrNoPin1();  //xsf add 2002.10.09
                //network_start_full_service ();
            }
            //end of xsf add 2002.10.09		    

            break;
        case PIN_OK_INFO:
            main_call_mess(win,PIN_OK_INFO);
            break;
        case PUK1_UNBL_SUCC:
            main_call_mess(win,event);
            break;
        default:
            break;
        }
    }
}


/*******************************************************************************

 $Function:	check_nlock_to_clock
 $Description:	sim lock check from NLOCK to CLOCK
 $Returns:		void
 $Arguments:	window, window handler event
 
*******************************************************************************/
static void check_nlock_to_clock(T_MFW_HND win,USHORT event)
{
    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    T_pin * pin_data = (T_pin *)win_data->user; // pin main data

    TRACE_FUNCTION("MmiPins:check_nlock_to_clock");

    if ( sim_unlock_sim_lock(MFW_SIM_PLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_PLOCK )/* P unlock code ok */
    {
        if ( sim_check_sim_Nlock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_NLOCK_REQ);        //check N unlock code
        }
        else if ( sim_check_sim_SPlock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_SPLOCK_REQ);       //check SP unlock code
        }
        else if ( sim_check_sim_NSlock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_NSLOCK_REQ);       //check NS unlock code
        }
        else if ( sim_check_sim_Clock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_CLOCK_REQ);        //check C unlock code
        }
        else                          /* finish sim unlock procedure */
        {
            main_call_mess(win,SIM_UNLOCK_OK);
        }
    }
    else if ( sim_unlock_sim_lock(MFW_SIM_PLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR )
    {
        main_call_mess(win,SIM_LOCK_ERR);
    }
}


/*******************************************************************************

 $Function:	check_splock_to_clock
 $Description:	sim lock check from SPLOCK to CLOCK
 $Returns:		void
 $Arguments:	window, window handler event
 
*******************************************************************************/
static void check_splock_to_clock(T_MFW_HND win,USHORT event)
{
    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    T_pin * pin_data = (T_pin *)win_data->user; // pin main data

    TRACE_FUNCTION("MmiPins:check_splock_to_clock");

    if ( sim_unlock_sim_lock(MFW_SIM_NLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_NLOCK )
    {
        if ( sim_check_sim_SPlock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_SPLOCK_REQ);       //check SP unlock code
        }
        else if ( sim_check_sim_NSlock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_NSLOCK_REQ);       //check NS unlock code
        }
        else if ( sim_check_sim_Clock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_CLOCK_REQ);        //check C unlock code
        }
        else                          /* finish sim unlock procedure */
        {
            main_call_mess(win,SIM_UNLOCK_OK);        /* finish sim unlock procedure */
        }
    }
    else if ( sim_unlock_sim_lock(MFW_SIM_NLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR )
    {
        main_call_mess(win,SIM_LOCK_ERR);
    }
}


/*******************************************************************************

 $Function:	check_nslock_to_clock
 $Description:	sim lock check from NSLOCK to CLOCK
 $Returns:		void
 $Arguments:	window, window handler event
 
*******************************************************************************/
static void check_nslock_to_clock(T_MFW_HND win,USHORT event)
{
    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    T_pin * pin_data = (T_pin *)win_data->user; // pin main data

    TRACE_FUNCTION("MmiPins:check_nslock_to_clock");

    if ( sim_unlock_sim_lock(MFW_SIM_SPLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_SPLOCK )/* unlock code ok */
    {
        if ( sim_check_sim_NSlock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_NSLOCK_REQ);       //check NS unlock code
        }
        else if ( sim_check_sim_Clock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_CLOCK_REQ);        //check C unlock code
        }
        else                          /* finish sim unlock procedure */
        {
            main_call_mess(win,SIM_UNLOCK_OK);        /* finish sim unlock procedure */
        }
    }
    else if ( sim_unlock_sim_lock(MFW_SIM_SPLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR )
    {
        main_call_mess(win,SIM_LOCK_ERR);
    }
}


/*******************************************************************************

 $Function:	check_sim_clock
 $Description:	sim lock check	CLOCK
 $Returns:		void
 $Arguments:	window, window handler event
 
*******************************************************************************/
static void check_sim_clock(T_MFW_HND win,USHORT event)
{
    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    T_pin * pin_data = (T_pin *)win_data->user; // pin main data

    TRACE_FUNCTION("MmiPins:check_sim_lock");

    if ( sim_unlock_sim_lock(MFW_SIM_NSLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_NSLOCK )/* unlock code ok */
    {
        if ( sim_check_sim_Clock() EQ MFW_SIM_LOCKED )
        {
            main_call_mess(win,SIM_CLOCK_REQ);        //check C unlock code
        }
        else                          /* finish sim unlock procedure */
        {
            main_call_mess(win,SIM_UNLOCK_OK);        /* finish sim unlock procedure */
        }
    }
    else if ( sim_unlock_sim_lock(MFW_SIM_NSLOCK,(UBYTE *)pin_data->pin) EQ MFW_SIM_UNLOCK_ERR )
    {
        main_call_mess(win,SIM_LOCK_ERR);
    }
}

/*******************************************************************************

 $Function:	main_call_mess 
 $Description:	help function for message dialog
 $Returns:		void
 $Arguments:	window, window handler event
 
*******************************************************************************/
static void main_call_mess(T_MFW_HND win, USHORT event)
{

    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    T_pin * pin_data = (T_pin *)win_data->user; // pin main data

    T_MFW_HND pin_mess_win;
    TRACE_EVENT("MmiPins: main_call_mess");
    animation_complete = 1;    //GANCHH 2002/9/4 make power off availabe in pin input

    pin_mess_win = pin_mess_create(pin_data->pin_win);
    if ( pin_mess_win )
    {
        SEND_EVENT(pin_mess_win,event,0,pin_data);
    }
}


/*******************************************************************************

 $Function:	main_call_edit 
 $Description:	help function for editor dialog
 $Returns:		void
 $Arguments:	window, window handler event
 
*******************************************************************************/
static void main_call_edit(T_MFW_HND win,USHORT event)
{

    T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
    T_pin * pin_data = (T_pin *)win_data->user; // pin main data

    T_MFW_HND pin_edt_win;

    HUPKeyOrigin=1;//ganchh for power off while no sim card
    animation_complete=1;
    pin_edt_win = pin_edt_create(pin_data->pin_win);
    if ( pin_edt_win )
    {
        SEND_EVENT(pin_edt_win,event,0,pin_data);
    }
}


/*******************************************************************************

 $Function:	pin_edt_create 
 $Description:	Creation of an instance  for the PIN Editor dialog.
        Type of dialog : SINGLE_DYNAMIC
 $Returns:		void
 $Arguments:	parent window
 
*******************************************************************************/
T_MFW_HND pin_edt_create (T_MFW_HND parent_window)
{
    T_pin_edt * data = (T_pin_edt *)ALLOC_MEMORY (sizeof (T_pin_edt));

    T_MFW_WIN * win;

    data->pin_edt_win = win_create (parent_window, 0, MfwWinVisible, (T_MFW_CB)pin_edt_win_cb);
    TRACE_FUNCTION("pin_edt_create");
    if ( data->pin_edt_win EQ 0 )
        return 0;

    /*
     * Create window handler
     */
    pin_edit_windows = data->pin_edt_win;
    data->mmi_control.dialog    = (T_DIALOG_FUNC)pin_editor;
    data->mmi_control.data      = data;

⌨️ 快捷键说明

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