📄 osdprgm.c
字号:
_OSDPRGM_UpdateChapterList(); _bCurrentFrame = TITLE_FRAME; } else { _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_MAIN_COLOR_BG; _OSDPRGM_FillRect(CHAPTER_FRAME_X0, CHAPTER_FRAME_Y0-1-ARROW_HEIGHT, CHAPTER_FRAME_X1, CHAPTER_FRAME_Y1+1+ARROW_HEIGHT); //CoCo1.20, reduce code size. } } } else if (_bCurrentFrame==CHAPTER_FRAME) //CHAPTER_FRAME { _SetClearHighlight(CLEAR_HIGHLIGHT); if (_wChapterHighlightPos>1) _wChapterHighlightPos--; else { if (_wChapterStart>1) { _wChapterStart--; _ShowChapterList(); } else { _bCurrentFrame = CHAPTER_INPUT; } } } _SetClearHighlight(SET_HIGHLIGHT); bKeyStatus =KEY_NO_KEY; break; case KEY_DOWN:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06 _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);#endif _SetClearHighlight(CLEAR_HIGHLIGHT); if (_bCurrentFrame==MAIN_FRAME) { _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0); _OSDPRGM_ProceedToNextMainEntry(); } else if (_bCurrentFrame==TITLE_INPUT) { _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0); _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG); if (!(_bMainStart+_bMainHighlightPos-1)) { //do nothing } else { #ifndef SUPPORT_PRGM_NUM_INPUT if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD { _SetClearHighlight(CLEAR_HIGHLIGHT); _bCurrentFrame = TITLE_FRAME; _SetClearHighlight(SET_HIGHLIGHT); if (_bCurrentFrame == TITLE_FRAME ) { DVD_ParseInfo(DVD_TOTAL_CHAPTERS, &__dwTemp, (WORD)(_bTitleStart+_bTitleHighlightPos-1) ); _wTotalChapter = __dwTemp; _ShowChapterList(); } }#else //#ifndef SUPPORT_PRGM_NUM_INPUT __wNumberQueue = 0; //clear _SetClearHighlight(CLEAR_HIGHLIGHT); _bCurrentFrame = TITLE_FRAME; _SetClearHighlight(SET_HIGHLIGHT); if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD { DVD_ParseInfo ( DVD_TOTAL_CHAPTERS, &__dwTemp, (WORD)(_bTitleStart+_bTitleHighlightPos-1) ); _wTotalChapter = (WORD)__dwTemp; _ShowChapterList(); _bCurrentFrame = TITLE_FRAME; /////highlight remains in Title Frame }#endif } } else if (_bCurrentFrame==TITLE_FRAME) { 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(); } } 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; _OSDPRGM_UpdateChapterList(); _bCurrentFrame = TITLE_FRAME; /////highlight remains in the Title Frame } } else if (_bCurrentFrame==CHAPTER_INPUT) { _SetClearHighlight(CLEAR_HIGHLIGHT); _bCurrentFrame = CHAPTER_FRAME; _SetClearHighlight(SET_HIGHLIGHT); } else //CHAPTER_FRAME { 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(); } } } _SetClearHighlight(SET_HIGHLIGHT); bKeyStatus = 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_0); _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0);#endif _SetClearHighlight(CLEAR_HIGHLIGHT); if (_bCurrentFrame==MAIN_FRAME) { _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0); 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 _bMainStart=MAX_PROG_ITEM-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME+1; // _bMainHighlightPos remains the same //_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 remains the same //_bMainHighlightPos =MAX_PROG_ITEM-_bMainStart+1; //last one _ShowMainList(); } } else if (_bCurrentFrame==TITLE_FRAME) { 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; //_bTitleHighlightPos remains the same _ShowTitleList(); } else if (_bTitleStart+_bTitleHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME<=_bTotalTitle) { //scroll down not a whole page _bTitleStart=_bTotalTitle-MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME+1; // Alan, don't change position //_bTitleHighlightPos = _bTitleStart+_bTitleHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME-_bTitleStart+1; _ShowTitleList(); } else if (_bTitleStart+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME-1<_bTotalTitle) { //scroll down not a whole page _bTitleStart=_bTotalTitle-MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME+1; _bTitleHighlightPos =_bTotalTitle-_bTitleStart+1; //last one _ShowTitleList(); } 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; _OSDPRGM_UpdateChapterList(); _bCurrentFrame = TITLE_FRAME; /////highlight remains in the Title Frame } } else //CHAPTER_FRAME { if (_wChapterStart-1+2*MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME<=_wTotalChapter) { //scroll down a whole page _wChapterStart+=MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME; //_wChapterHighlightPos remains the same _ShowChapterList(); } else if (_wChapterStart+_wChapterHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME<=_wTotalChapter) { //scroll down not a whole page _wChapterStart=_wTotalChapter-MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME+1; //_wChapterHighlightPos remains the same //_wChapterHighlightPos = _wChapterStart+_wChapterHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME-_wChapterStart+1; _ShowChapterList(); } else if (_wChapterStart+MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME-1<_wTotalChapter) { //scroll down not a whole page _wChapterStart=_wTotalChapter-MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME+1; _wChapterHighlightPos =_wTotalChapter-_wChapterStart+1; //last one _ShowChapterList(); } } _SetClearHighlight(SET_HIGHLIGHT); bKeyStatus = KEY_NO_KEY; break; //Kevin1.05-3, page up case KEY_PREV:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06 _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);#endif _SetClearHighlight(CLEAR_HIGHLIGHT); if (_bCurrentFrame==MAIN_FRAME) { _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0); if (_bMainStart>MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME) //scroll up 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) { //scroll down not a whole page#ifdef SUPPORT_CLEARALL_IN_PROGRAM _bMainStart=0;#else _bMainStart=1;#endif //_bMainHighlightPos remains the same// _bMainHighlightPos = _bMainStart+_bMainHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME; _ShowMainList(); } else if (_bMainStart!=1) { //scroll down not a whole page#ifdef SUPPORT_CLEARALL_IN_PROGRAM _bMainStart=0; _bMainHighlightPos=2; //first one#else _bMainStart=1; _bMainHighlightPos=1; //first one#endif _ShowMainList(); } } else if (_bCurrentFrame==TITLE_FRAME) { if (_bTitleStart>MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME) //scroll up a whole page { _bTitleStart-=MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME; //_bTitleHighlightPos remains the same _ShowTitleList(); } else if (_bTitleStart+_bTitleHighlightPos-1>MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME) //scroll down not a whole page { _bTitleStart=1; // Remain the same position// _bTitleHighlightPos = _bTitleStart+_bTitleHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME; _ShowTitleList(); } else if (_bTitleStart!=1) //scroll down not a whole page { _OSDPRGM_UpdateTitleList(); //CoCo1.21, use this function to replace the above code } 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; _OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code _bCurrentFrame = TITLE_FRAME; /////highlight remains in the Title Frame } } else //CHAPTER_FRAME { if (_wChapterStart>MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME) { //scroll up a whole page _wChapterStart-=MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME; //_wChapterHighlightPos remains the same _ShowChapterList(); } else if (_wChapterStart+_wChapterHighlightPos-1>MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME) //scroll down not a whole page { _wChapterStart=1; //_wChapterHighlightPos remains the same// _wChapterHighlightPos = _wChapterStart+_wChapterHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME; _ShowChapterList(); } else if (_wChapterStart!=1) //scroll down not a whole page { _OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code } } _SetClearHighlight(SET_HIGHLIGHT); bKeyStatus = KEY_NO_KEY; break; case KEY_LEFT: if (MAIN_FRAME == _bCurrentFrame)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -