UiPlayMenu2.c
资源名称:SDK_M5661.rar [点击查看]
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:12k
源码类别:
压缩解压
开发平台:
C++ Builder
- /*==========================================================================
- Copyright (c) 2004 ALi Corporation. All Rights Reserved
- File: UiPlayMenu2.h
- content: rec menu in playback module
- History: Created by TNE 2005/6/6
- ==========================================================================*/
- #define _UI_MENU_H_
- #include <DP8051XP.H>
- #include "TypeDef.h"
- #include "Const.h"
- #include "Reg5661.h"
- #include "Common.h"
- #include "UiCommon.h"
- #include "SysStrDef.h"
- #include "UiSysStr.h"
- #include "OledString.h"
- #include "Key.h"
- #include "SaveSetting.h"
- #include "Playback.h"
- #include "NandFlash.h"
- #include "Idma.h"
- #include "FileSystem.h"
- #include "ExtCodec.h"
- #include "IntCodec.h"
- #include "UiPlayCommon.h"
- #include "UiFileList.h"
- #include "UiPlayMenu2.h"
- #include "IconDefine.h"
- #include "OLED.h"
- void UiErrHandle(void) large;
- void UiShowMusicMenuText(void) large;
- void UiEnterMenuItem(void) large;
- void UiBackMenuItem(void) large;
- void UiRecMenuEnter(void) large;
- void UiFromMenuEnter(void) large;
- void UiQtyMenuEnter(void) large;
- void UiVadMenuEnter(void) large;
- void UiWorkBackMenu(void) large;
- void UiAgcMenuEnter(void) large; //tne 2006/01/16
- void UiRecMenuDispCtrl(BYTE gxbPeDispCmd); //Walace060606#PlayProcess
- code CWORD *pcbMenuListStr[]=
- {
- cwStringRecList,
- cwStringRecSrcList,
- 0, //Quality //dummy
- cwStringOffOnList, //VAD
- cwStringOffOnList, //AGC //tne 2006/01/16
- };
- CBYTE cbMenuMaxItemNum[]=
- {
- MENU_REC_MAX_ITEM_NUM,
- MENU_REC_SRC_MAX_ITEM_NUM,
- MENU_REC_QTY_MAX_ITEM_NUM, //Dummy
- MENU_REC_VAD_MAX_ITEM_NUM,
- MENU_REC_AGC_MAX_ITEM_NUM, //tne 2006/01/16
- };
- CBYTE cbMenuTitleStr[]=
- {
- SYS_STR_MENU,
- SYS_STR_MENU_REC_SOURCE,
- SYS_STR_MENU_REC_QUALITY,
- SYS_STR_MENU_REC_VAD,
- SYS_STR_MENU_REC_AGC, //tne 2006/01/16
- };
- ////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////// Ui Header End ///////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////
- void main(void)
- {
- BYTE bKey,bPeCommand;
- //Walace060607#1 PlayProcess
- if((gxbModuleState&MODULE_SUB)==MODULE_PRC_EOF_CTRL)
- KeepMemory(RESTORE_MEMORY);
- SetSysSpeed(0x08);
- bPeCommand=P_NOP;
- EA = 1;
- bKey=KEY_INVALID;
- #if(ICE_REAL_MODE) //vicky061001#2 Debug Play
- EnableTimer0();
- IE=0x83;
- #endif
- #if(_PM_PLAY_)
- PeFillDspBuf() ;
- #endif
- //Walace060607#1 PlayProcess
- if((gxbModuleState&MODULE_SUB)==MODULE_PRC_EOF_CTRL)
- {
- gxbModuleState=MODULE_REC_MENU;
- goto ERROR_HANDLE;
- }
- //NandRestore start
- if((gxbModuleState&MODULE_SUB)==MODULE_NAND_RTN_RESOTRE) //Nick061120
- {
- gxbModuleState=MODULE_REC_MENU;
- goto RETURN_FROM_NANDRESTORE;
- }
- //NandRestore end
- gxbModuleState=MODULE_REC_MENU;
- OLED_DISP_MASK_INIT();
- gxfSourceUnicode=STRING_TYPE_ASCII;
- gxbCheckBattCounter=0;
- gxbBtyReTestNum=0;
- gxbBtyLowNum=0;
- gxbPwOffCounter=0;
- gpstFileIndex=&stFsFileInf;
- gxbLcdLimitCol=MAX_COLNUM;
- #if(SYS_USE_KEY_HOLD)
- gfLastKeyLocked=KEY_UNLOCK;
- #endif
- UiFileListFileType=UI_FILE_LIST_PLAYBACK;
- gfPwOffStop=FALSE;
- #if(UI_USE_CHK_CARD)
- if(gxbStorage!=STOR_NAND)
- UiCheckCardRemoved();
- #endif
- UiDrawBasicMusicMenu();
- UiShowMusicMenuText();
- goto ERROR_HANDLE;
- while(1)
- {
- KeyGet(bKey);
- UiCheckBackLight(bKey);
- UiNormalCheck();
- #if(USE_LYRIC_DISPLAY)
- UiPlayLyricControl();
- #endif
- bPeCommand=P_NOP;
- #if(!EXT_ADC | !EXT_DAC | !EXT_PA)
- if(gxbMusicProcState==MUSIC_PROC_BODY) //Renshuo050603#A
- {
- //IntCdcSetPaGainTask(FALSE); //Renshuo041203#A //Ren050312#1
- CdcSetPaGainTask(PA_TASK_UNIMMEDIATE|PA_TASK_DELAY); //Walace060525#4 //tne 2006/12/26 #1
- }
- #endif
- switch(bKey)
- {
- case KEY_LEFT_LONG:
- case KEY_LEFT_BREAK:
- UiPrevMenuItem();
- break;
- case KEY_RIGHT_LONG:
- case KEY_RIGHT_BREAK:
- UiNextMenuItem();
- break;
- case KEY_UP_BREAK:
- UiEnterMenuItem();
- break;
- case KEY_FUNC_BREAK:
- case KEY_MODE_BREAK:
- UiBackMenuItem();
- break;
- }
- #if(PLAY_ERR_THEN_NEXT_MUSIC) //Walace061024#2
- EOF_CTRL_PROC:
- #endif
- //End of file control
- #include "EOF_Ctrl.h"
- gpstFileIndex=&stFsFileInf; //Vicky050321#2
- PlayEngine(bPeCommand);
- ERROR_HANDLE:
- if(gxbErrCode!=ERR_NO_ERROR)
- {
- #if(PLAY_ERR_THEN_NEXT_MUSIC) //Walace061024#2
- if(gxbErrCode==ERR_PE_UNSUPPORT_FORMAT||gxbErrCode==ERR_PE_NO_AUTHORITY)
- {
- bPeCommand=P_NEXT;
- gxbErrCode = ERR_NO_ERROR;
- goto EOF_CTRL_PROC;
- }
- else
- {
- PlayEngine(P_STOP); //Walace061024#2
- }
- #else
- PlayEngine(P_STOP); //Walace061024#2
- #endif
- }
- UiRecMenuDispCtrl(gxbPeDispCmd);
- gxbPeDispCmd=UI_PE_NOP;
- #if(1)
- //vicky070105#3 remove to function
- UiCheckNandRestore(MODULE_REC_MENU);
- #else
- //Nick061120 start //Walace061126#1 start
- if((gxbRestoreBlkNum || (gxwTimeToScanPM > SCAN_PM_DURATION)) &&
- (gfChangeMusic || gxbSysState==S_PE_PAUSE||gxbSysState==S_PE_WAIT)&&gfMLCMode) //Nick061204
- {
- //LCD_CTRL_DIS();
- gxbModuleState=MODULE_REC_MENU;
- //Nick061204 start
- if(gxwTimeToScanPM > SCAN_PM_DURATION)
- gxbRestoreCMD |= PM_SCAN;
- else
- gxbRestoreCMD = FullStep;
- //Nick061204 end
- KeepMemory(KEEP_MEMORY) ;
- LoadProgram(PM_PLAY_DATA_RTN_RESTORE, BASIC_CODE_ONLY);
- }
- #endif
- RETURN_FROM_NANDRESTORE:
- //Nick061120 end //Walace061126#1 end
- if(gfChangeMusic)
- {
- gxdwLastFileSize=0;
- if( (gxbIntroMode) && (gfIntroPlaying!=INTRO_PLAY) )
- {
- UiGoIntroMode();
- UiGoNoMenu();
- }
- gfChangeMusic=FALSE;
- }
- }
- }
- API void UiFsDispCtrl(BYTE bStatus) large //tne play 320 music
- {
- switch(bStatus)
- {
- default:
- case UI_FS_OPENING_FILE:
- //PeFillDspBuf(); //not need
- break;
- }
- }
- //Walace060606#1 PlayProcess
- API void UiRecMenuDispCtrl(BYTE bStatus)
- {
- #if(USE_ERR_MSG_DISPLAY)
- if(gxbErrCode!=ERR_NO_ERROR)
- {
- UiErrHandle();
- return;
- }
- #endif
- }
- #if(0) //Walace060606#1 PlayProcess
- API void UiDispCtrl(BYTE bStatus)
- {
- //#if(!_PM_DVR_) //tne 2006/01/16
- WORD wDspVal=gxbUiMenuSubStates;
- //#endif //tne 2006/01/16
- #if(USE_ERR_MSG_DISPLAY)
- if(gxbErrCode!=ERR_NO_ERROR)
- {
- UiErrHandle();
- return;
- }
- #endif
- if(bStatus==UI_PE_START_END)
- {
- gxbLastErrCode=ERR_NO_ERROR;
- //UiCountCurtFileNum(&stUiFileListData,&stFsFileInf);
- //Walace060127#2 start
- /*
- #if(!UI_EQ_CUSTOM) // Jeff_051116
- IdmaPioDmxW(&gxwEqMode,DSP_EQ_ADDR,1,DSP_W16);
- #else
- UiSetEqGain();
- #endif
- //chun_chi 060105
- #if(UI_USE_USER_EQ)
- if(gxwEqMode==EQ_USER)
- UiSetEqGain(EQ_USER);
- #endif
- IdmaPioDmxW(&gxw3DMode,DSP_3D_ADDR,1,DSP_W16);
- */
- IdmaPioDmxW(&gxw3DMode,DSP_3D_ADDR,1,DSP_W16);
- UiSetEqGain(gxwEqMode);
- //Walace060127#2 end
- #if(USE_LYRIC_DISPLAY)
- gxbLcdLyricStatus=LCD_LYRIC_SCROLL_DONE; // set done to show first lyric
- gxbLastLyrcBuf[1]=0; //tne 2005/08/11
- #endif
- gxwCurrentPlayTime=0; //set 0 for intro mode
- //gxdwCurrentLrcTime=0; //tne 2006/02/10 #1 //Walace060226#remove
- gfFillDspBufEn=TRUE;
- }
- else if(bStatus==UI_PE_START_START) //tne 2005/08/10
- {
- LoadExtendMemCode();
- gfFillDspBufEn=FALSE;
- UiCountCurtFileNum(&stUiFileListData,&stFsFileInf);
- #if(UI_DISP_DIR_NAME)
- UiGetCurtDirName();
- #endif
- }
- else if(bStatus==UI_PE_STOP)
- {
- if(!gfPwOffStop) //tne 2005/11/21 #2
- {
- UiRndPlayInit();
- gxwCurrentPlayTime=0;
- //gxdwCurrentLrcTime=0; //tne 2006/02/10 #1 //Walace060226#remove
- }
- }
- }
- #endif
- void UiErrHandle(void) large
- {
- #if(USE_ERR_MSG_DISPLAY)
- if(gxbErrCode!=ERR_NO_ERROR)
- gxbLastErrCode=gxbErrCode;
- #endif
- }
- void UiShowMusicMenuText(void) large
- {
- if(gxbUiMenuMainStates==UI_QTY_MENU)
- {
- UiGoRecQtyMenu();
- }
- else
- {
- // tne 2006/12/05 #2 //start
- UiShowSubMenuNum(gxbUiMenuSubStates+1,cbMenuMaxItemNum[gxbUiMenuMainStates-MUSIC_MENU_MAIN_START_NUM]);
- UI_SHOW_MENU_TAG_STRING(pcbMenuListStr[gxbUiMenuMainStates-MUSIC_MENU_MAIN_START_NUM][gxbUiMenuSubStates]);
- UI_SHOW_MENU_TITLE_STRING(cbMenuTitleStr[gxbUiMenuMainStates-MUSIC_MENU_MAIN_START_NUM]);
- // tne 2006/12/05 #2 //end
- }
- }
- void UiEnterMenuItem(void) large
- {
- switch(gxbUiMenuMainStates)
- {
- case UI_REC_MENU:
- UiRecMenuEnter();
- return;
- case UI_FROM_MENU:
- UiFromMenuEnter();
- break;
- case UI_QTY_MENU:
- UiQtyMenuEnter();
- break;
- case UI_VAD_MENU:
- UiVadMenuEnter();
- break;
- case UI_AGC_MENU:
- UiAgcMenuEnter();
- break;
- }
- UiGoNoMenu();
- }
- void UiBackMenuItem(void) large
- {
- UiWorkBackMenu();
- //if(gxbUiMenuMainStates==UI_QTY_MENU)
- // UiDrawBasicMusicMenu();
- gxbUiMenuMainStates=UI_REC_MENU;
- UiShowMusicMenuText();
- }
- void UiWorkBackMenu(void) large
- {
- switch(gxbUiMenuMainStates)
- {
- case UI_REC_MENU:
- UiGoNoMenu();
- break;
- case UI_FROM_MENU:
- gxbUiMenuSubStates=UI_REC_FROM_MENU;
- break;
- case UI_QTY_MENU:
- UiDrawBasicMusicMenu();
- gxbUiMenuSubStates=UI_REC_QTY_MENU;
- break;
- case UI_VAD_MENU:
- gxbUiMenuSubStates=UI_REC_VAD_MENU;
- break;
- case UI_AGC_MENU:
- gxbUiMenuSubStates=UI_REC_AGC_MENU;
- break;
- }
- }
- void UiRecMenuEnter(void) large
- {
- switch(gxbUiMenuSubStates)
- {
- case UI_REC_FROM_MENU:
- gxbUiMenuMainStates=UI_FROM_MENU;
- gxbUiMenuSubStates=gxbRecSource;
- break;
- case UI_REC_QTY_MENU:
- #if(UI_USE_LINE_REC_QTY)
- //Walace060914#1 start
- //OledClearArea(SEG4,LINE0,SEG5,LINE1);//LcdClearBlock(0,32,2,72);
- //OledClearArea(SEG0,LINE1,OLED_MAX_COL-SEG0,LINE3);//LcdClearBlock(2,0,6,MAX_COLNUM+1);
- OledClearArea(SEG0,UI_MENU_FRAME_ROW,OLED_MAX_COL-SEG0,OLED_MAX_ROW-UI_MENU_FRAME_ROW);//LcdClearBlock(2,0,6,MAX_COLNUM+1);
- //Walace060914#1 end
- StrShowSysString(SYS_STR_MENU_REC_QUALITY,SEG2,PAGE0);
- //if(UI_USE_PROGRESS_BAR) //Walace060831#5
- //ShowProgress(11,PAGE6,((WORD)(gxbUiMenuSubStates+1)*PROGRESS_MAX)/(UI_QTY_MAX+1));
- //endif
- #else
- UiDrawSubMenu(SYS_STR_MENU_REC_QUALITY);
- #endif
- gxbUiMenuSubStates=gxbRecQuality;
- gxbUiMenuMainStates=UI_QTY_MENU;
- UiGoRecQtyMenu();
- break;
- case UI_REC_VAD_MENU:
- gxbUiMenuMainStates=UI_VAD_MENU;
- gxbUiMenuSubStates = (gxbRecOption & REC_VAD_EN_MODE)/REC_VAD_EN_MODE; //tne 2006/01/16
- break;
- case UI_REC_AGC_MENU: //tne 2006/01/16
- gxbUiMenuMainStates=UI_AGC_MENU;
- gxbUiMenuSubStates = (gxbRecOption & REC_AGC_EN_MODE)/REC_AGC_EN_MODE;
- break;
- }
- UiShowMusicMenuText();
- }
- void UiFromMenuEnter(void) large
- {
- gxbRecSource=gxbUiMenuSubStates;
- }
- void UiQtyMenuEnter(void) large
- {
- gxbRecQuality=gxbUiMenuSubStates;
- }
- void UiVadMenuEnter(void) large
- {
- //tne 2006/01/16
- if(gxbUiMenuSubStates)
- gxbRecOption |= REC_VAD_EN_MODE;
- else
- gxbRecOption &= (~REC_VAD_EN_MODE);
- }
- //tne 2006/01/16
- void UiAgcMenuEnter(void) large
- {
- if(gxbUiMenuSubStates)
- gxbRecOption |= REC_AGC_EN_MODE;
- else
- gxbRecOption &= (~REC_AGC_EN_MODE);
- }
- void UiGoNoMenu(void)
- {
- DetermineDspClock(gxbPlaybackRate,gxw3DMode); //Vicky060303#1
- PeFillDspBuf();
- //speed up to download code
- SetSysSpeed(0x02);
- gxbModuleState=MODULE_PLAY_MENU; //Walace060607#1 PlayProcess
- LoadProgram(PM_PLAY_DVR,BASIC_CODE_ONLY);
- }
English
