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

📄 thumb.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
        for (_wTHUMBTemp = 0; _wTHUMBTemp < __pMMFilterFilesOfDir[__MMSelectCursor.wDirID]; _wTHUMBTemp++)        {            //Dump file record.            MM_GetDumpedFileRecord();            if (__pMMFileRecord->FileName.bExtID == EXTNAME_JPG)            {                if (!_bTHUMBTemp)                {                    _wTHUMBStartPlayItem = _wTHUMBTemp;                    _bTHUMBTemp = TRUE;                }                _wTHUMBTotalFiles++;            }            else            {                if (_bTHUMBTemp) //All JPEG has beed parsed.                    break;            }         }		/*		_wTHUMBStartPlayItem = 0;        if (MM_ParseDirFiles(__MMPlayingItem.wDirID, EXT_BIT_JPG, 0))        {            // MM_GetDumpedFileRecord will update the __pMMFileRecord. Call MM_GetDumpedFileRecord again will go next file record            // and update the __pMMFileRecord again.                        _wTHUMBTotalFiles = __pMMFilterFilesOfDir[__MMPlayingItem.wDirID];        }		*/    }}//*********************************************************************************************************//  Function    :   _THUMB_InitialStage//  Abstract    :   This fucntion will initialize the stage.//  Arguments   :   none.//  Return		:   none.//  Side Effect :   none.//  Notes       :   _bTHUMBStop and _bTHUMBStage are initialized.//*********************************************************************************************************void _THUMB_InitialStage(void){    _bTHUMBStop = FALSE;    _bTHUMBStage = THUMB_STAGE_START;}//*********************************************************************************************************//  Function    :   _THUMB_InitializeGDI//  Abstract    :   Call this function to initialize the palettes.//  Arguments   :   none.//  Return		:   none.//  Side Effect :   none.//  Notes       ://*********************************************************************************************************void _THUMB_InitializeGDI(void){    _bTHUMBTemp = __SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN;    GDI_ClearRegion(0); //clear region 0    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_SELECT_FRAME_BRIGHT, THUMB_PALETTE_COLOR_SELECT_FRAME_BRIGHT, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_SELECT_FRAME_DARK, THUMB_PALETTE_COLOR_SELECT_FRAME_DARK, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_NORMAL_FRAME_BRIGHT, THUMB_PALETTE_COLOR_NORMAL_FRAME_BRIGHT, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_NORMAL_FRAME_DARK, THUMB_PALETTE_COLOR_NORMAL_FRAME_DARK, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_PROGRAM_FRAME_BRIGHT, THUMB_PALETTE_COLOR_PROGRAM_FRAME_BRIGHT, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_PROGRAM_FRAME_DARK, THUMB_PALETTE_COLOR_PROGRAM_FRAME_DARK, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_HELP_STRING, THUMB_PALETTE_COLOR_HELP_STRING, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_BUTTON_STRING_ENABLE, THUMB_PALETTE_COLOR_BUTTON_STRING_ENABLE, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_BUTTON_STRING_HIGHLIGHT, THUMB_PALETTE_COLOR_BUTTON_STRING_HIGHLIGHT, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_PL_FILE_EXT, THUMB_PALETTE_COLOR_PL_FILE_EXT, FALSE);    //GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_TITLE_STRING, THUMB_PALETTE_COLOR_TITLE_STRING, FALSE);    //GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_PAGE_STRING, THUMB_PALETTE_COLOR_PAGE_STRING, FALSE);    //GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_BUTTON_ENABLE_BACKGROUND, THUMB_PALETTE_COLOR_BUTTON_ENABLE_BACKGROUND, FALSE);    //GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_BUTTON_HIGHLIGHT_BACKGROUND, THUMB_PALETTE_COLOR_BUTTON_HIGHLIGHT_BACKGROUND, FALSE);    //GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_HELP_REGION_BACKGROUND, THUMB_PALETTE_COLOR_HELP_REGION_BACKGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_BUTTON_ENABLE_BACKGROUND, _dwTHUMBBtnEnableColor[_bTHUMBTemp], FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_BUTTON_HIGHLIGHT_BACKGROUND, _dwTHUMBBtnHighlightColor[_bTHUMBTemp], FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_HELP_REGION_BACKGROUND, _dwTHUMBHelpRegionColor[_bTHUMBTemp], FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_TITLE_STRING, _dwTHUMBTitleStringColor[__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN], FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_PAGE_STRING, _dwTHUMBPageStringColor[__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN], FALSE);    //Initialize the palettes of the icons for Program list.    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP3_ICON_TEXT_FOREGROUND, THUMB_PALETTE_COLOR_MP3_ICON_TEXT_FOREGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP3_ICON_SHADOW_1, THUMB_PALETTE_COLOR_MP3_ICON_SHADOW_1, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP3_ICON_SHADOW_2, THUMB_PALETTE_COLOR_MP3_ICON_SHADOW_2, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_WMA_ICON_TEXT_FOREGROUND, THUMB_PALETTE_COLOR_WMA_ICON_TEXT_FOREGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_WMA_ICON_SHADOW_1, THUMB_PALETTE_COLOR_WMA_ICON_SHADOW_1, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_WMA_ICON_SHADOW_2, THUMB_PALETTE_COLOR_WMA_ICON_SHADOW_2, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP4_ICON_TEXT_FOREGROUND, THUMB_PALETTE_COLOR_MP4_ICON_TEXT_FOREGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP4_ICON_SHADOW_1, THUMB_PALETTE_COLOR_MP4_ICON_SHADOW_1, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP4_ICON_SHADOW_2, THUMB_PALETTE_COLOR_MP4_ICON_SHADOW_2, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP2_ICON_TEXT_FOREGROUND, THUMB_PALETTE_COLOR_MP2_ICON_TEXT_FOREGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP2_ICON_SHADOW_1, THUMB_PALETTE_COLOR_MP2_ICON_SHADOW_1, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MP2_ICON_SHADOW_2, THUMB_PALETTE_COLOR_MP2_ICON_SHADOW_2, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_DAT_ICON_TEXT_FOREGROUND, THUMB_PALETTE_COLOR_DAT_ICON_TEXT_FOREGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_DAT_ICON_SHADOW_1, THUMB_PALETTE_COLOR_DAT_ICON_SHADOW_1, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_DAT_ICON_SHADOW_2, THUMB_PALETTE_COLOR_DAT_ICON_SHADOW_2, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_VOB_ICON_TEXT_FOREGROUND, THUMB_PALETTE_COLOR_VOB_ICON_TEXT_FOREGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_VOB_ICON_SHADOW_1, THUMB_PALETTE_COLOR_VOB_ICON_SHADOW_1, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_VOB_ICON_SHADOW_2, THUMB_PALETTE_COLOR_VOB_ICON_SHADOW_2, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_BUTTON_FRAME, THUMB_PALETTE_COLOR_BUTTON_FRAME, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_HELP_REGION_FRAME, THUMB_PALETTE_COLOR_HELP_REGION_FRAME, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_PROGRAM_SYMBOL, THUMB_PALETTE_COLOR_PROGRAM_SYMBOL, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MPG_ICON_TEXT_FOREGROUND, THUMB_PALETTE_COLOR_MPG_ICON_TEXT_FOREGROUND, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MPG_ICON_SHADOW_1, THUMB_PALETTE_COLOR_MPG_ICON_SHADOW_1, FALSE);    GDI_ChangePALEntry(THUMB_PALETTE_ENTRY_MPG_ICON_SHADOW_2, THUMB_PALETTE_COLOR_MPG_ICON_SHADOW_2, FALSE);    //CoCo0.95    GDI_WaitPaletteComplete();    GDI_ActivateRegion(0); //open GDI}//*********************************************************************************************************//  Function    :   _THUMB_TuneFramePosition//  Abstract    :   Tune the thumbnail's frame when according to different TV type.//  Return		:   none.//  Side Effect :   none.//  Notes       ://*********************************************************************************************************void _THUMB_TuneFramePosition(void){    if (__bTVType == SETUP_SCREEN_TV_SYSTEM_NTSC)    {        if(__SetupInfo.bProgressiveScan == SETUP_PROGRESSIVE_SCAN_ON)        {            _bTHUMBTuneFrame_H = THUMB_TUNE_FRAME_H_NTSC_PSCAN;            _bTHUMBTuneFrame_V = THUMB_TUNE_FRAME_V_NTSC_PSCAN;#if (DRAM_CONFIGURATION_TYPE_DVD == DRAM_SIZE_16)            _bTHUMBTuneOSDOffset_H = THUMB_TUNE_OSD_H_OFFSET_NTSC_PSCAN;            _bTHUMBTuneOSDOffset_V = THUMB_TUNE_OSD_V_OFFSET_NTSC_PSCAN;            _bTHUMBTuneOSDDistance_H = THUMB_TUNE_OSD_H_DISTANCE_NTSC_PSCAN;            _bTHUMBTuneOSDDistance_V = THUMB_TUNE_OSD_V_DISTANCE_PAL_PSCAN;#endif        }        else        {            _bTHUMBTuneFrame_H = THUMB_TUNE_FRAME_H_NTSC;            _bTHUMBTuneFrame_V = THUMB_TUNE_FRAME_V_NTSC;#if (DRAM_CONFIGURATION_TYPE_DVD == DRAM_SIZE_16)            _bTHUMBTuneOSDOffset_H = THUMB_TUNE_OSD_H_OFFSET_NTSC;            _bTHUMBTuneOSDOffset_V = THUMB_TUNE_OSD_V_OFFSET_NTSC;            _bTHUMBTuneOSDDistance_H = THUMB_TUNE_OSD_H_DISTANCE_NTSC;            _bTHUMBTuneOSDDistance_V = THUMB_TUNE_OSD_V_DISTANCE_PAL_PSCAN;#endif        }    }    else // PAL    {        if(__SetupInfo.bProgressiveScan == SETUP_PROGRESSIVE_SCAN_ON)        {            _bTHUMBTuneFrame_H= THUMB_TUNE_FRAME_H_PAL_PSCAN;            _bTHUMBTuneFrame_V= THUMB_TUNE_FRAME_V_PAL_PSCAN;#if (DRAM_CONFIGURATION_TYPE_DVD == DRAM_SIZE_16)            _bTHUMBTuneOSDOffset_H = THUMB_TUNE_OSD_H_OFFSET_PAL_PSCAN;            _bTHUMBTuneOSDOffset_V = THUMB_TUNE_OSD_V_OFFSET_PAL_PSCAN;            _bTHUMBTuneOSDDistance_H = THUMB_TUNE_OSD_H_DISTANCE_PAL_PSCAN;            _bTHUMBTuneOSDDistance_V = THUMB_TUNE_OSD_V_DISTANCE_PAL;#endif        }        else        {            _bTHUMBTuneFrame_H= THUMB_TUNE_FRAME_H_PAL;            _bTHUMBTuneFrame_V= THUMB_TUNE_FRAME_V_PAL;#if (DRAM_CONFIGURATION_TYPE_DVD == DRAM_SIZE_16)            _bTHUMBTuneOSDOffset_H = THUMB_TUNE_OSD_H_OFFSET_PAL;            _bTHUMBTuneOSDOffset_V = THUMB_TUNE_OSD_V_OFFSET_PAL;            _bTHUMBTuneOSDDistance_H = THUMB_TUNE_OSD_H_DISTANCE_PAL;            _bTHUMBTuneOSDDistance_V = THUMB_TUNE_OSD_V_DISTANCE_PAL;#endif        }    }}//*********************************************************************************************************//  Function    :   _THUMB_TuneForTVType//  Abstract    :   Call this function to tune the value for different TV type//  Arguments   :   bType: the type of tunning the value.//  Return		:   the value should be tune//  Side Effect :   none.//  Notes       ://*********************************************************************************************************BYTE _THUMB_TuneForTVType(BYTE bType){    if (__bTVType == SETUP_SCREEN_TV_SYSTEM_NTSC)        return 0;    switch (bType)    {    case THUMB_TUNE_POS_TYPE_TITLE:        return THUMB_TUNE_TITLE_START_V_PAL;    case THUMB_TUNE_POS_TYPE_BUTTON:        return THUMB_TUNE_BUTTON_START_V_PAL;    case THUMB_TUNE_POS_TYPE_HELP:        return THUMB_TUNE_HELP_START_V_PAL;    default:        return 0;    }}//*********************************************************************************************************//  Function    :   _THUMB_CheckPlayEnd//  Abstract    :   Call this function to check if we've played the last thumbnail.//  Arguments   :   none.//  Return		:   TRUE: play end.//              :   FALSE: You can go on playing the next thumbnail.//  Side Effect :   none.//  Notes       ://*********************************************************************************************************BYTE _THUMB_CheckPlayEnd(void){#ifdef SUPPORT_DELETE_FILE_IN_THUMB_UI    if (_bTHUMBSubMode == THUMB_SUBMODE_SORT_MODE)    {        if (_wTHUMBPlayIndex > _bTHUMBSortFileEndIndex)            return TRUE;        else            return FALSE;    }    else#endif //SUPPORT_DELETE_FILE_IN_THUMB_UI    {        if ((_wTHUMBPlayIndex + 1) <= _wTHUMBTotalFiles)            return FALSE;                return TRUE;    }}//*********************************************************************************************************//  Function    :   _THUMB_UpdateHighlight//  Abstract    :   This function will Update the highlight.//  Arguments   :   none.//  Return		:   none.//  Side Effect :   none.//  Notes       ://*********************************************************************************************************void _THUMB_UpdateHighlight(BYTE bUpdate){    _bTHUMBTemp = (BYTE)(_wTHUMBIndex % THUMB_TOTAL_NUM_IN_PAGE);    if (bUpdate == THUMB_UPDATE_HIGHLIGHT_DRAW)    {        if (_bTHUMBCursorType == THUMB_CURSOR_PICTURE)        {            _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_SELECT);#ifdef SUPPORT_THUMB_PROGRAM            if (_bTHUMBSubMode == THUMB_SUBMODE_PROGRAM)            {                if (LINEAR_ProgramEntryOperation(LINEAR_QUERY_INDEX, 0, (BYTE)__MMSelectCursor.wDirID, (WORD)(_wTHUMBStartPlayItem+_wTHUMBIndex+1)) != 0xFF)                {                    //If it is a programmed item. Need to draw the Program symbol                    _THUMB_OutputProgramSymbol(_bTHUMBTemp);                }            }#endif //#ifdef SUPPORT_THUMB_PROGRAM        }    }    else //Recover the frame to its correct state when cursor leaves it.    {#ifndef THUMB_DRAW_OSD_FRAME        _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_CLEAR);#endif        //CoCo1.10, fix the bug about the "Program" symbol is not cleared.        //Clear the region before re-draw the frame because the "P" for program need to be cleared.        if (_bTHUMBSubMode != THUMB_SUBMODE_PROGRAM_LIST)        {            _THUMB_ClearProgramSymbol((BYTE)(_wTHUMBIndex % THUMB_TOTAL_NUM_IN_PAGE));        }        //if (_wTHUMBIndex > _wTHUMBPlayIndex)        if (_wTHUMBIndex > (_wTHUMBTotalFiles - 1))        {            _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_CLEAR);        }#ifdef SUPPORT_THUMB_PROGRAM        else if ((_bTHUMBSubMode == THUMB_SUBMODE_PROGRAM) && (LINEAR_ProgramEntryOperation(LINEAR_QUERY_INDEX, 0, (BYTE)__MMSelectCursor.wDirID, (WORD)(_wTHUMBStartPlayItem+_wTHUMBIndex+1)) != 0xFF)) //This is a programmed item.        {            _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_PROGRAM);        }#endif //SUPPORT_THUMB_PROGRAM        else        {            _THUMB_DrawFrame(_bTHUMBTemp, THUMB_FRAME_NORMAL);        }    }}//*********************************************************************************************************//  Function    :   _THUMB_GetPosition//  Abstract    :   This function will calculate the position for the thumbnail.//  Arguments   :   bIndex: The index in a page. Only 0 to 8 is valid.//  Return		:   none.//  Side Effect :   none.//  Notes       :   Update _wTHUMBHStartPos and _wTHUMBVStartPos.//*********************************************************************************************************void _THUMB_GetPosition(BYTE bIndex){    _wTHUMBHStartPos = (THUMB_DISTANCE_WIDTH) * (bIndex % THUMB_COLUMN_NUM) + THUMB_WIDTH * (bIndex % THUMB_COLUMN_NUM) + THUMB_H_REGION;    _wTHUMBVStartPos = (THUMB_DISTANCE_HEIGHT_NTSC) * (bIndex / THUMB_COLUMN_NUM) + THUMB_HEIGHT_NTSC * (bIndex / THUMB_COLUMN_NUM) + THUMB_V_REGION_NTSC;}//*********************************************************************************************************//  Function    :   _THUMB_DrawFrame//  Abstract    :   Draw frame for the thumbnail.//  Arguments   :   bIndex: The index of the thumbnail.//              :   bMode: what kind of frame you want to draw.//  Return		:   none.//  Side Effect :   none.//  Notes       ://*********************************************************************************************************void _THUMB_DrawFrame(BYTE bIndex, BYTE bMode){#ifdef THUMB_DRAW_OSD_FRAME    _THUMBFrame.bStyle = FRAME_DOUBLE;    _THUMBFrame.bThickness = THUMB_FRAME_THICKNESS >> 1;    _THUMBFrame.bColorCenter = PAL_ENTRY_COLOR_TRANSPARENT;    _THUMB_GetPosition(bIndex);    _wTHUMBHStartPos -= _bTHUMBTuneFrame_H;    _wTHUMBVStartPos -= _bTHUMBTuneFrame_V;    if (__bTVType == SETUP_SCREEN_TV_SYSTEM_NTSC)    {        _THUMBFrame.rect.wRight = _wTHUMBHStartPos+THUMB_WIDTH+THUMB_TUNE_DISPLAY_WIDTH_NTSC;        _THUMBFrame.rect.wBottom = _wTHUMBVStartPos+THUMB_HEIGHT_NTSC+THUMB_TUNE_DISPLAY_HEIGHT_NTSC;

⌨️ 快捷键说明

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