📄 osdbmark.c
字号:
_PRGM_StrAttr.wX += 30; // _ShowOneEntryNumber(__bTitle); _ShowOneEntryNumber(__bBookMark_Title[__wBookMark[0]]); GDI_DrawString_909(0, &_PRGM_StrAttr, _wOSDBOOKMARKString); _PRGM_StrAttr.wX = MAIN_FRAME_X1+30; _PRGM_StrAttr.wY += 30; GDI_DrawString_909(0, &_PRGM_StrAttr, aChapter); _PRGM_StrAttr.wX += 105; GDI_DrawString_909(0, &_PRGM_StrAttr, aColon); _PRGM_StrAttr.wX += 30; // _ShowOneEntryNumber(__wChapter); _ShowOneEntryNumber(_wBookMark_Chapter[__wBookMark[0]]); GDI_DrawString_909(0, &_PRGM_StrAttr, _wOSDBOOKMARKString); } _PRGM_StrAttr.wX = MAIN_FRAME_X1+30; if (__wDiscType & BOOK_DVD) { _PRGM_StrAttr.wY += 30; } else { _PRGM_StrAttr.wY = MAIN_FRAME_Y0; } GDI_DrawString_909(0, &_PRGM_StrAttr, aTime); _PRGM_StrAttr.wX += 105; GDI_DrawString_909(0, &_PRGM_StrAttr, aColon); _wOSDBOOKMARKString[1] = aNDNumbers[HIBYTE(__wBookMark[__wBookMark[0]]) /60]; _wOSDBOOKMARKString[3] = aNDNumbers[(HIBYTE(__wBookMark[__wBookMark[0]]) %60) /10]; _wOSDBOOKMARKString[4] = aNDNumbers[HIBYTE(__wBookMark[__wBookMark[0]]) %10]; _wOSDBOOKMARKString[6] = aNDNumbers[LOBYTE(__wBookMark[__wBookMark[0]]) /10]; _wOSDBOOKMARKString[7] = aNDNumbers[LOBYTE(__wBookMark[__wBookMark[0]]) %10]; _wOSDBOOKMARKString[0] = 7; //7 digit _wOSDBOOKMARKString[2] = CHAR_COLON; _wOSDBOOKMARKString[5] = CHAR_COLON; _PRGM_StrAttr.wX += 30; GDI_DrawString_909(0, &_PRGM_StrAttr, _wOSDBOOKMARKString); }}// *********************************************************************************// Function : _SetClearHighlight// Description : Set/Clear Highlight & Show the current entry// Arguments : bFlag: SET_HIGHLIGHT/CLEAR_HIGHLIGHT// Return : None// Side Effect :// *********************************************************************************static void _SetClearHighlight(BYTE bFlag){ _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_TEXT2; if (bFlag) //SET_HIGHLIGHT { _bOSDBOOKMARKTemp = OSDPRGM_ENTRY_COLOR_HILIGHT; _PRGM_StrAttr.bBackground = _bOSDBOOKMARKTemp; } else //CLEAR_HIGHLIGHT { _bOSDBOOKMARKTemp = OSDPRGM_ENTRY_FRAME_CENTER; _PRGM_StrAttr.bBackground = _bOSDBOOKMARKTemp; } _PRGM_RectAttr.bColor = _bOSDBOOKMARKTemp; _InitRect(&(_PRGM_RectAttr.rect), MAIN_FRAME_X0+FRAME_THICKNESS, MAIN_FRAME_Y0+FRAME_THICKNESS+ENTRY_HEIGHT*(_bMainHighlightPos-1), MAIN_FRAME_X1-FRAME_THICKNESS, MAIN_FRAME_Y0+FRAME_THICKNESS+ENTRY_HEIGHT*(_bMainHighlightPos-1)+ENTRY_HEIGHT); GDI_FillRect_909(0, &_PRGM_RectAttr); _ShowOneEntry(_bMainStart+_bMainHighlightPos-1); } //end of _SetClearHighlight() //***************************************************************************// Function : _OSDBOOKMARK_ShowUI// Abstract : Draw the Program UI.// Arguments : // Return : none.// Side Effect : none.// Notes : //***************************************************************************void _OSDBOOKMARK_ShowUI(){#ifdef MINI_OSD_REGION //CoCo2.30, borrow frame buffer to show OSD. GDI_ClearRegion(0); // clera the mini OSD region __dwRegionHeight = GDI_REGION_HEIGHT; // 460 // Need to set to the correct DRAM address __dwRegionTAddr = W99AV_ADDR_MPEG_FRAME_FOR_OS_T; //Use frame buffer. __dwRegionBAddr = W99AV_ADDR_MPEG_FRAME_FOR_OS_B; //Use frame buffer. GDI_InitialRegion (0); // initialize region to set it to 8-bit mode#endif GDI_SetMixRatio(GDI_GENERAL_MIX_RATIO); GDI_ActivateRegion(0); //Initialization of Variables #ifdef SUPPORT_CLEARALL_IN_PROGRAM _bMainStart = 0; #else _bMainStart = 1; #endif #ifdef SUPPORT_CLEARALL_IN_PROGRAM _bMainHighlightPos = 2; //highlight 1. __-__ #else _bMainHighlightPos = 1; //highlight 1. __-__ #endif __wBookMark[0] = _bMainStart; _OSDBOOKMARK_InitPalette(); _OSDBOOKMARK_DrawFrames(); _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_COLOR_TOP_BANNER; _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_TOP_BANNER_TEXT; _PRGM_StrAttr.bColorKey = 0; _PRGM_StrAttr.wX = BMARK_FRAME_X0+25; _PRGM_StrAttr.wY = BMARK_FRAME_Y0+7; GDI_DrawString_909(0, &_PRGM_StrAttr, aBookmark); _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER; _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER_TEXT; _PRGM_StrAttr.bColorKey = 0; _PRGM_StrAttr.wX = BMARK_FRAME_X0+60; _PRGM_StrAttr.wY = BMARK_FRAME_Y1-30; GDI_DrawString_909(0, &_PRGM_StrAttr, aColon); _PRGM_StrAttr.wX = BMARK_FRAME_X0+75; _PRGM_StrAttr.wY = BMARK_FRAME_Y1-30; GDI_DrawString_909(0, &_PRGM_StrAttr, aBookmark); _PRGM_StrAttr.wX = BMARK_FRAME_X0+290; _PRGM_StrAttr.wY = BMARK_FRAME_Y1-30; GDI_DrawString_909(0, &_PRGM_StrAttr, aColon); _PRGM_StrAttr.wX = BMARK_FRAME_X0+305; _PRGM_StrAttr.wY = BMARK_FRAME_Y1-30; GDI_DrawString_909(0, &_PRGM_StrAttr, aClear); // Set text color to RED _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER; _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER_TEXT; _PRGM_StrAttr.bColorKey = 0; _PRGM_StrAttr.wX = BMARK_FRAME_X0+25; _PRGM_StrAttr.wY = BMARK_FRAME_Y1-30; GDI_DrawString_909(0, &_PRGM_StrAttr, aPlayIcon); _PRGM_StrAttr.wX = BMARK_FRAME_X0+250; _PRGM_StrAttr.wY = BMARK_FRAME_Y1-30; GDI_DrawString_909(0, &_PRGM_StrAttr, aClearIcon); _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_MAIN_COLOR_BG; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, BMARK_FRAME_Y0 + 40, BMARK_FRAME_X1, BMARK_FRAME_Y1 - 37); GDI_FillRect_909(0, &_PRGM_RectAttr); _PRGM_FrameAttr.bStyle = FRAME_POP_SOLID; _PRGM_FrameAttr.bThickness = FRAME_THICKNESS; _PRGM_FrameAttr.bColorBright = OSDPRGM_ENTRY_FRAME_BRIGHT; _PRGM_FrameAttr.bColorDark = OSDPRGM_ENTRY_FRAME_DARK; _PRGM_FrameAttr.bColorCenter = OSDPRGM_ENTRY_FRAME_CENTER; _InitRect(&(_PRGM_FrameAttr.rect), BMARK_FRAME_X0, BMARK_FRAME_Y0 + 37, BMARK_FRAME_X1, BMARK_FRAME_Y0 + 40); GDI_DrawFrame_909(0, &_PRGM_FrameAttr); _InitRect(&(_PRGM_FrameAttr.rect), BMARK_FRAME_X0, BMARK_FRAME_Y1 - 40, BMARK_FRAME_X1, BMARK_FRAME_Y1 - 37); GDI_DrawFrame_909(0, &_PRGM_FrameAttr); _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_MAIN_COLOR_BG; _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_TEXT1; _PRGM_StrAttr.bColorKey = 0; //other texts always use BLACK color _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_TEXT2; _PRGM_StrAttr.bBackground= OSDPRGM_ENTRY_COLOR_TEXT_BG; //main frame _ShowMainList(); _SetClearHighlight(SET_HIGHLIGHT); _ShowTitleChapterTime(); }//***************************************************************************// Function : _OSDBOOKMARK_ClearUI// Abstract : Clear the Program UI.// Arguments : // Return : none.// Side Effect : none.// Notes : //***************************************************************************void _OSDBOOKMARK_ClearUI(void){ //clear Search IR region _PRGM_RectAttr.bColor = PAL_ENTRY_COLOR_TRANSPARENT; _InitRect(&(_PRGM_RectAttr.rect), 0, OSDND_UPPER_BACKGROUND_BOTTOM + 1, GDI_REGION_WIDTH, OSDND_BOTTOM_BACKGROUND_START_V - 1); GDI_FillRect_909(0, &_PRGM_RectAttr);}//***************************************************************************// Function : _OSDBOOKMARK_DrawFrames // Abstract : Draw the frames.// Arguments :// Return : none.// Side Effect : none.// Notes ://***************************************************************************void _OSDBOOKMARK_DrawFrames(void){ // Clear region _PRGM_RectAttr.bColor = PAL_ENTRY_COLOR_TRANSPARENT; _InitRect(&(_PRGM_RectAttr.rect), 0, OSDND_UPPER_BACKGROUND_BOTTOM + 1, GDI_REGION_WIDTH, OSDND_BOTTOM_BACKGROUND_START_V - 1); GDI_FillRect_909(0, &_PRGM_RectAttr); if (SETUP_CUSTOM_UI_STYLE_1 == __SetupInfo.bUIStyle) { _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_COLOR_TOP_BANNER; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, BMARK_FRAME_Y0, BMARK_FRAME_X1, BMARK_FRAME_Y1); GDI_FillRoundRect(0, 17, &_PRGM_RectAttr); } else if (SETUP_CUSTOM_UI_STYLE_2 == __SetupInfo.bUIStyle) { _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_COLOR_TOP_BANNER; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, BMARK_FRAME_Y0, BMARK_FRAME_X1 - 50, CENTER_FRAME_Y1-1); GDI_FillRoundRectTop(0, 21, &_PRGM_RectAttr); _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X1 - 100, BMARK_FRAME_Y0, BMARK_FRAME_X1, MAIN_FRAME_Y1-1); GDI_FillRect_909(0, &_PRGM_RectAttr); _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, CENTER_FRAME_Y1, BMARK_FRAME_X1 - 50, BMARK_FRAME_Y1); GDI_FillRect_909(0, &_PRGM_RectAttr); _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X1 - 100, CENTER_FRAME_Y1, BMARK_FRAME_X1, BMARK_FRAME_Y1); GDI_FillRoundRectBottom(0, 21, &_PRGM_RectAttr); } else if (SETUP_CUSTOM_UI_STYLE_3 == __SetupInfo.bUIStyle) { _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_COLOR_TOP_BANNER; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, BMARK_FRAME_Y0, BMARK_FRAME_X1, CENTER_FRAME_Y1-1); GDI_FillRoundRectTop(0, 21, &_PRGM_RectAttr); _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, CENTER_FRAME_Y1, BMARK_FRAME_X1, BMARK_FRAME_Y1); GDI_FillRect_909(0, &_PRGM_RectAttr); } else if (SETUP_CUSTOM_UI_STYLE_4 == __SetupInfo.bUIStyle) { _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_COLOR_TOP_BANNER; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, BMARK_FRAME_Y0, BMARK_FRAME_X1, CENTER_FRAME_Y1-1); GDI_FillRoundRectTop(0, 21, &_PRGM_RectAttr); _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER; _InitRect(&(_PRGM_RectAttr.rect), BMARK_FRAME_X0, CENTER_FRAME_Y1, BMARK_FRAME_X1, BMARK_FRAME_Y1); GDI_FillRoundRectBottom(0, 21, &_PRGM_RectAttr); }}//***************************************************************************// Function : _OSDBOOKMARK_InitPalette // Abstract : Initialize the palettes.// Arguments :// Return : none.// Side Effect : none.// Notes ://***************************************************************************void _OSDBOOKMARK_InitPalette(void){ if (SETUP_CUSTOM_UI_STYLE_1 == __SetupInfo.bUIStyle) { GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER, OSDPRGM_VALUE_COLOR_TOP_BANNER1, TRUE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER_TEXT, OSDPRGM_VALUE_COLOR_TOP_BANNER_TEXT1, TRUE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER1, TRUE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER_TEXT, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER_TEXT1, TRUE); GDI_ChangePALEntry(OSDPRGM_ENTRY_MAIN_COLOR_BG, OSDPRGM_VALUE_MAIN_COLOR_BG1, TRUE); } else if (SETUP_CUSTOM_UI_STYLE_2 == __SetupInfo.bUIStyle) { GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER, OSDPRGM_VALUE_COLOR_TOP_BANNER2, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER_TEXT, OSDPRGM_VALUE_COLOR_TOP_BANNER_TEXT2, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER2, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER_TEXT, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER_TEXT2, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_MAIN_COLOR_BG, OSDPRGM_VALUE_MAIN_COLOR_BG2, TRUE); } else if (SETUP_CUSTOM_UI_STYLE_3 == __SetupInfo.bUIStyle) { GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER, OSDPRGM_VALUE_COLOR_TOP_BANNER3, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER_TEXT, OSDPRGM_VALUE_COLOR_TOP_BANNER_TEXT3, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER3, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER_TEXT, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER_TEXT3, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_MAIN_COLOR_BG, OSDPRGM_VALUE_MAIN_COLOR_BG3, TRUE); } else if (SETUP_CUSTOM_UI_STYLE_4 == __SetupInfo.bUIStyle) { GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER, OSDPRGM_VALUE_COLOR_TOP_BANNER4, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TOP_BANNER_TEXT, OSDPRGM_VALUE_COLOR_TOP_BANNER_TEXT4, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER4, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_BOTTOM_BANNER_TEXT, OSDPRGM_VALUE_COLOR_BOTTOM_BANNER_TEXT4, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_MAIN_COLOR_BG, OSDPRGM_VALUE_MAIN_COLOR_BG4, TRUE); } GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TEXT1, OSDPRGM_VALUE_COLOR_WHITE, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TEXT2, OSDPRGM_VALUE_COLOR_BLACK, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_TEXT_BG, OSDPRGM_VALUE_FRAME_CENTER, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_WHITE, OSDPRGM_VALUE_COLOR_WHITE, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_COLOR_HILIGHT, OSDPRGM_VALUE_COLOR_HILIGHT, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_FRAME_BRIGHT, OSDPRGM_VALUE_FRAME_BRIGHT, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_FRAME_DARK, OSDPRGM_VALUE_FRAME_DARK, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_FRAME_CENTER, OSDPRGM_VALUE_FRAME_CENTER, FALSE); GDI_ChangePALEntry(OSDPRGM_ENTRY_TEXT_DISABLED, OSDPRGM_VALUE_TEXT_DISABLED, FALSE); GDI_WaitPaletteComplete();}// *****************************************************************// Function : _OSDBOOKMARK_ProceedToNextMainEntry// Description : Proceed to next main entry // Argument : None// Return : None// Side Effect : // *****************************************************************//Kevin1.23DMTech, createvoid _OSDBOOKMARK_ProceedToNextMainEntry(void){ _SetClearHighlight(CLEAR_HIGHLIGHT); 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++; } #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 }#endif //#ifdef SUPPORT_CIRCULAR_WRAP //Kevin2.31-2 _ShowMainList(); } _SetClearHighlight(SET_HIGHLIGHT);} //end of _OSDBOOKMARK_ProceedToNextMainEntry()#endif //#ifndef NO_DISC_MODE //CoCo2.37p#endif //#ifdef SUPPORT_BOOKMARK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -