📄 osdprgm.c
字号:
//_bTitleHighlightPos remains the same _ShowTitleList(); } else if (_bTitleStart+_bTitleHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME<=_bTotalTitle) //scroll down not a whole page { //__bTemp=_bTitleStart+_bTitleHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME; //--CoCo1.21 _bTitleStart=_bTotalTitle-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME+1; //_bTitleHighlightPos = __bTemp-_bTitleStart+1; //--CoCo1.21// _bTitleHighlightPos = _bTitleStart+_bTitleHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME-_bTitleStart+1; _bTitleHighlightPos = _bTitleStart+_bTitleHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME-_bTitleStart; _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(); } #ifdef SUPPORT_CIRCULAR_WRAP //else if (_bTitleStart>=MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME) else if (_bTitleStart!=1) //avoid unnecessary redraw { /*--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 { //if (_wChapterStart+_wChapterHighlightPos-1+2*MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME-_wChapterHighlightPos<=_wTotalChapter) //scroll down a whole page 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 { //__wTemp=_wChapterStart+_wChapterHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME; //--CoCo1.21 _wChapterStart=_wTotalChapter-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME+1; //_wChapterHighlightPos = __wTemp-_wChapterStart+1; //--CoCo1.21// _wChapterHighlightPos = _wChapterStart+_wChapterHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME-_wChapterStart+1; _wChapterHighlightPos = _wChapterStart+_wChapterHighlightPos-1+MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME-_wChapterStart; _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(); } #ifdef SUPPORT_CIRCULAR_WRAP //else if (_wChapterStart>=MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME) else if (_wChapterStart!=1) //avoid unnecessary redraw { /*--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 up case KEY_PREV:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06 _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL);#endif _SetClearHighlight(CLEAR_HIGHLIGHT); if (_bCurrentFrame==MAIN_FRAME) { 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 { //__bTemp=_bMainStart+_bMainHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME; //--CoCo1.21#ifdef SUPPORT_CLEARALL_IN_PROGRAM _bMainStart=0;#else _bMainStart=1;#endif //_bMainHighlightPos = __bTemp; //--CoCo1.21 _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(); } #ifdef SUPPORT_CIRCULAR_WRAP else if (MAX_PROG_ITEM>MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME) { _bMainStart=MAX_PROG_ITEM-MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME+1; _bMainHighlightPos=MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME; _ShowMainList(); }#endif } 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 { //__bTemp=_bTitleStart+_bTitleHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME; //--CoCo1.21 _bTitleStart=1; //_bTitleHighlightPos = __bTemp; //--CoCo1.21// _bTitleHighlightPos = _bTitleStart+_bTitleHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME; //CoCo1.21 _bTitleHighlightPos = _bTitleStart+_bTitleHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME + 1; //CoCo1.21 _ShowTitleList(); } else if (_bTitleStart!=1) //scroll down not a whole page { /*--CoCo1.21 _bTitleStart=1; _bTitleHighlightPos=1; //first one _ShowTitleList(); */ _OSDPRGM_UpdateTitleList(); //CoCo1.21, use this function to replace the above code } #ifdef SUPPORT_CIRCULAR_WRAP 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) //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 { 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 { //__wTemp=_wChapterStart+_wChapterHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME; //--CoCo1.21 _wChapterStart=1; //_wChapterHighlightPos = __wTemp; //--CoCo1.21 // _wChapterHighlightPos = _wChapterStart+_wChapterHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME; _wChapterHighlightPos = _wChapterStart+_wChapterHighlightPos-1-MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME + 1; _ShowChapterList(); } else if (_wChapterStart!=1) //scroll down not a whole page { /*--CoCo1.21 _wChapterStart=1; _wChapterHighlightPos=1; //first one _ShowChapterList(); */ _OSDPRGM_UpdateChapterList(); //CoCo1.21, Use this function to replace the above code } #ifdef SUPPORT_CIRCULAR_WRAP 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_LEFT: if (_bCurrentFrame!=MAIN_FRAME) { _SetClearHighlight(CLEAR_HIGHLIGHT); _bCurrentFrame--; _SetClearHighlight(SET_HIGHLIGHT); #ifdef SUPPORT_PRGM_NUM_INPUT _bPrgmDigitPos = PROGRAM_NUM_CURSOR_TITLE;#endif } if (_bCurrentFrame == MAIN_FRAME ) { //clear chapter frame, up arrow rect, and down arrow rect GDI_FILL_RECT(CHAPTER_FRAME_X0, CHAPTER_FRAME_Y0-1-ARROW_HEIGHT, CHAPTER_FRAME_X1, CHAPTER_FRAME_Y1+1+ARROW_HEIGHT, GDI_ENTRY_4B_COLOR_GENERAL_BG_BLUE ); } #ifdef SUPPORT_PRGM_NUM_INPUT if (_bCurrentFrame == MAIN_FRAME && _bPrgmDigitPos&PROGRAM_NUM_CURSOR_CHAPTER) { __wNumberQueue = 0; //clear if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD { __bProgramCurrentIndex = _bMainStart+_bMainHighlightPos-1; GDI_SetTextColor(TEXT_FG_COLOR, GDI_ENTRY_4B_COLOR_BLACK); __wGDIString[0] = 2; //2 digits //CoCo1.21, Initialize __wGDIString array here. _OSDPRGM_InitialOutputString(CHAR_UNDERLIN); /* --CoCo1.21 __wTemp = __ProgIdxList[__bProgramCurrentIndex-1].wSubIndex; if (__wProgramChapter) { __wGDIString[1] = aDigit[__wProgramChapter/10]; __wGDIString[2] = aDigit[__wProgramChapter%10]; } else if (__wTemp) { __wProgramChapter = __wTemp; __wGDIString[1] = aDigit[__wProgramChapter/10]; __wGDIString[2] = aDigit[__wProgramChapter%10]; } else { __wGDIString[1] = CHAR_UNDERLIN; __wGDIString[2] = CHAR_UNDERLIN; } */ //CoCo1.21, replace the above code _OSDPRGM_UpdateProgramChapter(2); GDI_SetTextColor(TEXT_BG_COLOR, GDI_ENTRY_4B_COLOR_CENTER); GDI_DRAW_STRING (MAIN_FRAME_X0+FRAME_THICKNESS+145, MAIN_FRAME_Y0+FRAME_THICKNESS+ENTRY_HEIGHT*(_bMainHighlightPos-1)); _bPrgmDigitPos=PROGRAM_NUM_CURSOR_TITLE; _bOSDPRGMTemp = __ProgIdxList[__bProgramCurrentIndex-1].bMainIndex; /* --CoCo1.21 if (__bProgramTitle) { __wGDIString[1] = aDigit[__bProgramTitle/10]; __wGDIString[2] = aDigit[__bProgramTitle%10]; } else if (_bOSDPRGMTemp) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -