📄 panel.~c
字号:
// Function : PANEL_Output// Abstract : Display the information according to bMessage and wParam.// Arguments : bMessage : Specifies the behavior of panel display.// wParam : some bMessage use it !!// Return : none// Side Effect :// ***************************************************************************//#pragma NOAREGSvoid PANEL_Output(BYTE bMessage, WORD wParam){#ifndef NO_PANEL#ifdef USE_VFD_CTRL BYTE File_num_temp; WORD File_type_temp; __bMessage_Now=bMessage; if (PREV_MSG != bMessage) { shift_letter=0; PREV_MSG=bMessage; } // extern BYTE __bTitle; // extern WORD __wChapter; //LJY1.20, support 4M flash, remove digest /*#ifndef NO_DIGEST extern BYTE __bTrackNO;#endif*/ // extern BYTE __bPageNO; // extern BYTE __bSetupMode; // extern BYTE _bOSDAppMode;#ifdef SHOW_LOADING_STATUS // don't clear all LED light if ( (bMessage==MSG_WAITING) && (wParam == OSD_SERVO_STABLE) ) { for(_bPanelTemp1=0;_bPanelTemp1<VFD_GRID_ARRAY;_bPanelTemp1++) _bDisplayRam[_bPanelTemp1] = 0x00; } else#endif { for(_bPanelTemp1=0;_bPanelTemp1<VFD_GRID_ARRAY;_bPanelTemp1++) _bDisplayRam[_bPanelTemp1] = 0x00;#ifdef LIGHT_LED _bLedData = 0xFF;#endif } if((__wDiscType & BOOK_SVCD)||(__wDiscType & BOOK_CVD)||(__wDiscType & BOOK_VCD)) { if(__wPlayItem > 999) { for (i=0;i<10;i++) _bLettArray_O[i]=0; Message_length=2; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_P; _bLettArray_O[1] = LETT_b; _bLettArray_O[2] = LETT_C; } } if((bMessage == MSG_OPEN)||(bMessage == MSG_STOP)) { __bSearchMode = 0; // System will clear __bSearchMode while do KEY_OPEN or KEY_STOP action } if(__btInputProgram) // Show program message: { //for DVD program Sunny 1.00b _Show_Program_Message(); // like: P 01 008 } if(__bSearchMode) // DVD search two mode show { // 1. Title Chapter Search _Show_Search_Message(); // 2. GotoTime Search } //alex1.23,20040218 combine gototime , search,bookmark //Remvoe __btGoToTime , use bSearchMode in Pancel Output /**********************************************************************/ else if(__bSearchMode==SEARCH_MODE_TIME) // CD/VCD/SVCD goto time show /**********************************************************************/ { _Show_GotoTime_Message(); } else { for (i=0;i<10;i++) _bLettArray_O[i]=0; switch(bMessage) // Show LETTER message { // like StOP,LOAD dISC,PLAY, OPEN case MSG_OPEN: // NO dISC if(wParam) { Message_length=3; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_O; _bLettArray_O[1] = LETT_P; _bLettArray_O[2] = LETT_E; _bLettArray_O[3] = LETT_N; } break; case MSG_WAITING: Message_length=3; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_L; _bLettArray_O[1] = LETT_O; _bLettArray_O[2] = LETT_A; _bLettArray_O[3] = LETT_d; break; case MSG_DISCTYPE: if(__wDiscType == NO_DISC_IN_DRIVE) { Message_length=6; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_N; _bLettArray_O[1] = LETT_O; _bLettArray_O[2] = 0; _bLettArray_O[3] = LETT_d; _bLettArray_O[4] = LETT_I; _bLettArray_O[5] = LETT_S; _bLettArray_O[6] = LETT_C; } break; case MSG_STOP: if(__bCountStop == 1 ) { Message_length=5; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_P; _bLettArray_O[1] = LETT_DASH; _bLettArray_O[2] = LETT_S; _bLettArray_O[3] = LETT_t; _bLettArray_O[4] = LETT_O; _bLettArray_O[5] = LETT_P; } else { Message_length=3; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_S; _bLettArray_O[1] = LETT_t; _bLettArray_O[2] = LETT_O; _bLettArray_O[3] = LETT_P; _bLettArray_O[4] = 0; _bLettArray_O[5] = 0; } break; case MSG_PLAYING: if( _bLettArray!= _bLettTimeMessage) { Message_length=3; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_P; _bLettArray_O[1] = LETT_L; _bLettArray_O[2] = LETT_A; _bLettArray_O[3] = LETT_Y; } break; // case MSG_AUTOUPGRADE: // _bLettArray = aMessageUpgrade; // break; /*#ifndef NO_DIGEST case MSG_DIGESTNUMBER:_bLettArray = _bLettTimeMessage;_bLettArray[0] = 0;_bLettArray[1] = 0;if(__bPageNO){_bLettArray[2] = 0;if(__wDiscType & VCD_2_0){_bLettArray[3] = aNumMap[__bTrackNO-__bPageNO *9 -1];}else{_bLettArray[3] = aNumMap[__bTrackNO-__bPageNO];}}else{if(__wDiscType & VCD_2_0){_bLettArray[2] = aNumMap[(__bTrackNO -1)/10];_bLettArray[3] = aNumMap[(__bTrackNO-1)%10];}else{_bLettArray[2] = aNumMap[__bTrackNO/10];_bLettArray[3] = aNumMap[__bTrackNO%10];}}_bLettArray[4] = 0;break;#endif */ }}/* if(_bOSDAppMode == OSD_APPMODE_SETUP) { if(!_bSetupMenu) { _bSetupMenu = 1; if(_bLettArray == aMessageOpen) _bSetupMenu = 2; else if(_bLettArray == aMessageNoDisc) _bSetupMenu = 3; _bLettArray = aMessageSetup; if(_bSetupMenu > 1) { _LETT_To_DisplayRam(); goto HARDWARE_CTRL; } } } OSD_APPMODE_SETUP *//* if(_bSetupMenu) { if(__bModeCmd == KEY_STOP) { switch(_bSetupMenu) { case 1: Message_length=5; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = 0; _bLettArray_O[1] = 0; _bLettArray_O[2] = LETT_S; _bLettArray_O[3] = LETT_t; _bLettArray_O[4] = LETT_O; _bLettArray_O[5] = LETT_P; break; case 2: Message_length=5; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = 0; _bLettArray_O[1] = 0; _bLettArray_O[2] = LETT_O; _bLettArray_O[3] = LETT_P; _bLettArray_O[4] = LETT_E; _bLettArray_O[5] = LETT_N; break; case 3: Message_length=8; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = 0; _bLettArray_O[1] = 0; _bLettArray_O[2] = LETT_N; _bLettArray_O[3] = LETT_O; _bLettArray_O[4] = 0; _bLettArray_O[5] = LETT_d; _bLettArray_O[6] = LETT_I; _bLettArray_O[7] = LETT_S; _bLettArray_O[8] = LETT_C; break; } } _bSetupMenu = 0; } */// Micky2.79, tune the usage of __bCountStop, don't reference DOUBLE_STOP// Only DOUBLE_STOP is defined, the value will be 1(pre-stop)if ((__wDiscType & CDROM_M1)&&(__bMMMenuID != MM_MENU_NONE)){ if ((__MMSelectCursor.bPosition==POS_FILE_LIST) && (__MMSelectCursor.wIndex>=__pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir)) { Message_length=2; File_num_temp=__MMSelectCursor.wIndex-__pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir+1; _bLettArray_O[0] = aNumMap[File_num_temp/100]; File_num_temp = File_num_temp % 100; _bLettArray_O[1] = aNumMap[File_num_temp/10]; File_num_temp = File_num_temp % 10; _bLettArray_O[2] = aNumMap[File_num_temp]; File_type_temp=__pMMFileRecordStart[MM_ID_RelativeToAbsolute(__MMSelectCursor.wDirID, __MMSelectCursor.wIndex-__pMMVolumeDirTree[__MMSelectCursor.wDirID].bNoOfSubDir)].FileName.bExtID; if(File_type_temp == EXTNAME_MP3) { _bDisplayRam[VFD_MP3_ADDR] |= VFD_MP3; } /* else if(File_type_temp == EXTNAME_VOB||File_type_temp == EXTNAME_AVI) { _bDisplayRam[VFD_JPEG_ADDR] |= VFD_DVD; } else if(File_type_temp == EXTNAME_MPG||File_type_temp == EXTNAME_DAT) { _bDisplayRam[VFD_JPEG_ADDR] |= VFD_VCD; }*/ else if(File_type_temp == EXTNAME_JPG) { _bDisplayRam[VFD_JPEG_ADDR] |= VFD_JPEG; } } else { if (__SF_SourceGBL[__dwSFStreamID].bSourceIndex == SOURCE_USB0_0) { for (i=0;i<10;i++) _bLettArray_O[i]=0; Message_length=2; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_U; _bLettArray_O[1] = LETT_S; _bLettArray_O[2] = LETT_b; } else { for (i=0;i<10;i++) _bLettArray_O[i]=0; Message_length=3; _bLettArray = _bLettTimeMessage; _bLettArray_O[0] = LETT_F; _bLettArray_O[1] = LETT_I; _bLettArray_O[2] = LETT_L; _bLettArray_O[3] = LETT_E; } } } // Micky.051 for debugging usage ...if(bMessage==MSG_VERSION){ _bLettArray = _bLettTimeMessage; _bLettArray[4] = aNumMap[wParam%10]; wParam/=10; _bLettArray[3] = aNumMap[wParam%10]; wParam/=10; _bLettArray[2] = aNumMap[wParam%10]; wParam/=10; _bLettArray[1] = aNumMap[wParam%10]; wParam/=10; _bLettArray[0] = aNumMap[wParam%10];}// Sunny add for 1.02Aif(bMessage == MSG_ERRCODE){ _bLettArray = _bLettTimeMessage; _bLettArray[4] = aNumMap[wParam%10]; wParam/=10; _bLettArray[3] = aNumMap[wParam%10]; wParam/=10; _bLettArray[2] = aNumMap[wParam%10]; wParam/=10; _bLettArray[1] = aNumMap[wParam%10]; wParam/=10; _bLettArray[0] = aNumMap[wParam%10];}//PANEL_Trigger(0); #endif // #ifdef USE_VFD_CTRL #endif // ifndef NO_PANEL}//////////////////////////// Private functions /////////////////////////#ifndef NO_PANEL#ifdef USE_VFD_CTRLvoid _OutByteVFD(BYTE bByte){ for (_bPanelTemp1 = 0; _bPanelTemp1 < 8; _bPanelTemp1++) { _VFD_SCK_LO; if (bByte & 0x01) { _VFD_SDA_HI; } else { _VFD_SDA_LO; } _VFD_SCK_HI; bByte >>= 1; }}void _Hardware_CTRL(void){ if (__btPowerDown) { _bDisplayRam[VFD_LED_ADDR] = VFD_LED0; } else { _bDisplayRam[VFD_LED_ADDR] = VFD_LED1; } __icVFDnow = 0x01; HAL_I2CSrc_Ctrl(MUTEX_ACTION_LOCK); _VFD_CS_LO; _OutByteVFD(SETCOMMAND_WRITEDISPLAY); // Command 2 _VFD_CS_HI; for (_bPanelTemp1 = 0; _bPanelTemp1 < 4; _bPanelTemp1++){} _VFD_CS_LO; _OutByteVFD(SET_ADDRESS); // Command 3 for (_bPanelTemp2 = 0; _bPanelTemp2 < VFD_GRID_ARRAY; _bPanelTemp2++) _OutByteVFD(_bDisplayRam[_bPanelTemp2]); _VFD_CS_HI; for (_bPanelTemp1 = 0; _bPanelTemp1 < 4; _bPanelTemp1++){} _VFD_CS_LO; _OutByteVFD(VFD_DISP_MODE); // Command 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -