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

📄 mmienvironment.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
                return;
            StopPlayByReasonId(SMSPLAY);
            CurrentMode = CurrentMode |ModeVoicememo;   
            break;

		case MAINMENUVOICE:
            if((CurrentMode & ModeAlarm)||(CurrentMode & ModeSms))
                return;
            if(((CurrentMode & ModeIncomCall)||(CurrentMode & ModeCall)) && call_win_flag)
                //if(driverFlag & 0x00000001 == 0x00000001)
                return;

            keytone_volume= FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].KeypadVolume;
			if( keytone_volume == 0 )
				return;
            SetMVol_DownLinkPGA(keytone_volume);

            keytone_type= FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].KeypadTone;

			if( keytone_type == 0 )
	            StartPlayingMelody2( KEYTONE_SINGLE, 0 ); //glowing: use the yamaha api
	        else
	            StartPlayingMelody2( KEYTONE_VOICE0 + index, 0); //glowing: use the yamaha api
				
            break; 
		case POWERONPLAY:
			if(!(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].OnRingtype & 0x80))
			{
				SetMVol_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].OnVolume);
				StartPlayingMelody2(FIRST_HALL_MELODY + FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].OnRingtype, 1);
			}
            break; 

		case POWEROFFPLAY:
    		if( !(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].OffRingtype & 0x80) )
    		{
        		SetMVol_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].OffVolume);
        		StartPlayingMelody2(FIRST_HALL_MELODY + FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].OffRingtype, 1);
    		}
            break; 
			
#ifdef QQFUNC//hxl add for qq func switch,2003-3-24
        case QQPLAY:  //xsf add for QQ received 2003.03.18
            if((CurrentMode & ModeIncomCall) ||(CurrentMode & ModeAlarm)||(CurrentMode & ModeCall)||(CurrentMode & ModeSms))
                return;
            if(FlashEnvironmentData.CurrentEnv == MEETING_ENV) //xsf add 2003.04.17
            {
                StartVibrator(); 
                l_playing=SMSPLAYVIB;
       //TIMCREATE_SETFLLAG(         hRingVibStartTimer = timCreate( 0, TIM4SECOND, (MfwCb)stopvib2playmelody);)// 2004.4.1 wyj call no win
                timStart( hRingVibStartTimer );
            }
            else
                StartSpecialTone(6);
            break;
#endif
		case HALLON:					// 2004.4.9 WYJ add
			if( !(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].HallOnRingtype & 0x80))
			{
				SetMVol_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].HallOnVolume);
				StartPlayingMelody2(FIRST_HALL_MELODY + FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].HallOnRingtype, 1);
			}
			break;
			
		case HALLOFF:
			if(!(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].HallOffRingtype & 0x80))
			{
				SetMVol_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].HallOffVolume);
				StartPlayingMelody2(FIRST_HALL_MELODY + FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].HallOffRingtype, 1);
			}
			break;
			
		case MAINMENU_VOICE:
			if( FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].KeypadTone != 0)
			{
				SetMVol_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].KeypadVolume);
				StartPlayingMelody2( FIRST_MAINMENU_VOICE + index, 1 );
			}
			break;
	
        default:
            break;
        }

		/* 2004/06/14 sunsj modify for LED controller */
		switch(reasonid)
		{
		case INCALLPLAY:
		case INCALLPLAYGROUP:
		case ALARMPLAY:
			LEDStart(1);
			break;
		case SMSPLAY:
			LEDStart(0);
			break;
		default:
			break;
		}
		MMI_TRACE_EVENT(("<<<<talcon--2,StartPlayByReason,LedStartTimer:%p",LedStartTimer));
		MMI_TRACE_EVENT(("<<<<talcon--2,StartPlayByReason,mfwRoot:%p(%p,%p,%p)",mfwRoot,mfwRoot->next,mfwRoot->type,mfwRoot->data));
        break;

	case MUTE_ENV: //静音模式
        switch(reasonid)
        {
        case INCALL: 
            StopPlayByReasonId(INCALLPLAY);
            CurrentMode = CurrentMode | ModeCall;   
            SetASpk_DownLinkPGA(FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].speakervolume);
            break;
        case INCALLPLAYGROUP:             // 1
        case INCALLPLAY:

            if(CurrentMode & ModeCall)   //in call
                return;
            CurrentMode = CurrentMode & (~ModeAlarm);   
            CurrentMode = CurrentMode & (~ModeRingmnu);  
            CurrentMode = CurrentMode | ModeIncomCall;          
            StopPlayByReasonId(SMSPLAY);

            break;
        case SMSPLAY:            // 2
            if((CurrentMode & ModeIncomCall) ||(CurrentMode & ModeAlarm)||(CurrentMode & ModeCall))
                return;
            StopPlayByReasonId(SMSPLAY);

            break; 
        case ALARMPLAY:       // 3
            if(CurrentMode & ModeIncomCall)
                return;
            if(CurrentMode & ModeCall)
            {
                //StartSpecialTone(4);
                return;
            }
            StopPlayByReasonId(SMSPLAY);
            CurrentMode = CurrentMode | ModeAlarm;         
            break;

        case MENURINGPLAY:     // 4
            if((CurrentMode & ModeIncomCall) ||(CurrentMode & ModeAlarm)||(CurrentMode & ModeCall)||(CurrentMode & ModeSms))
                return;
            StopPlayByReasonId(MENURINGPLAY);
            CurrentMode = CurrentMode | ModeRingmnu;  
            break;

        case MENUALARMPLAY:   //5
            if((CurrentMode & ModeIncomCall) ||(CurrentMode & ModeAlarm)||(CurrentMode & ModeCall)||(CurrentMode & ModeSms))
                return;
            StopPlayByReasonId(MENURINGPLAY);
            CurrentMode = CurrentMode | ModeRingmnu;        
            break;

        case MENUIDLEPLAY:       //6
            if((CurrentMode & ModeIncomCall) ||(CurrentMode & ModeAlarm)||(CurrentMode & ModeCall)||(CurrentMode & ModeSms))
                return;
            StopPlayByReasonId(MENURINGPLAY);
            CurrentMode = CurrentMode | ModeRingmnu;           
            break;

        case KEYPADTONE:           
        case NEEDCHARGE:           
        case MISSEDCALL:       
        case UNREADSMS:            
        case CONNECTTONE:      
        default:
            break;
        }
        break;
    default:
        break;

    }
}


