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

📄 mminetwork.c

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

        //user pressed Exit to go back to the network submenu
        FREE_MEMORY ((UBYTE *)network_data.network_list->List, (network_data.pplmn_mem.maxRcd) * sizeof (T_MFW_MNU_ITEM));

        FREE_MEMORY ((UBYTE *)network_data.network_list, sizeof (ListMenuData));

        FREE_MEMORY ((UBYTE *)network_data.pplmn,(network_data.pplmn_mem.maxRcd) * sizeof (T_MFW_NETWORK_STRUCT));

    }


}

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

 $Function:    	network_mobile_list_cb

 $Description:	Callback function international list dialog.
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void network_mobile_list_cb(T_MFW_HND win, ListMenuData * ListData)
{

    //test
    UBYTE i;
    //test

    T_MFW_PPLMN_MODE mode;

    T_MFW_WIN       * win_data = ((T_MFW_HDR *)win)->data;
    T_network_OPT    * data     = (T_network_OPT *)win_data->user;

    TRACE_EVENT ("network_mobile_list_cb()");


    switch( ListData->Reason )
    {
    case LISTS_REASON_SELECT: /*  */
    case LISTS_REASON_OK:  //xsf add 2003.03.10	
        mode =   REPLACE_PREF_PLMN;    /* Overwrite an existing entry  at a given index */

        //update now the pref. PLMN list
        //Overwrite an existing entry
        //(network_data.Listposition) "+1" because the zero is counted as well
        nm_change_pref_plmn(mode,(network_data.Listposition) +1 , 0, data->pplmn[ListData->ListPosition].network_numeric);

        // destroy the Menu 
        network_MNU_destroy(data->win);

        // request the pref. PLMN list
        nm_pref_plmn_list(network_data.pplmn, network_data.pplmn_mem.maxRcd, 1);



        break;
    case LISTS_REASON_BACK: /* back to previous menu */

        TRACE_EVENT ("pressed Back-key");
        network_MNU_destroy(data->win);

        break;
    default:
        return;
    }


}

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

 $Function:    	network_start_animation

 $Description:	Starts the network animation.
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void network_start_animation(void)
{
    T_DISPLAY_DATA display_info;

    MMI_TRACE_EVENT(("<<<talcon,network_start_animation()" ));

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_CLEAR | KEY_RIGHT;
    display_info.TextId2       = 0;  //TxtSearchingNetwork;
    display_info.TextId      = TxtSearchingNetwork;  //TxtWaiting;
    display_info.TextString   = 0;  //"Searching for";
    display_info.TextString2  = 0;  //"  Networks";
    display_info.LeftSoftKey  = '\0';
    display_info.RightSoftKey = TxtSoftBack;
    display_info.Time         = 30000;  //FOREVER;  
    display_info.Identifier=MMI_CALLFORWARD_DIALOG_NORMAL;/*2003/12/4, wangyan add*/
    display_info.Callback     = (T_VOID_FUNC)network_animation_cb;
    /*
     * Call Info Screen
     */

    network_data.network_search_win = info_dialog (network_data.network_win, &display_info);
    //mmi_dialogs_insert_fixmov_animation(network_data.network_search_win, 300 ,NETWORKSEARCHING,8);
    mmi_dialogs_insert_fixmov_animation(network_data.network_search_win, 300 ,NETWORKSEARCHINGANIM);/*2003/12/4, wangyan modify*/
}



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

 $Function:    	network_start_animation_plmn_selection

 $Description:	Starts the plmn selection animation.
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void network_start_animation_plmn_selection(int plmn_value)
{
    T_DISPLAY_DATA display_info;
    T_MFW_PLMN_LIST * plmn_list;

    TRACE_FUNCTION ("network_start_animation_plmn_selection()");

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_CLEAR | KEY_RIGHT;
    //display_info.TextId2       =TxtPleaseWait;  //
    display_info.TextId2      = TxtRegNetwork;  //TxtWaiting;
    //display_info.TextString   = 0;  //"Requesting....";
    //display_info.TextString2  = '\0';
    //display_info.LeftSoftKey  = '\0';
    display_info.RightSoftKey = TxtSoftBack;
    display_info.Time         =  20000;  //FOREVER;    
    display_info.iconindex =REMIND_WAITTING;
    display_info.Callback     = (T_VOID_FUNC)network_animation_cb;
    /*
     * Call Info Screen
     */
    network_data.aborted = FALSE;  //xsf add 2003.02.25
    network_data.network_search_win = info_dialog (network_data.network_win, &display_info);
}

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

 $Function:    	network_animation3sec_cb

 $Description:	Callback for information dialog (not used)n
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void network_animation3sec_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason)
{
    TRACE_FUNCTION ("network_animation3sec_cb()");
    network_data.network_search_win = 0;
    network_data.aborted = TRUE;

}

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

 $Function:    	network_forbidden_plmn

 $Description:	Starts the forbidden plmn data screen.
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void network_forbidden_plmn(void)
{
    T_DISPLAY_DATA display_info;

    MMI_TRACE_EVENT(("<<<talcon,network_forbidden_plmn()" ));

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_CLEAR | KEY_RIGHT;
    //display_info.TextId       = TxtRegNetwork;  //TxtHostKeyChangeFail; 
    display_info.TextId2      = TxtHostKeyChangeFail;  //TxtForbidden;

    display_info.RightSoftKey = TxtSoftBack;
    display_info.Time         = 3000;
    display_info.iconindex =REMIND_FAILURE;
    display_info.Callback     = (T_VOID_FUNC)network_animation3sec_cb;
    /*
     * Call Info Screen
     */

    network_data.network_search_win = info_dialog (network_data.network_win, &display_info);
}


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

 $Function:    	network_selected

 $Description:	displays info screen on network selected
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void network_selected(void)
{
    T_DISPLAY_DATA display_info;

    MMI_TRACE_EVENT(("<<<talcon,network_selected()" ));

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_CLEAR | KEY_RIGHT;
    //display_info.TextId       = TxtRegNetwork;  //TxtHostKeyChangeOk; //TxtNetwork;
    display_info.TextId2      = TxtHostKeyChangeOk;  //TxtSelected;

    display_info.RightSoftKey = TxtSoftBack;
    display_info.Time         = 3000;
    display_info.iconindex =REMIND_SUCCEED;
    display_info.Callback     = (T_VOID_FUNC)network_animation3sec_cb;
    /*
     * Call Info Screen
     */

    network_data.network_search_win = info_dialog (network_data.network_win, &display_info);
}

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

 $Function:    	network_no_plmns

 $Description:	 Indicate Info Screen that the network list is empty.
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void network_no_plmns(void)
{
    T_DISPLAY_DATA display_info;

    TRACE_FUNCTION ("network_no_plmns()");

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_RIGHT;
    display_info.TextId2       = TxtNoNetwork;
    //display_info.TextId      = 0;
    //display_info.TextString   = '\0';  //" No networks";
    //display_info.TextString2  = '\0';  //" available";
    //display_info.LeftSoftKey  = '\0';
    display_info.RightSoftKey = TxtSoftBack;
    display_info.Time         = THREE_SECS;
    display_info.iconindex  =REMIND_NORECORD;
    display_info.Callback     = (T_VOID_FUNC)network_animation3sec_cb;
    /*
     * Call Info Screen
     */
    info_dialog (0, &display_info);

}
/*******************************************************************************

 $Function:    	network_stop_animation

 $Description:	 Stops the network animation.
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
static void network_stop_animation(void)
{
    MMI_TRACE_EVENT(("<<<talcon,network_stop_animation()-type of network_search_win:%d",((MfwHdr *) network_data.network_search_win)->type ));

    /*2004/04/12,talcon modify*/
    /*if (network_data.network_search_win)*/
    if( winIsFocussed(network_data.network_search_win) )
    {
        MMI_TRACE_EVENT(("<<<talcon,network_stop_animation()--1" ));
        SEND_EVENT(network_data.network_search_win,DIALOG_DESTROY,0,0);
        //network_data.network_search_win = 0;
        SetEarMode();
    }
    network_data.network_search_win = 0;
}
/*******************************************************************************

 $Function:    	network_timeout

 $Description:	Indicate Info Screen that the network searching or registering is timed out.
             
 $Returns:		

 $Arguments:	xsf add 2003.02.26
 
*******************************************************************************/
static void network_timeout(void)
{
    T_DISPLAY_DATA display_info;

    TRACE_FUNCTION ("network_timeout()");

    dialog_info_init(&display_info);
    display_info.KeyEvents    = KEY_RIGHT;
    display_info.TextId2       = TxtTimeOut;
    display_info.RightSoftKey = TxtSoftBack;
    display_info.Time         = THREE_SECS;
    display_info.iconindex  =REMIND_NORECORD;

    // Call Info Screen 
    info_dialog (0, &display_info);

}
/*******************************************************************************

 $Function:    	network_animation_cb

 $Description:	Callback for information dialog (not used)n
             
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void network_animation_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason)
{
    MMI_TRACE_EVENT(("<<<talcon,network_animation_cb()" ));
    network_data.network_search_win = 0;
    network_data.aborted = TRUE;
    SetEarMode();
    switch( reason )
    {
    case INFO_TIMEOUT:
        network_timeout();
        break;
    default:
        break;
    }
}

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

 $Function:    	network_MNU_start

 $Description:	called when the user press the Edit Softkey to enter the 
                Option Menu "Select from the list" & "Enter the Network Code" &
                            "Delete"
 $Returns:		

 $Arguments:	
 
*******************************************************************************/

