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

📄 osdprgm.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
        {            //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.        }        else if (TITLE_INPUT == _bCurrentFrame || TITLE_FRAME == _bCurrentFrame)        {            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);            if (TITLE_INPUT == _bCurrentFrame)                _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0);            _SetClearHighlight(CLEAR_HIGHLIGHT);            _bCurrentFrame = TITLE_FRAME;               _SetClearHighlight(CLEAR_HIGHLIGHT);            _bCurrentFrame = MAIN_FRAME;               _SetClearHighlight(SET_HIGHLIGHT);              _bTitleHighlightPos = 1;            _wChapterHighlightPos = 1;        }        else if (CHAPTER_INPUT == _bCurrentFrame)        {            _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.            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0);            _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);            _SetClearHighlight(CLEAR_HIGHLIGHT);            _bCurrentFrame = TITLE_FRAME;               _SetClearHighlight(CLEAR_HIGHLIGHT);            _bCurrentFrame = TITLE_INPUT;               _SetClearHighlight(SET_HIGHLIGHT);              __bProgramTitle = 0;            __wProgramChapter = 0;            _bTitleHighlightPos = 1;            _wChapterHighlightPos = 1;        }        else if (CHAPTER_FRAME == _bCurrentFrame)        {            __bProgramTitle = 0;            _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);            _SetClearHighlight(CLEAR_HIGHLIGHT);            _bCurrentFrame = TITLE_FRAME;               _SetClearHighlight(SET_HIGHLIGHT);          }		        bKeyStatus = KEY_NO_KEY;        break;                    case KEY_RIGHT:#ifdef SUPPORT_PRGM_NUM_INPUT //Kevin1.06        if (__wDiscType & BOOK_DVD || __wDiscType & CDROM_M1)        {            if (CHAPTER_INPUT == _bCurrentFrame)            {                _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);            }        }        else        {            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0);        }#endif        if ( (_bCurrentFrame==MAIN_FRAME) && !(_bMainStart+_bMainHighlightPos-1) )  //Clear All        {            //do nothing        }        else        {   #ifndef SUPPORT_PRGM_NUM_INPUT             if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD                     {                if (_bCurrentFrame!=CHAPTER_FRAME)                {                    _SetClearHighlight(CLEAR_HIGHLIGHT);                    _bCurrentFrame++;                    _SetClearHighlight(SET_HIGHLIGHT);                        }    				                if (_bCurrentFrame == TITLE_FRAME )                {                    //Kevin0.87, add                    //uncomment when DVD/VCD is in the loader                    DVD_ParseInfo ( DVD_TOTAL_CHAPTERS, &__dwTemp, (WORD)(_bTitleStart+_bTitleHighlightPos-1) );                                 _wTotalChapter = __dwTemp;                               _ShowChapterList();                    _bCurrentFrame = TITLE_FRAME; /////highlight remains in Title Frame                      }            }#else //#ifndef SUPPORT_PRGM_NUM_INPUT            __wNumberQueue = 0;    //clear			            if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD                     {                if (_bCurrentFrame==MAIN_FRAME)                {                    //clear whole yellow highlight bar                    _SetClearHighlight(CLEAR_HIGHLIGHT);                    __bProgramCurrentIndex = _bMainStart+_bMainHighlightPos-1;						                    _bOSDPRGMTemp = __ProgIdxList[__bProgramCurrentIndex-1].bMainIndex;                        //CoCo1.21, replace the above code                        if ((!__bProgramTitle) && _bOSDPRGMTemp)                            __bProgramTitle = _bOSDPRGMTemp;                        _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_COLOR_HILIGHT);                                                //CoCo1.21, replace the above code                        _OSDPRGM_UpdateProgramChapter(2);                        _bCurrentFrame = TITLE_INPUT;                 }                    else if (_bCurrentFrame==TITLE_INPUT)                 {                   if (0 != __bProgramTitle && __bProgramTitle <= _bTotalTitle)                   {                       DVD_ParseInfo(DVD_TOTAL_CHAPTERS, &__dwTemp,                                     (WORD)(__bProgramTitle));                       _SetClearHighlight(CLEAR_HIGHLIGHT);                       _wTotalChapter = (WORD)__dwTemp;                           _bTitleStart = __bProgramTitle;                       _bTitleHighlightPos = 1;                       _ShowTitleList();                       _ShowChapterList();                       _bCurrentFrame = CHAPTER_INPUT;                       _SetClearHighlight(SET_HIGHLIGHT);                    }                    else                    {                       __bProgramTitle = 0;                       _SetClearHighlight(SET_HIGHLIGHT);                        bKeyStatus = KEY_INVALID;                       break;                   }                }                else if (_bCurrentFrame==TITLE_FRAME)                 {                    __bProgramTitle = _bTitleStart + _bTitleHighlightPos - 1;                    _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);                    _SetClearHighlight(CLEAR_HIGHLIGHT);                    _bCurrentFrame = CHAPTER_FRAME;                    _SetClearHighlight(SET_HIGHLIGHT);                 }            }			#endif //#ifndef SUPPORT_PRGM_NUM_INPUT                        else //BOOK_VCD            {                if (_bCurrentFrame==MAIN_FRAME)                {                    _SetClearHighlight(CLEAR_HIGHLIGHT);                    _bCurrentFrame = TITLE_INPUT;                    _SetClearHighlight(SET_HIGHLIGHT);                        }                  }                       }                bKeyStatus = KEY_NO_KEY;        break;				    case KEY_ENTER: //Kevin1.07, combine all the following keys    case KEY_PLAY_PAUSE: //Kevin1.06, add    case KEY_PLAY: //Kevin0.87, KEY_PLAY act as KEY_ENTER for some cases        if (__btPause)        {            // Alan 1.20, in Pause mode, sync the behavior with MM program              bKeyStatus = KEY_BYPASS;        }        else        {        //current index in Main Frame        __bProgramCurrentIndex = _bMainStart+_bMainHighlightPos-1;                if ((__wDiscType&BOOK_DVD || __wDiscType&CDROM_M1) && ( _bCurrentFrame == CHAPTER_FRAME || _bCurrentFrame == CHAPTER_INPUT))          {            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);            {                if (_bCurrentFrame == CHAPTER_FRAME)                    LINEAR_ProgramEntryOperation(LINEAR_ADD_ENTRY_BY_INDEX,                         ((BYTE)(__bProgramCurrentIndex-1)),                         ((BYTE)(_bTitleStart+_bTitleHighlightPos-1)),                         ((WORD)(_wChapterStart+_wChapterHighlightPos-1)));                else if (_bCurrentFrame == CHAPTER_INPUT)                {                    if (0 != __wProgramChapter && __wProgramChapter <= _wTotalChapter)                    {                        LINEAR_ProgramEntryOperation(LINEAR_ADD_ENTRY_BY_INDEX,                             ((BYTE)(__bProgramCurrentIndex-1)),                             __bProgramTitle,                             __wProgramChapter);                    }                    else                    {                        __wNumberQueue = 0;                        __wProgramChapter = 0;                        _SetClearHighlight(SET_HIGHLIGHT);                         bKeyStatus = KEY_INVALID;                        break;                    }                }            }            //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.            _bTitleStart = 1;            _bTitleHighlightPos = 1;            _wChapterStart = 1;            _wChapterHighlightPos = 1;            _ShowTitleList();            _bCurrentFrame = MAIN_FRAME;            _SetClearHighlight(SET_HIGHLIGHT);            //Kevin1.23DMTech, proceed to next entry when current entry is set            _OSDPRGM_ProceedToNextMainEntry();            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0);            _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);            _ShowInput(CHAPTER_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);			            bKeyStatus = KEY_NO_KEY;        }        else if ( (__wDiscType&BOOK_DVD || __wDiscType&CDROM_M1) && _bCurrentFrame==TITLE_FRAME)        {            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);            __bProgramTitle = _bTitleStart + _bTitleHighlightPos - 1;            _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);            _SetClearHighlight(CLEAR_HIGHLIGHT);            if (_wTotalChapter) //move the highlight to Chapter Frame                _bCurrentFrame = CHAPTER_FRAME;            else //empty dir => move the highlight to Main Frame                _bCurrentFrame = MAIN_FRAME;            _SetClearHighlight(SET_HIGHLIGHT);			            bKeyStatus = KEY_NO_KEY;        }           else if ( (__wDiscType&BOOK_DVD || __wDiscType&CDROM_M1) && _bCurrentFrame==TITLE_INPUT)        {            __wNumberQueue = 0;    //clear            if (__wDiscType & BOOK_DVD) //no Chapter Frame for VCD            {                if (0 != __bProgramTitle && __bProgramTitle <= _bTotalTitle)                {                    DVD_ParseInfo(DVD_TOTAL_CHAPTERS, &__dwTemp,                                     (WORD)(__bProgramTitle));                    _SetClearHighlight(CLEAR_HIGHLIGHT);                    _wTotalChapter = (WORD)__dwTemp;                    _bTitleStart = __bProgramTitle;                    _bTitleHighlightPos = 1;                    _ShowTitleList();                    _ShowChapterList();                    _bCurrentFrame = CHAPTER_INPUT;                    _SetClearHighlight(SET_HIGHLIGHT);                    bKeyStatus = KEY_NO_KEY;                    break;                }                else                {                    __bProgramTitle = 0;                    _SetClearHighlight(SET_HIGHLIGHT);                     bKeyStatus = KEY_INVALID;                    break;                }            }         }        else if ( !(__wDiscType&BOOK_DVD || __wDiscType&CDROM_M1) && (_bCurrentFrame==TITLE_FRAME || TITLE_INPUT == _bCurrentFrame) ) //VCD        {            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL_0);            if (TITLE_FRAME == _bCurrentFrame)            {                LINEAR_ProgramEntryOperation(LINEAR_ADD_ENTRY_BY_INDEX,                    ((BYTE)(__bProgramCurrentIndex-1)), NULL_0,                     ((WORD)(_bTitleStart+_bTitleHighlightPos-1)));                 _bTitleStart = 1;                _bTitleHighlightPos = 1;                _ShowTitleList();            }            else            {                if (0 != __bProgramTitle && __bProgramTitle <= _bTotalTitle)                {                    LINEAR_ProgramEntryOperation(LINEAR_ADD_ENTRY_BY_INDEX,                        ((BYTE)(__bProgramCurrentIndex-1)),                        NULL_0, ((WORD)(__bProgramTitle)));                 }                 else                {                    bKeyStatus = KEY_INVALID;                    break;                }            }//            _SetClearHighlight(CLEAR_HIGHLIGHT);            _bCurrentFrame = MAIN_FRAME;            _SetClearHighlight(SET_HIGHLIGHT);            //Kevin1.23DMTech, proceed to next entry when current entry is set            _OSDPRGM_ProceedToNextMainEntry();                        _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL_0);            _ShowInput(TITLE_INPUT, OSDPRGM_ENTRY_MAIN_COLOR_BG);            bKeyStatus = KEY_NO_KEY;        }                   #ifdef SUPPORT_CLEARALL_IN_PROGRAM                                     else if ( (_bCurrentFrame==MAIN_FRAME) && !__bProgramCurrentIndex )  //Clear All        {            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CHECK, NULL);            _OSDPRGM_ProcessNumInput(PRGM_NUMBERINPUT_CLEAR, NULL);            LINEAR_ProgramEntryOperation(LINEAR_CLEAR_ALL_ENTRY,NULL,NULL,NULL);            _ShowMainList();            _bMainHighlightPos = 2;  //highlight 1. __-__             _SetClearHighlight(SET_HIGHLIGHT);                              bKeyStatus = KEY_NO_KEY;        }#endif              /*Alan2.30, remove the code to make pressing KEY_PLAY in the Main Frame will to play the program list.        else if (_bCurrentFrame == MAIN_FRAME)        {            if (0 == __ProgIdxList[__bProgramCurrentIndex - 1].bMainIndex &&                0 == __ProgIdxList[__bProgramCurrentIndex - 1].wSubIndex)            {                bKeyStatus = KEY_NO_KEY;            }        }*/        if (KEY_NO_KEY != bKeyStatus)        {            if (KEY_PLAY_PAUSE == __bKey)

⌨️ 快捷键说明

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