/********************************************************************************/
/*                                                                              */
/*Function Name: environment_check                                              */
/*Purpose:      environment_check   flag funtiong for menu                      */
/*Prarmeter:   struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *m i */
/*return   :     USHORT                                                         */
/*                                                                              */
/*Author   :     xsf                                                            */
/*Date     :    Aug.13th,2002  2004.1.6 WYJ                                                  */
/********************************************************************************/
USHORT environment_check (struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi)
{
    //if(melody_status==MELODY_BUSY)
        //StopMelody2(oldringstr);
    //    StopPlayingMelody2(); //glowing: use the new api
    //else if(tone_status==TONE_BUSY)
    //if(tone_status==TONE_BUSY)
        //StopTone();

    //if(vibra_status==VIBRA_BUSY)
    //    StopVibrator();

    //if(hRingVibStartTimer != NULL)
    //    timDelete(hRingVibStartTimer);

	static	int aCursor = 0;
	
	//只在菜单光标切换时做 2004.2.9 WYJ
	if(m->lCursor[m->level] != aCursor)
	{
		MC_StopVibra();						// 2004.4.16 WYJ add

        aCursor = m->lCursor[m->level];

		if(isKeyRing && !((int)mi->str>=TxtSmsRing1 && (int)mi->str<=TxtSmsRing5) )
		{
			StopPlayingMelody2( );
			isKeyRing = 0;
		}
	}

    if(((int)mi->str==TxtMissedCallTone || (int)mi->str==TxtUnreadSMSTone) && ( m->lCursor[m->level] >= 6)) //add 2003.01.06
        driverFlag|=0x04;
    else   //xsf add for KCD_LEFT 2003.01.14
        driverFlag&=0xFFFFFFFB;
	
//    if(((int)mi->str==TxtAnyKeyAnswer) && ( FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].Anykeyanswerflag))
if(((int)mi->str==TxtAnyKeyAnswer) && ( FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].Anykeyanswerflag))/*2004/5/17, wangyan add*/
        return FLAGFUNC_TRUE_ICON;
 //   else if(((int)mi->str==TxtAnswerTone) && ( FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].connecttone))
	else if(((int)mi->str==TxtAnswerTone) && ( FlashEnvironmentData.EnviroProfile[FlashEnvironmentData.CurrentEnv].connecttone))/*2004/5/17, wangyan add*/
        return FLAGFUNC_TRUE_ICON;
    else if(((int)mi->str==TxtMissedCallTone) && ( FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].MissedcallTone))
        return FLAGFUNC_TRUE_ICON;
    else if(((int)mi->str==TxtKeypadTones) && ( FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadTone))
        return FLAGFUNC_TRUE_ICON;
    else if(((int)mi->str==TxtUnreadSMSTone) && ( FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].UnreadSMSTone))
        return FLAGFUNC_TRUE_ICON;
    else if(((int)mi->str==TxtSmsVibra) && (FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmprompt==VIBRA))
        return FLAGFUNC_TRUE_ICON;
    //else if(((int)mi->str==TxtRingPrompt) && (FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].alarmprompt==RING))
    //      return FLAGFUNC_TRUE_ICON; 
    //else if(((int)mi->str==TxtStart) && (FlashEnvironmentData.CurrentEnv== Gu8_Envio_num))
    else if(((int)mi->str==TxtActivate) && (FlashEnvironmentData.CurrentEnv== Gu8_Envio_num))  //wuyj

        return FLAGFUNC_TRUE_ICON;
    else

        return FLAGFUNC_FALSE_ICON;

}