T_MFW_HND network_MNU_start(T_MFW_HND parent_window, MfwMnuAttr *menuAttr)
{
    T_MFW_HND win;

    TRACE_FUNCTION ("network_MNU_start()");

    win = network_MNU_create (parent_window);
    if( win NEQ NULL )
    {
        SEND_EVENT (win, E_INIT, NULL, (void *)menuAttr);
    }
    return win;
}

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

 $Function:    	network_MNU_create

 $Description:	Create the Option window
 
 $Returns:		mfw window handle

 $Arguments:	parent_window -parent window handle
            
*******************************************************************************/

static T_MFW_HND network_MNU_create(MfwHnd parent_window)
{
    T_network_OPT   * data = (T_network_OPT *)ALLOC_MEMORY (sizeof (T_network_OPT));
    T_MFW_WIN       * win;

    TRACE_FUNCTION ("network_MNU_create()");

    /*
     * Create window handler
     */

    data->win = 
    win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)network_MNU_win_cb);
    if( data->win EQ NULL )
    {
        return NULL;
    }

    /* 
     * connect the dialog data to the MFW-window
     */

    data->mmi_control.dialog = (T_DIALOG_FUNC)network_MNU_exec_cb;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent             = parent_window;

    /*
     * return window handle
     */

    return data->win;
}

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

⌨️ 快捷键说明

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