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

📄 mmienvironment.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
     * Create window handler
     */
    data->mmi_control.dialog = (T_DIALOG_FUNC)envconfirms;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->confirm_win)->data;
    win->user                = (void *) data;


    winShow(data->confirm_win);
    /*
     * return window handle
     */
    return data->confirm_win;
}

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

 $Function:    	envconfirm_destroy

 $Description:	mute confirm

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void envconfirm_destroy (T_MFW_HND own_window)
{
    T_MFW_WIN   * win;
    T_Envconfirm * data;

    TRACE_FUNCTION ("envconfirm_destroy()");

    if(own_window)
    {
        win  = ((T_MFW_HDR *)own_window)->data;
        data = (T_Envconfirm *)win->user;

        if(data)
        {
            /*
             * Delete WIN handler
             */
            win_delete (data->confirm_win);
            data->confirm_win = 0;
        }
    }
}

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

 $Function:    	envconfirm_Init

 $Description:	call by scenemode_mute

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
T_MFW_HND envconfirm_Init (T_MFW_HND parent_window)
{
    return(envconfirm_create (parent_window));
}
/*******************************************************************************

 $Function:    	envconfirm_Exit

 $Description:	

 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void envconfirm_Exit (T_MFW_HND own_window)
{
    T_MFW_WIN   * win_data = ((T_MFW_HDR *)own_window)->data;
    T_Envconfirm * data     = (T_Envconfirm *)win_data->user;

    envconfirm_destroy (data->confirm_win);
}


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

 $Function:    	envconfirm_dialog_cb

 $Description:	
 
 $Returns:		

 $Arguments:	
 
*******************************************************************************/
void envconfirm_dialog_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason)
{
    TRACE_FUNCTION ("envconfirm_dialog_cb()");

    switch(reason)
    {
    case INFO_TIMEOUT:
        /* no break; */
    case INFO_KCD_HUP:
        /* no break; */
    case INFO_KCD_RIGHT:
        /* no break; */
    case INFO_KCD_CLEAR:
    case INFO_KCD_LEFT:   //xsf add 2003.02.13
        envconfirm_Exit(win);
        break;
    default :
        break;
    }
}

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

 $Function:    	confirm_dialog

 $Description:	

 $Returns:		

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

    TRACE_FUNCTION ("envconfirm_dialog()");
    dialog_info_init(&display_info);

    display_info.KeyEvents    = KEY_CLEAR | KEY_RIGHT | KEY_LEFT;
    display_info.LeftSoftKey  = '\0';
    display_info.RightSoftKey = '\0';
    display_info.TextString   = '\0';
    display_info.TextString2  = '\0';
    display_info.TextId   = 0;
    display_info.Time       = TWO_SECS;
    display_info.iconindex=REMIND_COMPLETE;

    if(envconfirm.local_status EQ ACTIVATE_CONFIRM)
    {
        display_info.TextId2   = TxtActivated;
    }
    else if(envconfirm.local_status EQ DEACTIVATE_CONFIRM)
    {
        display_info.TextId2    = TxtDeActivated;
    }

    display_info.Callback     = (T_VOID_FUNC)envconfirm_dialog_cb;
    /*
     * Call Info Screen
     */
    info_dialog (envconfirm.confirm_win, &display_info);

}
/* handler of menu menuScene */
int scenemode_normal (MfwMnu *m, MfwMnuItem *i)
{
    //TRACE_EVENT("NORMAL MODE");
    Gu8_Envio_num=NORMAL_ENV;
    return 0;
}  
/* handler of menu menuScene */
int scenemode_out(MfwMnu *m, MfwMnuItem *i)
{
    //TRACE_EVENT("OUT MODE");
    Gu8_Envio_num=OUTDOOR_ENV;
    return 0;
}  
/* handler of menu menuScene */
int scenemode_meeting(MfwMnu *m, MfwMnuItem *i)
{

    //TRACE_EVENT("MEETING MODE");
    Gu8_Envio_num=MEETING_ENV;
    return 0;
}  
/* handler of menu menuScene */
int scenemode_incar(MfwMnu *m, MfwMnuItem *i)
//USHORT scenemode_incar (struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi)
{
    //TRACE_EVENT("INCAR MODE");
    Gu8_Envio_num=INCAR_ENV;
    return 0;
}  

/* handler of menu menuScene */
void scenemode_mute(void)
//USHORT scenemode_mute (struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi)
{
    T_MFW_HND win = mfw_parent(mfw_header());

    envconfirm_Init(win);

    if(FlashEnvironmentData.CurrentEnv== MUTE_ENV)
        envconfirm.local_status = ACTIVATE_CONFIRM;
    else
    {
        envconfirm.local_status = ACTIVATE_CONFIRM;
        FlashEnvironmentData.CurrentEnv= MUTE_ENV;
        flash_environmentwrite();
    }
    SEND_EVENT (envconfirm.confirm_win, SHOW_CONFIRM, 0, 0);

}  
/* 开启 */
int SetEnvironmentmode( MfwMnu *m, MfwMnuItem *i )
{
    //T_MFW_HND win = mfw_parent(mfw_header()); 
    //envconfirm_Init(win);
    if(FlashEnvironmentData.CurrentEnv!= Gu8_Envio_num)
    //envconfirm.local_status = ACTIVATE_CONFIRM;
    //else
    {
        //envconfirm.local_status = ACTIVATE_CONFIRM;
        FlashEnvironmentData.CurrentEnv= Gu8_Envio_num;
        flash_environmentwrite();
    }
    //SEND_EVENT (envconfirm.confirm_win, SHOW_CONFIRM, 0, 0);
    mnuUpdate(m);    //xsf add 2002.11.07
    return 0;
}

