📄 fmkey.c
字号:
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 + -