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

📄 thumb.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
#ifdef CT950_STYLE                if ((_bTHUMBSubMode == THUMB_SUBMODE_SORT_MODE) && (_bTHUMBStartSort))                {                    _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_PROGRAM);                    _dwTHUMBFlashTime = OS_GetSysTimer();                    return;                }#endif //CT950_STYLE                if (_dwTHUMBFlash == FALSE)                {                    _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_SELECT);                    _dwTHUMBFlash = TRUE;                }                else                {                    if ((_bTHUMBSubMode == THUMB_SUBMODE_PROGRAM) && (LINEAR_ProgramEntryOperation(LINEAR_QUERY_INDEX, 0, (BYTE)__MMSelectCursor.wDirID, (WORD)(_wTHUMBIndex+1)) != 0xFF)) //This is a programmed item.                    {                        _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_PROGRAM);                    }                    else                    {                        _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_NORMAL);                    }                    _dwTHUMBFlash = FALSE;                }                _dwTHUMBFlashTime = OS_GetSysTimer();            }        }    }}//*********************************************************************************************************//  Function    :   THUMB_Trigger//  Abstract    :   Call this function in main loop.//  Arguments   :   none.//  Return		:   none.//  Side Effect :   none.//  Notes       ://*********************************************************************************************************void THUMB_Trigger(void){    if (__bThumbnailMode)    {        /*        if (_bTHUMBStop || __btPause)        {            __btPlaying = FALSE;            return;        }        */        if (_bTHUMBStop)        {            __btPlaying = FALSE;            return;        }        if (__btPause)        {            _wTHUMBStartTime = OS_GetSysTimer();            return;        }        switch (_bTHUMBStage)        {        case THUMB_STAGE_START:            _bTHUMBRetryTimes = THUMB_REDECODE_TIMES;            if (_bTHUMBDecodeMode == THUMB_DECODE_ONE) //decode only one thumbnail            {                _THUMB_Start();            }            else            {                if (!_THUMB_CheckPlayEnd())                    _THUMB_Start();                else //All thumbnails has been decoded. Stop!                {                    _bTHUMBStop = TRUE;                    _THUMB_UpdateHighlight(THUMB_UPDATE_HIGHLIGHT_DRAW);                    _THUMB_DisplayPageInfo(); //CoCo, Show the page info. if this is the last page and there are not "THUMB_TOTAL_NUM_IN_PAGE" thumbnails in this page.                }            }            break;        case THUMB_STAGE_PARSEHEADER:            if ((OS_GetSysTimer() - _wTHUMBStartTime) < THUMB_MAX_PARSEHEADER_TIME)            {                 _bTHUMBTemp = HALJPEG_Status(HALJPEG_PARSE_HEADER);                if (_bTHUMBTemp == JPEG_STATUS_OK)                {                    //update the JPEG info.                    //_THUMB_GetJPEGInfo((BYTE)(_wTHUMBPlayIndex % THUMB_TOTAL_NUM_IN_PAGE));                    //_THUMB_ShowGeneralHelp((BYTE)(_wTHUMBPlayIndex % THUMB_TOTAL_NUM_IN_PAGE));                    _THUMB_Decode();                    OSD_Output(MSG_PROGRESS, 0, 1); //CoCo1.10                    _bTHUMBStage = THUMB_STAGE_DECODE;                    _wTHUMBStartTime = OS_GetSysTimer();                }                else if (_bTHUMBTemp == JPEG_STATUS_UNSUPPORT)                {                    _bTHUMBRetryTimes = 0;                    _THUMB_ProcessError();                    return;                }                else if (_bTHUMBTemp == JPEG_STATUS_FAIL)                {                    _THUMB_ProcessError();                    return;                }                else //unfinish                {                    _THUMB_PlayEnd();                    return;                }            }            else            {                _THUMB_ProcessError();                return;            }            _THUMB_GetPosition((BYTE)(_wTHUMBPlayIndex % THUMB_TOTAL_NUM_IN_PAGE));            _bTHUMBStage = THUMB_STAGE_DECODE;            break;        case THUMB_STAGE_DECODE:            if ((OS_GetSysTimer() - _wTHUMBStartTime) < THUMB_MAX_DECODE_TIME)            {                OSD_Output(MSG_PROGRESS, 0, 1); //CoCo1.10                _bTHUMBTemp = HALJPEG_Status(HALJPEG_DECODE);                if (_bTHUMBTemp == JPEG_STATUS_OK)                {                    //HAL_ControlCDIF(HAL_CDIF_CLOSE); //--CoCo1.20, reduce code size                    __btPlayEnd=TRUE;   //data input end, but not playing end                    _THUMB_GetJPEGInfo((BYTE)(_wTHUMBPlayIndex % THUMB_TOTAL_NUM_IN_PAGE));					_THUMB_ShowGeneralHelp((BYTE)(_wTHUMBPlayIndex % THUMB_TOTAL_NUM_IN_PAGE));                    HALJPEG_Display(__HALJPEGSetting.bFrameBuffer);                    if (_bTHUMBDecodeMode == THUMB_DECODE_PAGE)                    {#ifdef SUPPORT_THUMB_PROGRAM                        if (_bTHUMBSubMode == THUMB_SUBMODE_PROGRAM)                        {                            if (LINEAR_ProgramEntryOperation(LINEAR_QUERY_INDEX, 0, (BYTE)__MMSelectCursor.wDirID, (WORD)(_wTHUMBStartPlayItem+_wTHUMBPlayIndex+1)) == 0xFF) //not found                                _THUMB_DrawFrame((BYTE)(_wTHUMBPlayIndex%THUMB_TOTAL_NUM_IN_PAGE), THUMB_FRAME_NORMAL);                            else                                _THUMB_DrawFrame((BYTE)(_wTHUMBPlayIndex%THUMB_TOTAL_NUM_IN_PAGE), THUMB_FRAME_PROGRAM);                        }                        else#endif //#ifdef SUPPORT_THUMB_PROGRAM                            _THUMB_DrawFrame((BYTE)(_wTHUMBPlayIndex%THUMB_TOTAL_NUM_IN_PAGE), THUMB_FRAME_NORMAL);                        _THUMB_ChangeToNextPic();                    }                    else if (_bTHUMBDecodeMode == THUMB_DECODE_UNDETERMINED)                    {                        //Search next picture to be decoded.                        _wTHUMBPlayIndex++;                        if (!_THUMB_SearchNextValidPic())                            _bTHUMBStop = TRUE;                    }                    else //decode only one thumbnail                    {                        _bTHUMBStop = TRUE;                        _bTHUMBDecodeMode = THUMB_DECODE_PAGE;                    }                }                else if (_bTHUMBTemp == JPEG_STATUS_FAIL)                {                    _THUMB_ProcessError();                }                else //unfinish                {                    _THUMB_PlayEnd();                }            }            else            {                _THUMB_ProcessError();            }            break;        }    }}//*********************************************************************************************************//  Function    :   THUMB_ProcessKey//  Abstract    :   Call this function to process the keys.//  Arguments   :   none.//  Return		:   KEY_NO_KEY: The input key is processed.//              :   INVALID_KEY: The input key is not allowed.//              :   KEY_xxx: The main program need do more process for the key.//  Side Effect :   none.//  Notes       ://*********************************************************************************************************BYTE THUMB_ProcessKey(void){    if (!__bThumbnailMode)        return KEY_BYPASS;    //audio keys    if ((__bKey >= INPUT_KEY_GROUP2) && (__bKey < INPUT_KEY_GROUP3))        return INVALID_KEY;    switch (__bKey)    {    //invalid keys:    case KEY_FF:    case KEY_SF:    // wyc2.17-909S, add language study case    case KEY_LAN_STUDY:    case KEY_SCF:    case KEY_SCB:    case KEY_STEP:    case KEY_FREEZE:    case KEY_BOOKMARK:    case KEY_DIGEST:    case KEY_REPEAT_AB:    case KEY_RESUME:    case KEY_GOTOTIME:    case KEY_RETURN:    case KEY_STOP:    case KEY_ZOOM:    case KEY_STOP_RETURN:    case KEY_DISPLAY:    case KEY_SPST_CTL:    case KEY_INTRO:    case KEY_REMAIN:        return INVALID_KEY;#ifdef IMAGE_FRAME_SETUP //CoCo2.38    case KEY_FUNCTION:        THUMB_NormalExit();        break;#endif //#ifdef IMAGE_FRAME_SETUP //CoCo2.38    case KEY_MENU:#ifdef SUPPORT_DELETE_FILE_IN_THUMB_UI        if (__bTHUMBMainMode == THUMB_MAIN_MODE_EDIT)            return INVALID_KEY;#endif //SUPPORT_DELETE_FILE_IN_THUMB_UI        if (!_THUMB_ToMMUI())            return INVALID_KEY;        break;    case KEY_TVMODE:        __OSDNDBottomMsgAttr.wY = THUMB_HELP_START_V+_THUMB_TuneForTVType(THUMB_TUNE_POS_TYPE_HELP);        return KEY_BYPASS;    case KEY_PAUSE_STEP:        __bKey = KEY_PAUSE;        return KEY_BYPASS;    case KEY_NEXT:  //change to next page        return _THUMB_ChangePageAction(THUMB_NEXT_PAGE);    case KEY_PREV:  //change to previous page        return _THUMB_ChangePageAction(THUMB_PREVIOUS_PAGE);    case KEY_LEFT:  //move the cursor to left item        if (_bTHUMBCursorType == THUMB_CURSOR_PICTURE)        {#ifdef SUPPORT_DELETE_FILE_IN_THUMB_UI            if (_bTHUMBStartSort)            {                if (!_THUMB_SortToPrevious())                {                    return INVALID_KEY;                }            }            else#endif //SUPPORT_DELETE_FILE_IN_THUMB_UI            {                if (_THUMB_CheckLeftBoundary())                {#ifdef THUMBNAIL_ROUND_HIGHLIGHT                    _THUMB_UpdateHighlight(THUMB_UPDATE_HIGHLIGHT_CLEAR);                                        while (((_wTHUMBIndex % THUMB_COLUMN_NUM + 1) < THUMB_COLUMN_NUM) &&                        ((_wTHUMBIndex+1) < _wTHUMBTotalFiles))                    {                        _wTHUMBIndex++;                    }                                        _THUMB_UpdateHighlight(THUMB_UPDATE_HIGHLIGHT_DRAW);#else                    return INVALID_KEY; //exceed the left item.#endif //THUMBNAIL_ROUND_HIGHLIGHT                }                else                {                    _THUMB_UpdateHighlight(THUMB_UPDATE_HIGHLIGHT_CLEAR);                    _wTHUMBIndex--;                    _THUMB_UpdateHighlight(THUMB_UPDATE_HIGHLIGHT_DRAW);                    _THUMB_ShowGeneralHelp((BYTE)(_wTHUMBIndex % THUMB_TOTAL_NUM_IN_PAGE));                }            }        }        else //the cursor is at the button.        {            if (_bTHUMBButtonIndex)            {                //Recover the original highlight button to normal state.                _THUMB_DrawButton(_bTHUMBButtonIndex, THUMB_BUTTON_STATE_ENABLE);                //Update new highlight button.                _bTHUMBButtonIndex--;                _THUMB_DrawButton(_bTHUMBButtonIndex, THUMB_BUTTON_STATE_HIGHLIGHT);            }            else                return INVALID_KEY;        }        break;    case KEY_RIGHT: //move the cursor to right item        if (_bTHUMBCursorType == THUMB_CURSOR_PICTURE)        {#ifdef SUPPORT_DELETE_FILE_IN_THUMB_UI            if (_bTHUMBStartSort)            {                if (!_THUMB_SortToNext())                {                    return INVALID_KEY;                }            }            else#endif //SUPPORT_DELETE_FILE_IN_THUMB_UI            {                if (_THUMB_CheckRightBoundary())                {#ifdef THUMBNAIL_ROUND_HIGHLIGHT                    _THUMB_UpdateHighlight(THUMB_UPDATE_HIGHLIGHT_CLEAR);                    while (_wTHUMBIndex > ((_wTHUMBIndex / THUMB_COLUMN_NUM) * THUMB_COLUMN_NUM))                    {                        _wTHUMBIndex--;                    }                    _THUMB_UpdateHighlight(THUMB_UPDATE_HIGHLIGHT_DRAW);#else                    return INVALID_KEY; //exceed the right item.#endif //THUMBNAIL_ROUND_HIGHLIGHT                }                else

⌨️ 快捷键说明

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