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

📄 fmkey.c

📁 SI4702
💻 C
📖 第 1 页 / 共 2 页
字号:
				 				PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_PLAY,MSG_FUNCTION1_FM_SEEK,0,0);			}			break;		}//--------------------- OTHER KEY --------------------------		default:			break;	}}/**********************************************************************************  Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.*  Function name :  FmMenuKeyProc()*  Author:          ZHengYongzhi*  Description:     FM 弹出菜单按键处理程序,上下选择个菜单项,确认键进入子功能*                  *  Input:   *  Output:  *  Return:  *  Calls:    **  History:     <author>         <time>         <version>       *             ZhengYongzhi     2006/01/01         Ver1.0*     desc: ORG*    --------------------------------------------------------------------*             ZhengYongzhi      2007-5-7          Ver1.9*     desc: 添加注释*********************************************************************************/__attribute__((section(".fm_text,\"ax\"")))void FmMenuKeyProc(void){	unsigned int i;    	switch(KeyVal)	{//--------------------- PLAY KEY ---------------------------//--------------------- MENU KEY ---------------------------		case KEY_VAL_MENU_SHORT_UP:		{			KeyReset();			if (FmFunctionSele == FM_STATE_AUTO)	//自动			{				GlobalFmVar.FmState = FM_STATE_AUTO;	            				GlobalFmVar.FmSaveNum = 0;				GlobalFmVar.FmFreq = FmFreqMinVal;								for (i = 0; i < FREQMAXNUMBLE; i ++)				{					GlobalFmVar.FmFreqArray[i] = 0;				}				bitclear_creg(%imask,5);				FmTimerCount = 0;				bitset_creg(%imask,5);								UpDownFlag = TUN_UP;				Tuner_MuteControl(1);				AmplifierOff();	            				FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT | 							FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |							FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);	                         				PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_PLAY,MSG_FUNCTION1_FM_AUTO_START,0,0);				break;			} 	        			if (FmFunctionSele == FM_STATE_MANUAL)		//手动			{				GlobalFmVar.FmState = FM_STATE_MANUAL;	            				FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT | 							FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |							FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);	                         				PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_PLAY,0,0,0);				break;			} 	        			if (FmFunctionSele == FM_STATE_PRESET)		//预设			{        				GlobalFmVar.FmState = FM_STATE_PRESET;	            				if (GlobalFmVar.FmSaveNum >= FREQMAXNUMBLE) GlobalFmVar.FmSaveNum = 0;	            				if (GlobalFmVar.FmFreq == GlobalFmVar.FmFreqArray[GlobalFmVar.FmSaveNum])				{					PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_PLAY,0,0,0);				}				else 				{					for(i=0;i<FREQMAXNUMBLE,GlobalFmVar.FmFreqArray[i]==0;i++){}										if(i==FREQMAXNUMBLE)					{						GlobalFmVar.FmSaveNum=0;					}					else					{						GlobalFmVar.FmSaveNum=i;					}					GlobalFmVar.FmFreq = GlobalFmVar.FmFreqArray[GlobalFmVar.FmSaveNum];										if((GlobalFmVar.FmFreq < FmFreqMinVal) || (GlobalFmVar.FmFreq > FmFreqMaxVal))					{						GlobalFmVar.FmFreq = FmFreqMinVal;   					}										FmGuageVal = (unsigned int)((unsigned long)(FM_GUAGE_CONST) * (GlobalFmVar.FmFreq - FmFreqMinVal) / (FmFreqMaxVal - FmFreqMinVal));					PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_START,0,0,0);				}	            				FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT | 							FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |							FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);	                             				break;			}#if(FM_LIST_ENABLE == 1)			if (FmFunctionSele == FM_STATE_LOAD)	//加载.			{				fmlistGetFmFreqList (GlobalFmVar.FmFreqArray);	            				GlobalFmVar.FmState = FM_STATE_PRESET;				GlobalFmVar.FmSaveNum = 0;	            				if (GlobalFmVar.FmFreq == GlobalFmVar.FmFreqArray[GlobalFmVar.FmSaveNum]) 				{					PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_PLAY,0,0,0);				} 				else 				{					GlobalFmVar.FmFreq = GlobalFmVar.FmFreqArray[GlobalFmVar.FmSaveNum];					if((GlobalFmVar.FmFreq < FmFreqMinVal) || (GlobalFmVar.FmFreq > FmFreqMaxVal))					{						GlobalFmVar.FmFreq = FmFreqMinVal;   					}					FmGuageVal = (unsigned int)((unsigned long)(FM_GUAGE_CONST) * (GlobalFmVar.FmFreq - FmFreqMinVal) / (FmFreqMaxVal - FmFreqMinVal));					PostFun1Message(MSG_FUNCTION1_FM,MSG_FUNCTION1_FM_START,0,0,0);				}	            				FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT | 	                             	FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |						FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);	                             				break;			}#endif	        			CurCh  = GlobalFmVar.FmSaveNum;			PrevCh = GlobalFmVar.FmSaveNum;        			FmDisplayFlag |= FM_DISPFLAG_LIST_BK;						if (FmFunctionSele == FM_STATE_SAVE)			{				PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_SAVE,0,0,0);				break;			}			else			{				PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_DEL,0,0,0);				break;			}			break;		}//--------------------- UP KEY ----------------------------		case KEY_VAL_UP_DOWN:		{			if (FmFunctionSele == FM_STATE_MANUAL) 			{#if(FM_LIST_ENABLE == 1)				FmFunctionSele = FM_STATE_LOAD;#else				FmFunctionSele = FM_STATE_AUTO;#endif			} 			else 			{				FmFunctionSele -- ;			}			FmDisplayFlag = FM_DISPFLAG_SUBMENU_SEL;			break;		}//--------------------- DOWN KEY ----------------------------		case KEY_VAL_DOWN_DOWN:		{			FmFunctionSele ++ ;#if(FM_LIST_ENABLE == 1)			if (FmFunctionSele > FM_STATE_LOAD) #else			if (FmFunctionSele > FM_STATE_AUTO) #endif			{				FmFunctionSele = FM_STATE_MANUAL;			}			FmDisplayFlag = FM_DISPFLAG_SUBMENU_SEL;			break;		}//--------------------- FFW KEY ----------------------------		case KEY_VAL_FFW_DOWN:		{			KeyReset();			FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT | 						FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |						FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);			PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_PLAY,0,0,0);			break;		}//--------------------- OTHER KEY --------------------------		default:			break;	}}/**********************************************************************************  Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.*  Function name :  FmListKeyProc()*  Author:          ZHengYongzhi*  Description:     FM 存台/取台列表按键操作*                  *  Input:   *  Output:  *  Return:  *  Calls:    **  History:     <author>         <time>         <version>       *             ZhengYongzhi     2006/01/01         Ver1.0*     desc: ORG*    --------------------------------------------------------------------*             ZhengYongzhi      2007-5-7          Ver1.9*     desc: 添加注释*********************************************************************************/__attribute__((section(".fm_text,\"ax\"")))void FmListKeyProc(void){	PrevCh = CurCh;    	switch(KeyVal)	{//--------------------- PLAY KEY ---------------------------//--------------------- MENU KEY ---------------------------		case KEY_VAL_MENU_SHORT_UP:		{			KeyReset();			FmDialogVal = FM_DEL_SAVE_YES;			DispSelectDialogBox(0, 0, FmDialogVal, (RADIO_DIALOG_SAVE_TXT + (unsigned long)(FmFunctionSele - FM_STATE_SAVE) * MENU_PER_BYTE));			PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_DIALOG,0,0,0);			break;		}//--------------------- UP KEY ----------------------------		case KEY_VAL_UP_PRESS:		case KEY_VAL_UP_DOWN:		{			if(CurCh > 0)			{				CurCh --;        		}			else			{				CurCh = FM_SAVE_BUF_MAX-1;			}			FmDisplayFlag = FM_DISPFLAG_LIST_SEL;			break;		}//--------------------- DOWN KEY ----------------------------		case KEY_VAL_DOWN_PRESS:		case KEY_VAL_DOWN_DOWN:		{			if(CurCh < FM_SAVE_BUF_MAX-1)			{				CurCh++;			}			else			{				CurCh = 0;			}			FmDisplayFlag = FM_DISPFLAG_LIST_SEL;			break;		}//--------------------- FFW KEY ----------------------------		case KEY_VAL_FFW_SHORT_UP:		{			KeyReset();			FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT | 						FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |						FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);			PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_PLAY,0,0,0);			break;		}//--------------------- OTHER KEY --------------------------		default:			break;	}}/**********************************************************************************  Copyright (C),2004-2007, Fuzhou Rockchip Electronics Co.,Ltd.*  Function name :  FmDialogKeyProc()*  Author:          ZHengYongzhi*  Description:     FM 弹出对话框按键操作*                  *  Input:   *  Output:  *  Return:  *  Calls:    **  History:     <author>         <time>         <version>       *             ZhengYongzhi     2006/01/01         Ver1.0*     desc: ORG*    --------------------------------------------------------------------*             ZhengYongzhi      2007-5-7          Ver1.9*     desc: 添加注释*********************************************************************************/__attribute__((section(".fm_text,\"ax\"")))void FmDialogKeyProc(void){	switch (KeyVal)	{//--------------------- PLAY KEY ---------------------------//--------------------- MENU KEY ---------------------------		case KEY_VAL_MENU_DOWN:		{			KeyReset();       			if(FmDialogVal == FM_DEL_SAVE_YES)			{ 				if(FmFunctionSele == FM_STATE_SAVE)				{					GlobalFmVar.FmFreqArray[CurCh] = GlobalFmVar.FmFreq;				}				else				{					GlobalFmVar.FmFreqArray[CurCh] = 0;				} 			}			FmDisplayFlag = (FM_DISPFLAG_NULL | FM_DISPFLAG_BACKGROUND | FM_DISPFLAG_BATT | 						FM_DISPFLAG_CH | FM_DISPFLAG_FREQ | FM_DISPFLAG_GUAGE | FM_DISPFLAG_REGION |						FM_DISPFLAG_VOL | FM_DISPFLAG_SENS | FM_DISPFLAG_STEREO);                         			PostFun1Message(MSG_FUNCTION1_FM, MSG_FUNCTION1_FM_PLAY,0,0,0);			break; 		}//--------------------- FFD KEY ----------------------------		case KEY_VAL_FFD_DOWN:		case KEY_VAL_FFD_PRESS://--------------------- FFW KEY ----------------------------		case KEY_VAL_FFW_DOWN:		case KEY_VAL_FFW_PRESS:		{			FmDialogVal = 1 - FmDialogVal;			DispSelectDialogBox(0, 0, FmDialogVal, (RADIO_DIALOG_SAVE_TXT + (unsigned long)(FmFunctionSele - FM_STATE_SAVE) * MENU_PER_BYTE));			break;		}//--------------------- OTHER KEY --------------------------		default:			break;    }}#endif//******************************************************************************/*$Log: FmKey.c,v $Revision 1.3  2007/04/30 03:31:29  zyz1、添加文件所有的头注释2、修改avi 模块中的if判断语句语句,将常量放在 “==” 之前3、修改部分头文件中“#undef”的位置4、将xvid_decoder.c开放到系统中5、删除程序中一些不必要的代码如CodecPowerOn()、MusicSetFreq51()、MusicSetFreq51Return()等6、修改avi Read_VideoData_ToBuf()函数,解决视频结束时可能出现的一些问题7、修改EncGLoable.h文件,增加Mp3Encodebss控制,解决SLC在录音时死机的问题,取消掉重复定义的   EncodeOutputBuffer[512]8、修改EncSchedule.c删除LINE_IN_MSADPCM_BUFFER[2048]定义,因为EncClobal.h里面对其已经有定义9、支持20国多国语言10、修改文本书签保存11、更新文件系统,MLC小文件提速12、修改中断服务程序,以确保由于调用中断程序而引起的一些问题13、修改Audio.c,解决音乐播放切换时可能出现的没有声音或噪音等问题**/

⌨️ 快捷键说明

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