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

📄 osdprgm.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
                __bKey = KEY_PLAY;            _OSDPRGM_ClearUI();            OSD_ChangeUI(OSD_UI_DVD_PROGRAM, OSD_EXIT_UI);            LINEAR_Program(LINEAR_COUNT_ENTRY, NULL_0);            bKeyStatus = KEY_TODO;         }/*alan080, comment        //else _bCurrentFrame == MAIN_FRAME other than Clear All        //cc.c take care of KEY_PLAY/KEY_PLAY_PAUSE                               if (__bKey==KEY_ENTER)            bKeyStatus = KEY_NO_KEY; */                }        break;		    case KEY_CLEAR:    case KEY_STOP:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06        _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0);#endif        if ( _bCurrentFrame==MAIN_FRAME)         {            __bProgramCurrentIndex = _bMainStart+_bMainHighlightPos-1; //current index in Main Frame			            if (!__bProgramCurrentIndex ) //Clear All             {                //LINEAR_ClearProgramEntry(LINEAR_CLEARENTRY,NULL,NULL); //__wProgramData[0~MAX_PROG_ITEM-1]=0                LINEAR_ProgramEntryOperation(LINEAR_CLEAR_ALL_ENTRY,NULL_0,NULL_0,NULL_0);                _ShowMainList();#ifdef SUPPORT_CLEARALL_IN_PROGRAM                _bMainHighlightPos = 2;  //highlight 1. __-__ #else                _bMainHighlightPos = 1;  //highlight 1. __-__ #endif                 _SetClearHighlight(SET_HIGHLIGHT);                    }            else //Clear one Entry            {                /////__wProgramData[__bTemp-1] = 0x0000;                LINEAR_ProgramEntryOperation(                     LINEAR_DELETE_ENTRY_BY_INDEX_WO_REARRANGE,                     ((BYTE)(__bProgramCurrentIndex-1)),                     NULL_0, NULL_0);                                _SetClearHighlight(SET_HIGHLIGHT);            }                        }        else         {            //clear chapter frame, up arrow rect, and down arrow rect            _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.            if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD            {                __wProgramChapter = 0;                _ShowInput(CHAPTER_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);            }            __bProgramTitle = 0;            _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);            _bCurrentFrame=TITLE_FRAME;            _SetClearHighlight(CLEAR_HIGHLIGHT);            _bCurrentFrame=MAIN_FRAME;            _SetClearHighlight(SET_HIGHLIGHT);                    }                            bKeyStatus = KEY_NO_KEY;        break;        		//Kevin0.91, let original flow deal with PROGRAM,POWER,OPEN,...    case KEY_POWER:    case KEY_OPEN_CLOSE:    case KEY_PROGRAM:#ifndef FORCE_SWITCH_NONPBC        if (__btPBC && (__wDiscType != BOOK_CDDA))        {            bKeyStatus = KEY_INVALID;        }        else#endif        {            if (!__btInputProgram)            {                if ( !LINEAR_Program (LINEAR_PROGRAM_MODE,NULL_0) )                {                    bKeyStatus = INVALID_KEY;                }                else                {#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM//                    OSDPRGM_EnterByPrestop();                    CC_ForceStop(CC_FORCE_STOP_FROM_PROGRAM);#endif                    OSD_ChangeUI(OSD_UI_DVD_PROGRAM, OSD_ENTER_UI);                    _OSDPRGM_ShowUI();                    bKeyStatus = KEY_NO_KEY;                }            }            else            {                OSDPRGM_Exit(OSD_UI_EXIT_ALL);                OSD_ChangeUI(OSD_UI_DVD_PROGRAM, OSD_EXIT_UI);#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM//                OSDPRGM_ExitByResume();                CC_ForceResumeRePlay(CC_FORCE_STOP_FROM_PROGRAM);#endif                LINEAR_Program(LINEAR_PROGRAM_CLEAR,NULL_0);                bKeyStatus = KEY_NO_KEY;            }        }        break;		#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06  		//process number keys 0..9 (except 10+..)    case KEY_N0:    case KEY_N1:    case KEY_N2:    case KEY_N3:    case KEY_N4:    case KEY_N5:    case KEY_N6:    case KEY_N7:    case KEY_N8:    case KEY_N9:          if (TITLE_INPUT ==  _bCurrentFrame || CHAPTER_INPUT == _bCurrentFrame)         {            if (_OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_NUMBER, ((WORD)(__bKey-KEY_N0)) ))                bKeyStatus =KEY_NO_KEY;            else                bKeyStatus = KEY_INVALID; //OSD show "Invalid"        }        else            bKeyStatus = KEY_NO_KEY;        break;#endif		//Kevin0.91,doesn't allow other keys    default:         bKeyStatus = KEY_INVALID;        break;    }	    return bKeyStatus;	} //end of OSDPRGM_ProcessKey//  *********************************************************************************//  Function    :   OSDPRGM_Recover//  Description :   The function is called by OSD to do the recovery of Program UI //  Arguments   :   bRecoverRegion, the recover region //		:   OSD_RECOVER_ALL //		:   OSD_RECOVER_UPPER_REGION, invalid//		:   OSD_RECOVER_BOTTOM_REGION, invalid//  Return      :   TRUE, The region has been recovered.//              :   FALSE, The region doesn't need to be recovered in this UI.//  Side Effect ://  *********************************************************************************BYTE OSDPRGM_Recover(BYTE bRecoverRegion){    if (OSD_RECOVER_ALL != bRecoverRegion) return FALSE;    _OSDPRGM_ShowUI();    return TRUE;}//  *********************************************************************************//  Function    :   _ShowMainList//  Description :   Show Main List in the Main Frame//  Arguments   :   None//  Return      :   None//  Side Effect :   _bCurrentFrame might be changed//  Note        :   Why not combine _ShowMainList(), _ShowTitleList(), and _ShowFrameList() into _ShowList()?//                  Because the exactly common code is so little although they're similar. //  *********************************************************************************static void _ShowMainList(void){    _bCurrentFrame = MAIN_FRAME; /////_ShowOneEntry() will refer to        //redraw main frame (can also be moved to the following of //main frame)                     _OSDPRGM_DrawFrame(MAIN_FRAME_X0, MAIN_FRAME_Y0, MAIN_FRAME_X1, MAIN_FRAME_Y1); //CoCo1.20, reduce code size.    for (_bOSDPRGMTemp1=_bMainStart; (_bOSDPRGMTemp1<=MAX_PROG_ITEM) && ((_bOSDPRGMTemp1-_bMainStart)<MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME); _bOSDPRGMTemp1++)    {              _ShowOneEntry(_bOSDPRGMTemp1);    }                        //show arrow down rect    if ( (MAX_PROG_ITEM-_bMainStart+1) > MAX_ENTRY_NUM_SHOWN_IN_MAIN_FRAME)    {           _OSDPRGM_DrawFrame(MAIN_FRAME_X0, MAIN_FRAME_Y1+1,            MAIN_FRAME_X1, MAIN_FRAME_Y1+1+ARROW_HEIGHT);  //CoCo1.20, reduce code size.        _OSDPRGM_SetStringPos(((MAIN_FRAME_X0+MAIN_FRAME_X1)>>1)-7, MAIN_FRAME_Y1+4); //CoCo1.20, reduce code size.        _OSDPRGM_DrawDynamicString(aArrowDown); //CoCo1.20, reduce code size.    }     else //clear arrow down rect    {        _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_MAIN_COLOR_BG;        _OSDPRGM_FillRect(MAIN_FRAME_X0, MAIN_FRAME_Y1+1, MAIN_FRAME_X1, MAIN_FRAME_Y1+1+ARROW_HEIGHT); //CoCo1.20, reduce code size.    }                //show arrow up rect#ifdef SUPPORT_CLEARALL_IN_PROGRAM    if ( _bMainStart >0)#else    if ( _bMainStart >1)#endif    {           _OSDPRGM_DrawFrame(MAIN_FRAME_X0, MAIN_FRAME_Y0-1-ARROW_HEIGHT,             MAIN_FRAME_X1, MAIN_FRAME_Y0-1); //CoCo1.20, reduce code size.        _OSDPRGM_SetStringPos(((MAIN_FRAME_X0+MAIN_FRAME_X1)>>1)-7, MAIN_FRAME_Y0-ARROW_HEIGHT+2); //CoCo1.20, reduce code size        _OSDPRGM_DrawDynamicString(aArrowUp);     }      else //clear arrow up rect    {        _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_MAIN_COLOR_BG;        _OSDPRGM_FillRect(MAIN_FRAME_X0, MAIN_FRAME_Y0-1-ARROW_HEIGHT,MAIN_FRAME_X1, MAIN_FRAME_Y0-1); //CoCo1.20, reduce code size.    }                                  } //end of _ShowMainList()//  *********************************************************************************//  Function    :   _ShowTitleList//  Description :   Show Title List in the Title Frame //  Arguments   :   None//  Return      :   None//  Side Effect :   _bCurrentFrame might be changed//  *********************************************************************************static void _ShowTitleList(void){           _bCurrentFrame = TITLE_FRAME; /////_ShowOneEntry() will refer to           //redraw title frame (can also be moved to the following of //title frame)         _OSDPRGM_DrawFrame(TITLE_FRAME_X0, TITLE_FRAME_Y0,                      TITLE_FRAME_X1, TITLE_FRAME_Y1); //CoCo1.20, reduce code size.    _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_TEXT2;    _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_FRAME_CENTER;    for (_bOSDPRGMTemp1=_bTitleStart; (_bOSDPRGMTemp1<=_bTotalTitle) && (_bOSDPRGMTemp1-_bTitleStart)<MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME; _bOSDPRGMTemp1++)    {              _ShowOneEntry(_bOSDPRGMTemp1);    }                        //show arrow down rect    if ( (_bTotalTitle-_bTitleStart+1) > MAX_ENTRY_NUM_SHOWN_IN_TITLE_FRAME)    {           _OSDPRGM_DrawFrame(TITLE_FRAME_X0, TITLE_FRAME_Y1+1,            TITLE_FRAME_X1, TITLE_FRAME_Y1+1+ARROW_HEIGHT); //CoCo1.20, reduce code size.        _OSDPRGM_SetStringPos(((TITLE_FRAME_X0+TITLE_FRAME_X1)>>1)-7, TITLE_FRAME_Y1+4); //CoCo1.20, reduce code size.        _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_FRAME_CENTER;        _OSDPRGM_DrawDynamicString(aArrowDown);    }     else //clear arrow down rect    {        _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_MAIN_COLOR_BG;        _OSDPRGM_FillRect(TITLE_FRAME_X0, TITLE_FRAME_Y1+1,TITLE_FRAME_X1, TITLE_FRAME_Y1+1+ARROW_HEIGHT); //CoCo1.20, reduce code size.    }                //show arrow up rect    if ( _bTitleStart >1)    {                     _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_FRAME_CENTER;        _OSDPRGM_DrawFrame(TITLE_FRAME_X0,                          TITLE_FRAME_Y0-1-ARROW_HEIGHT,                          TITLE_FRAME_X1,                          TITLE_FRAME_Y0-1);  //CoCo1.20, reduce code size.        _OSDPRGM_SetStringPos(((TITLE_FRAME_X0+TITLE_FRAME_X1)>>1)-7, TITLE_FRAME_Y0-ARROW_HEIGHT+2); //CoCo1.20, reduce code size.        _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_FRAME_CENTER;        _OSDPRGM_DrawDynamicString(aArrowUp);    }      else //clear arrow up rect    {        _PRGM_RectAttr.bColor = OSDPRGM_ENTRY_MAIN_COLOR_BG;        _OSDPRGM_FillRect(TITLE_FRAME_X0, TITLE_FRAME_Y0-1-ARROW_HEIGHT, TITLE_FRAME_X1, TITLE_FRAME_Y0-1); //CoCo1.20, reduce code size.    }     } //end of _ShowTitleList()//  *********************************************************************************//  Function    :   _ShowChapterList//  Description :   Show Chapter List in the Chapter Frame//  Arguments   :   None//  Return      :   None//  Side Effect :   _bCurrentFrame might be changed//  *********************************************************************************  static void _ShowChapterList(void){       _bCurrentFrame = CHAPTER_FRAME; /////_ShowOneEntry() will refer to        //redraw chapter frame, otherwise some texts will remain on the frame    {        _wOSDPRGMString[0] = 2;        _wOSDPRGMString[1] = CHAR_SPACE;        _wOSDPRGMString[2] = CHAR_SPACE;        _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_TEXT2;        _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_MAIN_COLOR_BG;        _OSDPRGM_SetStringPos(CHAPTER_FRAME_X0 + FRAME_THICKNESS + 15, CHAPTER_FRAME_Y0-2*ENTRY_HEIGHT); //CoCo1.20, reduce code size.        _OSDPRGM_DrawString(); //CoCo1.20, reduce code size.        _OSDPRGM_DrawFrame(CHAPTER_FRAME_X0, CHAPTER_FRAME_Y0,            CHAPTER_FRAME_X1-20, CHAPTER_FRAME_Y1); //CoCo1.20, reduce code size.    }             _PRGM_StrAttr.bTextColor = OSDPRGM_ENTRY_COLOR_TEXT2;    _PRGM_StrAttr.bBackground = OSDPRGM_ENTRY_FRAME_CENTER;    for (_wOSDPRGMTemp=_wChapterStart; (_wOSDPRGMTemp<=_wTotalChapter) && (_wOSDPRGMTemp-_wChapterStart)<MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME; _wOSDPRGMTemp++)    {              _ShowOneEntry(_wOSDPRGMTemp);        }                        //show arrow down rect    if ( (_wTotalChapter-_wChapterStart+1) > MAX_ENTRY_NUM_SHOWN_IN_CHAPTER_FRAME)    {                 {               _OSDPRGM_DrawFrame(CHAPTER_FRAME_X0, CHAPTER_FRAME_Y1+1,                CHAPTER_FRAME_X1-20, CHAPTER_FRAME_Y1+1+ARROW_HEIGHT); //CoCo1.20, reduce code size.            _OSDPRGM_SetStringPos(((CHAPTER_FRAME_X0+CHAPTER_FRAME_X1-20)>>1)-7, CHAPTER_FRAME_Y1+4); //CoCo1.20, reduce code size.            _OSDPRGM_DrawDynamicString(aArrowDown);        }            } 

⌨️ 快捷键说明

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