/* 2003/12/08 sunsj add */
void SetKeypadToneRing(MfwMnu* m, MfwMnuItem* i)
{
    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadTone= 1;
	if(FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadVolume < 1)
		FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadVolume = 3;
    flash_environmentwrite();
    mnuUpdate(m);    
    //SetMVol_DownLinkPGA(4);
    //StartTonebypara(2);
}

/* 2003/12/08 sunsj add */
void SetKeypadToneSpcial(MfwMnu* m, MfwMnuItem* i)
{
    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadTone = 2;
	if(FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadVolume < 1)
		FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadVolume = 3;
    flash_environmentwrite();
    mnuUpdate(m);    
    //SetMVol_DownLinkPGA(4);
    //StartTonebypara(2);
}

/* 2004.1.4 WYJ add key sound mute option */
void setKeypadMute(MfwMnu* m, MfwMnuItem* i)
{
    FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadTone = 0;
	flash_environmentwrite();
	mnuUpdate(m); 
}

USHORT checkKeypadMute( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi )
{
	if ( FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].KeypadTone==0 )
		return FLAGFUNC_TRUE_ICON;
    else
        return FLAGFUNC_FALSE_ICON;
}


//	2004.5.10 WYJ add
void SetOnMenu(MfwMnu* m, MfwMnuItem* i)
{
	isOnRing = 1;
}

void SetOffMenu(MfwMnu* m, MfwMnuItem* i)
{
	isOnRing = 0;
}
//	end of 2004.5.10 WYJ add


//-----------------------2004.1.13 WYJ------------------------- 
/*******************************************************/
/*Function Name: SetOnRingMute                   
/*Purpose:       Off ring mute                 
/*Prarmeter:                                         
/*return   :                                       
/*Author   :     WYJ                                   
/*Date     :     2004.1.15                        
/*******************************************************/
void SetOnRingMute(MfwMnu* m, MfwMnuItem* i)
{
	isOnRing = 1;
	FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].OnRingtype |= 0x80;
	mnuUpdate (m);
	flash_environmentwrite();
}

/*******************************************************/
/*Function Name: SetOffRingMute                   
/*Purpose:       Off ring mute                 
/*Prarmeter:                                         
/*return   :                                       
/*Author   :     WYJ                                   
/*Date     :     2004.1.15                        
/*******************************************************/
void SetOffRingMute(MfwMnu* m, MfwMnuItem* i)
{
	isOnRing = 0;
	FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].OffRingtype |= 0x80;
	mnuUpdate (m);
	flash_environmentwrite();
}

/*******************************************************/
/*Function Name: OnOff_check                   
/*Purpose:       flag check function for on/off menu                 
/*Prarmeter:                                         
/*return   :                                       
/*Author   :     WYJ                                   
/*Date     :     2004.1.15                        
/*******************************************************/
USHORT OnOff_check( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi )
{
	if(gPlayKeytoneFlag == 0)
		gPlayKeytoneFlag = 1;
	
	if(isOnRing == 1)			//开机 2004.5.10 WYJ modify
	{
		if(((int)mi->str==TxtSpecialRing) &&(!(FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].OnRingtype & 0x80)))
			return FLAGFUNC_TRUE_ICON;
		else if (((int)mi->str==TxtSmsMute) &&(FlashEnvironmentData.EnviroProfile[Gu8_Envio_num].OnRingtype & 0x80))
			return FLAGFUNC_TRUE_ICON;
		else
			return FLAGFUNC_FALSE_ICON;
	}
	else if(isOnRing == 0)		//关机 2004.5.10 WYJ modify
	{
		if(((int)mi->str==Txt

⌨️ 快捷键说明

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