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

📄 panel.~c

📁 ct952 source code use for Digital Frame Photo
💻 ~C
📖 第 1 页 / 共 3 页
字号:
//  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 + -