//SetRingmode
// -----------------------------------------------------------------------
// Function		:SetRingmode
// Description	: incoming call ring mode activate
// Input		: 
// Output		: 
// Notes		: 
// Last Modified: 2004.1.6 WYJ 
// ------------------------------------------------------------------------
//
void  SetRingmode(MfwMnu* m, MfwMnuItem* i)
{
	StopPlayingMelody2();
    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].prompttype=RING;
    flash_environmentwrite();
    mnuUpdate(m);    //xsf add 2002.08.16
    //StartMelody(0);  //xsf add 2002.08.12
    StartPlayByReason(MENUSETPLAY,0);   //xsf add 2002.09.06
    isKeyRing = 1;
}//SetRingmode

/* alarm ring activate  */
void  SetAlarmRingmode(MfwMnu* m, MfwMnuItem* i)
{

    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmprompt=RING;
    flash_environmentwrite();
    mnuUpdate(m);    //add 2002.09.24
    //StartPlayByReason(MENUALARMPLAY,0);  
    if(FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmvolume < 1)
        FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmvolume = 3;

	SetMVol_DownLinkPGA(FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmvolume); 
    if(melody_status==MELODY_IDLE) //&& (tone_status == TONE_IDLE))	
    {
     	StartPlayingMelody2( FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmtype, 0);
    }
	isKeyRing = 1; 
}//SetAlarmRingmode

// -----------------------------------------------------------------------
// Function		:SetRingAndVib
// Description	: incoming call ring & Vibra  activate
// Input		: 
// Output		: 
// Notes		: 
// Last Modified: 2004.1.6 WYJ 
// ------------------------------------------------------------------------
//

void SetRingAndVib(MfwMnu* m, MfwMnuItem* i)
{
	StopPlayingMelody2();
    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].prompttype=RINGANDVIBRA;
    flash_environmentwrite();
    mnuUpdate(m);   
    //StartMelody(0);  //xsf add 2002.08.12
    StartPlayByReason(MENUSETPLAY,0);  
    StartVibrator();
    l_playing=SMSPLAYVIB;
	//TIMCREATE_SETFLLAG( hRingVibStartTimer = timCreate( 0, TIM4SECOND, (MfwCb)stopvib2playmelody);)// 2004.4.1 wyj call no win
    timStart( hRingVibStartTimer );
	isKeyRing = 1;
}


// -----------------------------------------------------------------------
// Function		:SetVibramode
// Description	: incoming call Vibra mode activate
// Input		: 
// Output		: 
// Notes		: 
// Last Modified: 
// ------------------------------------------------------------------------
//

void SetVibramode(MfwMnu* m, MfwMnuItem* i)
{

    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].prompttype=VIBRA;
    flash_environmentwrite();
    mnuUpdate(m);    //xsf add 2002.08.16
    StartVibrator(); 
    l_playing=SMSPLAYVIB;
	//TIMCREATE_SETFLLAG  (hRingVibStartTimer = timCreate( 0, TIM4SECOND, (MfwCb)stopvib2playmelody);)// 2004.4.1 wyj call no win
     timStart( hRingVibStartTimer );

}//SetVibramode

/* alarm vibra activate */
void SetAlarmVibramode(MfwMnu* m, MfwMnuItem* i)
{

    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmprompt=VIBRA;
    flash_environmentwrite();
    mnuUpdate(m);    //xsf add 2002.09.24
    StartVibrator();
    l_playing=SMSPLAYVIB;
   //TIMCREATE_SETFLLAG( hRingVibStartTimer = timCreate( 0, TIM4SECOND, (MfwCb)stopvib2playmelody);)// 2004.4.1 wyj call no win
    timStart( hRingVibStartTimer );

}//SetAlarmVibramode

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

 $Function:     stopvib2playmelody

 $Description:  stop vibrator then play melody , this event handler
        is invoked when the hRingVibStartTimer event completes

 $Returns:    MFW_EVENT_CONSUMED always

 $Arguments:  e, event, tc timer context

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

int stopvib2playmelody( MfwEvt e, MfwTim *tc )
{
    //CurrentMode = CurrentMode & (~ModeSms);  2004.3.30 wyj MI18800000128 
    if(vibra_status == VIBRA_BUSY)
        StopVibrator();
    else if((vibra_status == VIBRA_IDLE)&&(l_playing==INCALLVIBRA))
        StartVibrator();
    else if((vibra_status == VIBRA_IDLE)&&(l_playing==INCALLPLAY)) //xsf add for vibra 12s(old is 4s) first then ring 2003.04.09
    {
        StartVibrator();
        l_playing=INCALLVIBRING;
        timStart(hRingVibStartTimer);
        return MFW_EVENT_CONSUMED;
    }
    // stop running timer
    if(hRingVibStartTimer != NULL)
        timStop(hRingVibStartTimer);

    //if((melody_status == MELODY_BUSY) && ( l_playing==SMSPLAYMELODY))  //XSF add 2002.10.15
        //StopMelody2(MelodyTablestr[3]);
	if( l_playing==SMSPLAYMELODY) //glowing, 2003-12-15

⌨️ 快捷键说明

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