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

📄 osdprgm.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	                //Alan2.37, fix the drawing UI slowly when playing CDDA in Anti-Shock#ifndef SUPPORT_ANTISHOCK    //Kevin1.00, fix the video hang/audio broken when invoking Program GUI    HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);#else                if (BOOK_CDDA != __wDiscType)                {                    HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);                }#endif    } //end of OSDPRGM_Display()//  *********************************************************************************//  Function    :   OSDPRGM_ProcessKey//  Description :   Process the input key while in DVD/VCD Program mode//  Arguments   :   bKey, the input key//  Return      :   KEY_NO_KEY  , the input key is processed//              :   INVALID_KEY , the input key is not allowed under this mode//              :   KEY_xxx     , main program needs to do more processing for the key.//  Side Effect ://  *********************************************************************************BYTE OSDPRGM_ProcessKey(BYTE bKey){	    //Kevin1.00, fix the video hang/audio broken when invoking Program GUI    HAL_PreFillBuffer(HAL_FILL_AV_BUFFER, NULL);		    switch (bKey)    {		///// Enter the following cases when in program mode /////    case KEY_UP:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06        _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL);#endif        _SetClearHighlight(CLEAR_HIGHLIGHT);		        if (_bCurrentFrame==MAIN_FRAME)        {               if (_bMainHighlightPos>1)                _bMainHighlightPos--;             else            {#ifdef SUPPORT_CLEARALL_IN_PROGRAM                if (_bMainStart>0)#else					if (_bMainStart>1)#endif					{   						_bMainStart--;						_ShowMainList(); 					}    #ifdef SUPPORT_CIRCULAR_WRAP //Kevin1.05, add          					else					{						_bMainStart=MAX_PROG_ITEM-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME+1;						_bMainHighlightPos = MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME; //highlight MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME. __-__ 						_ShowMainList(); 					}#endif            }                                        }        else if (_bCurrentFrame==TITLE_FRAME)        {               if (_bTitleHighlightPos>1)                _bTitleHighlightPos--;               else            {                   if (_bTitleStart>1)                {                       _bTitleStart--;                    _ShowTitleList();                 }      #ifdef SUPPORT_CIRCULAR_WRAP //Kevin1.05, add                else if (_bTotalTitle>MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME)                {                    _bTitleStart=_bTotalTitle-MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME+1;                    _bTitleHighlightPos = MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME;                     _ShowTitleList();                 }#endif            }						            if (__wDiscType & BOOK_DVD)             {            				// uncomment when DVD/VCD is in the loader                DVD_ParseInfo ( DVD_TOTAL_CHAPTERS, &__dwTemp, (WORD)(_bTitleStart+_bTitleHighlightPos-1) );                             _wTotalChapter = (WORD)__dwTemp;                           //_wTotalChapter=(_bTitleStart+_bTitleHighlightPos-1); //comment when DVD/VCD is in the loader								/*--CoCo1.21                _wChapterStart = 1;                _wChapterHighlightPos = 1;                _ShowChapterList();				*/				_OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code                _bCurrentFrame = TITLE_FRAME; /////highlight remains in the Title Frame                        }            #ifdef SUPPORT_SIMPLE_FM_PROGRAM //Kevin1.10            else if (__wDiscType & CDROM_M1)             {                            _wTotalChapter=__pwFMFilesOfDir[_bTitleStart+_bTitleHighlightPos-1-1]; //dir 0~ 				/*--CoCo1.21                _wChapterStart = 1;                _wChapterHighlightPos = 1;                _ShowChapterList();				*/				_OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code                _bCurrentFrame = TITLE_FRAME; /////highlight remains in the Title Frame                        } #endif        }                             else //CHAPTER_FRAME        {            if (_wChapterHighlightPos>1)                _wChapterHighlightPos--;               else            {                   if (_wChapterStart>1)                {                     _wChapterStart--;                    _ShowChapterList();                 }    #ifdef SUPPORT_CIRCULAR_WRAP //Kevin1.05, add                else if (_wTotalChapter>MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME)                {                    _wChapterStart=_wTotalChapter-MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME+1;                    _wChapterHighlightPos = MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME;                     _ShowChapterList();                 }#endif            }        }               _SetClearHighlight(SET_HIGHLIGHT);                __bKey=KEY_NO_KEY;        break;				    case KEY_DOWN:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06        _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL);#endif        _SetClearHighlight(CLEAR_HIGHLIGHT);		        if (_bCurrentFrame==MAIN_FRAME)        {            //Kevin1.23DMTech, move to a function            /*            if ((_bMainHighlightPos<MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME) && (_bMainStart+_bMainHighlightPos-1<MAX_PROG_ITEM) ) //change _bMainHighlightPos only                _bMainHighlightPos++;              else            {                   if ((_bMainStart+MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME-1)<MAX_PROG_ITEM)                {                       _bMainStart++;                    _ShowMainList();                                    }       #ifdef SUPPORT_CIRCULAR_WRAP //Kevin1.05, add                else                {#ifdef SUPPORT_CLEARALL_IN_PROGRAM                    _bMainStart = 0;                     _bMainHighlightPos = 2; //highlight 1. __-__  #else                    _bMainStart = 1;                     _bMainHighlightPos = 1; //highlight 1. __-__ #endif                     _ShowMainList();                 }#endif            }            */            _OSDPRGM_ProceedToNextMainEntry();        }                    else if (_bCurrentFrame==TITLE_FRAME)        {               //Kevin1.05-3, modify            //if ( (_bTitleHighlightPos<MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME) && (_bTitleHighlightPos<_bTotalTitle) )            if ( (_bTitleHighlightPos<MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME) && (_bTitleStart+_bTitleHighlightPos-1<_bTotalTitle) ) //change _bTitleHighlightPos only                _bTitleHighlightPos++;               else //change _bTitleStart            {                   if ((_bTitleStart+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME-1)<_bTotalTitle)                {                       _bTitleStart++;                    _ShowTitleList();                                    }         #ifdef SUPPORT_CIRCULAR_WRAP //Kevin1.05, add                //Kevin1.07a, consider _bTitleStart=5, _bTotalTitle=9                //else if (_bTitleStart>MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME)                else if (_bTitleStart!=1)                {					/*--CoCo1.21                    _bTitleStart=1;                    _bTitleHighlightPos=1;                    _ShowTitleList(); 					*/					_OSDPRGM_UpdateTitleList(); //CoCo1.21, use this function to replace the above code                }#endif            }			            if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD                       {            				//uncomment when DVD/VCD is in the loader                DVD_ParseInfo ( DVD_TOTAL_CHAPTERS, &__dwTemp, (WORD)(_bTitleStart+_bTitleHighlightPos-1) );                             _wTotalChapter = (WORD)__dwTemp;                           //_wTotalChapter=(_bTitleStart+_bTitleHighlightPos-1); //comment when DVD/VCD is in the loader								/*--CoCo1.21                _wChapterStart = 1;                _wChapterHighlightPos = 1;                _ShowChapterList();				*/				_OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code                _bCurrentFrame = TITLE_FRAME; /////highlight remains in the Title Frame            }   #ifdef SUPPORT_SIMPLE_FM_PROGRAM //Kevin1.10            else if (__wDiscType & CDROM_M1)             {                            _wTotalChapter=__pwFMFilesOfDir[_bTitleStart+_bTitleHighlightPos-1-1]; //dir 0~ 				/*--CoCo1.21                _wChapterStart = 1;                _wChapterHighlightPos = 1;                _ShowChapterList();				*/				_OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code                _bCurrentFrame = TITLE_FRAME; /////highlight remains in the Title Frame                        } #endif                                }                             else //CHAPTER_FRAME        {            //Kevin1.05-3, modify            //if ( (_wChapterHighlightPos<MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME) && (_wChapterHighlightPos<_wTotalChapter) )            if ( (_wChapterHighlightPos<MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME) && (_wChapterStart+_wChapterHighlightPos-1<_wTotalChapter) ) //change _wChapterHighlightPos only                _wChapterHighlightPos++;              else //change _wChapterStart            {                if ((_wChapterStart+MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME-1)<_wTotalChapter)                {                       _wChapterStart++;                    _ShowChapterList();                                 }    #ifdef SUPPORT_CIRCULAR_WRAP //Kevin1.05, add                //Kevin1.07a, consider _wChapterStart=5, _wTotalChapter=9                  //else if (_wChapterStart>MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME)                else if (_wChapterStart!=1)                {					/*--CoCo1.21                    _wChapterStart=1;                    _wChapterHighlightPos=1;                    _ShowChapterList(); 					*/					_OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code                }  #endif                            }        }       		        _SetClearHighlight(SET_HIGHLIGHT);                __bKey=KEY_NO_KEY;        break;						//Kevin1.05-3, page down    case KEY_NEXT:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06        _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL);#endif        _SetClearHighlight(CLEAR_HIGHLIGHT);		        if (_bCurrentFrame==MAIN_FRAME)        {               //if (_bMainStart+_bMainHighlightPos-1+2*MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME-_bMainHighlightPos<=MAX_PROG_ITEM) //scroll down a whole page            if (_bMainStart-1+2*MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME<=MAX_PROG_ITEM) //scroll down a whole page            {                 _bMainStart+=MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME;                 //_bMainHighlightPos remains the same                _ShowMainList();            }            else if (_bMainStart+_bMainHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME<=MAX_PROG_ITEM) //scroll down not a whole page            {                   //__bTemp=_bMainStart+_bMainHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME; //--CoCo1.21                _bMainStart=MAX_PROG_ITEM-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME+1;                //_bMainHighlightPos = __bTemp-_bMainStart+1;   //--CoCo1.21		_bMainHighlightPos = _bMainStart+_bMainHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME-_bMainStart+1;				                _ShowMainList();            }             else if (_bMainStart+MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME-1<MAX_PROG_ITEM) //scroll down not a whole page            {                _bMainStart=MAX_PROG_ITEM-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME+1;                _bMainHighlightPos =MAX_PROG_ITEM-_bMainStart+1;   //last one                _ShowMainList();            } #ifdef SUPPORT_CIRCULAR_WRAP             //else if (_bMainStart>=MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME)#ifdef SUPPORT_CLEARALL_IN_PROGRAM            else if (_bMainStart!=0) //avoid unnecessary redraw            {                _bMainStart = 0;                 _bMainHighlightPos = 2; //highlight 1. __-__  #else				else if (_bMainStart!=1) //avoid unnecessary redraw				{					_bMainStart = 1; 					_bMainHighlightPos = 1; //highlight 1. __-__ #endif 					_ShowMainList();				}#endif							}            			else if (_bCurrentFrame==TITLE_FRAME)			{   				//if (_bTitleStart+_bTitleHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME-_bTitleHighlightPos<=_bTotalTitle) //scroll down a whole page				if (_bTitleStart-1+2*MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME<=_bTotalTitle) //scroll down a whole page				{ 					_bTitleStart+=MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME; 

⌨️ 快捷键说明

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