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

📄 haljpeg.~c

📁 ct952 source code use for Digital Frame Photo
💻 ~C
📖 第 1 页 / 共 5 页
字号:
        }        else //fit width        {            _bHALJPEGFit = HALJPEG_DISPLAY_FIT_WIDTH;        }    }}//***************************************************************************//  Function    :   _HALJPEG_ResetClipRegionToFullBuf//  Abstract    :   Call this function to clip full region//  Arguments   :   none.//  Return      :   none.//  Side Effect :   none.//  Notes       :   none.//***************************************************************************void _HALJPEG_ResetClipRegionToFullBuf(void){    _wHALJPEGClipHStart = 0;    _wHALJPEGClipVStart = 0;    _wHALJPEGClipWidth = HALJPEG_DISPLAY_BUF_WIDTH;    _wHALJPEGClipHeight = HALJPEG_DISPLAY_BUF_HEIGHT;}//***************************************************************************//  Function    :   _HALJPEG_CalculateScaling//  Abstract    :   Calculate the scaling according to the zoom mode.//  Arguments   :   bZoomMode ==> The paramter of zoom mode.//  Return      :   none.//  Side Effect :   none.//  Notes       ://***************************************************************************void _HALJPEG_CalculateScaling(BYTE bZoomMode){    _bHALJPEGScalingAll = TRUE; //Extract all image from FOrg.    _HALJPEG_GetFitWidthOrHeight();    //To get the rotating status. Rotating 90 degree==>TRUE. Else==>FALSE.    _bHALJPEGTemp = _HALJPEG_GetRotateStatus();    //Calculate the scaling rate that we have to use the clip command	if (_bHALJPEGTemp) //rotate	{		if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width			_wHALJPEGScalingRate = (WORD)((DWORD)_wHALJPEGRealHeight * 1000L / (DWORD)__HALJPEGSetting.wDisplayWidth);		else //fit height			_wHALJPEGScalingRate = (WORD)((DWORD)_wHALJPEGRealWidth * 1000L / (DWORD)__HALJPEGSetting.wDisplayHeight);	}	else	{		if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width			_wHALJPEGScalingRate = (WORD)((DWORD)_wHALJPEGRealWidth*1000L/(DWORD)__HALJPEGSetting.wDisplayWidth);		else //fit height			_wHALJPEGScalingRate = (WORD)((DWORD)_wHALJPEGRealHeight*1000L/(DWORD)__HALJPEGSetting.wDisplayHeight);	}    _wHALJPEGExtractWidth = _wHALJPEGRealWidth;   //Extract the width in the original buffer.    _wHALJPEGExtractHeight = _wHALJPEGRealHeight; //Extract the Height in the original buffer.    //Reset the clip region    _HALJPEG_ResetClipRegionToFullBuf();    switch (bZoomMode)    {    case VIEW_ZOOM25:        _bHALJPEGTemp1 = 4;        _bHALJPEGZoomRate = 25;        break;    case VIEW_ZOOM50:        _bHALJPEGTemp1 = 2;        _bHALJPEGZoomRate = 50;        break;    case VIEW_ZOOM100:        _bHALJPEGTemp1 = 1;        _bHALJPEGZoomRate = 100;        break;    case VIEW_ZOOM150:        _bHALJPEGZoomRate = 150;        break;    case VIEW_ZOOM200:        _bHALJPEGZoomRate = 200;        break;    default:        break;    }    if (bZoomMode <= VIEW_ZOOM100)    {        if (_bHALJPEGTemp) //rotate        {            if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width                _wHALJPEGScalingHeight = __HALJPEGSetting.wDisplayWidth / _bHALJPEGTemp1;            else                _wHALJPEGScalingWidth = __HALJPEGSetting.wDisplayHeight / _bHALJPEGTemp1;        }        else        {            if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width                _wHALJPEGScalingWidth = __HALJPEGSetting.wDisplayWidth / _bHALJPEGTemp1;            else                _wHALJPEGScalingHeight = __HALJPEGSetting.wDisplayHeight / _bHALJPEGTemp1;        }    }    else    {        //Need to re-decode when zoom in mode.        if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width        {            if (_bHALJPEGTemp) //rotate                _wHALJPEGScalingHeight = HALJPEG_DISPLAY_BUF_WIDTH;            else                _wHALJPEGScalingWidth = HALJPEG_DISPLAY_BUF_WIDTH;        }        else //fit height        {            if (_bHALJPEGTemp) //rotate                _wHALJPEGScalingWidth = HALJPEG_DISPLAY_BUF_HEIGHT;            else                _wHALJPEGScalingHeight = HALJPEG_DISPLAY_BUF_HEIGHT;        }    }    //CoCo, Does CT909 JPEG Decoder need this?    _HALJPEG_ForceTo8Multiple(&_wHALJPEGScalingWidth);    _HALJPEG_ForceTo8Multiple(&_wHALJPEGScalingHeight);    if (_bHALJPEGTemp) //Rotate 90    {        if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width        {            _wHALJPEGScalingWidth = (WORD)((DWORD)_wHALJPEGScalingHeight * (DWORD)_wHALJPEGRealWidth / (DWORD)_wHALJPEGRealHeight);            _HALJPEG_ProtectBufHeight(&_wHALJPEGScalingWidth);        }        else //fit height        {            _wHALJPEGScalingHeight = (WORD)((DWORD)_wHALJPEGScalingWidth * (DWORD)_wHALJPEGRealHeight / (DWORD)_wHALJPEGRealWidth);            _HALJPEG_ProtectBufWidth(&_wHALJPEGScalingHeight);        }    }    else    {        if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width        {            _wHALJPEGScalingHeight = (WORD)((DWORD)_wHALJPEGScalingWidth * (DWORD)_wHALJPEGRealHeight / (DWORD)_wHALJPEGRealWidth);            _HALJPEG_ProtectBufHeight(&_wHALJPEGScalingHeight);        }        else //fit height        {            _wHALJPEGScalingWidth = (WORD)((DWORD)_wHALJPEGScalingHeight * (DWORD)_wHALJPEGRealWidth / (DWORD)_wHALJPEGRealHeight);            _HALJPEG_ProtectBufWidth(&_wHALJPEGScalingWidth);        }    }    //CoCo, Does CT909 JPEG Decoder need this?    _HALJPEG_ForceTo8Multiple(&_wHALJPEGScalingWidth);    _HALJPEG_ForceTo8Multiple(&_wHALJPEGScalingHeight);    _wHALJPEGExtractHStart = 0; //Extract the image from the starting position of the FOrg.    _wHALJPEGExtractVStart = 0; //Extract the image from the starting position of the FOrg.    if (bZoomMode > VIEW_ZOOM100)    {        //Calculate the width and height of the clip region.        //if (_wHALJPEGScalingRate < (WORD)_bHALJPEGZoomRate*10)        {            //First, extract image by decode command. Second, clip it to fit the zoom rate.            if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width            {                if (_bHALJPEGTemp) //Rotate 90                    _wHALJPEGClipWidth = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_WIDTH*(DWORD)HALJPEG_DISPLAY_BUF_WIDTH*100L/(DWORD)__HALJPEGSetting.wDisplayWidth/(DWORD)_bHALJPEGZoomRate);                else                    _wHALJPEGClipWidth = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_WIDTH*(DWORD)HALJPEG_DISPLAY_BUF_WIDTH*100L/(DWORD)__HALJPEGSetting.wDisplayWidth/(DWORD)_bHALJPEGZoomRate);                _wHALJPEGClipHeight = (WORD)((DWORD)_wHALJPEGClipWidth * (DWORD)HALJPEG_DISPLAY_BUF_HEIGHT / (DWORD)HALJPEG_DISPLAY_BUF_WIDTH);            }            else            {                if (_bHALJPEGTemp) //Rotate 90                    _wHALJPEGClipHeight = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*(DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*100L/(DWORD)__HALJPEGSetting.wDisplayHeight/(DWORD)_bHALJPEGZoomRate);                else                    _wHALJPEGClipHeight = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*(DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*100L/(DWORD)__HALJPEGSetting.wDisplayHeight/(DWORD)_bHALJPEGZoomRate);                _wHALJPEGClipWidth = (WORD)((DWORD)_wHALJPEGClipHeight * (DWORD)HALJPEG_DISPLAY_BUF_WIDTH / (DWORD)HALJPEG_DISPLAY_BUF_HEIGHT);            }            _wHALJPEGClipHStart = (HALJPEG_DISPLAY_BUF_WIDTH - _wHALJPEGClipWidth) >> 1;            _wHALJPEGClipVStart = (HALJPEG_DISPLAY_BUF_HEIGHT - _wHALJPEGClipHeight) >> 1;        }        /*        else        {            _bHALJPEGScalingAll = FALSE;            //Calculate the width and height of the picture that we want to extract from FOrg.            if (_bHALJPEGTemp) //Rotate 90            {                if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width                {                    if (((DWORD)__HALJPEGSetting.wDisplayWidth*(DWORD)_wHALJPEGRealWidth*(DWORD)_bHALJPEGZoomRate/100L/(DWORD)_wHALJPEGRealHeight) > (DWORD)HALJPEG_DISPLAY_BUF_HEIGHT)                    {                        //fill the whole screen to prevent the black region                        _wHALJPEGScalingWidth = HALJPEG_DISPLAY_BUF_HEIGHT;                        _wHALJPEGExtractWidth = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*(DWORD)_wHALJPEGRealHeight/(DWORD)__HALJPEGSetting.wDisplayWidth*100L/(DWORD)_bHALJPEGZoomRate);                    }                    else                        _wHALJPEGScalingWidth = (WORD)((DWORD)__HALJPEGSetting.wDisplayWidth*(DWORD)_wHALJPEGRealWidth / (DWORD)_wHALJPEGRealHeight*(DWORD)_bHALJPEGZoomRate/100L);                    _wHALJPEGExtractHeight = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_WIDTH*(DWORD)_wHALJPEGRealHeight*100L/(DWORD)__HALJPEGSetting.wDisplayWidth/(DWORD)_bHALJPEGZoomRate);                }                else //fit height                {                    if (((DWORD)__HALJPEGSetting.wDisplayHeight*(DWORD)_wHALJPEGRealHeight*(DWORD)_bHALJPEGZoomRate/100L/(DWORD)_wHALJPEGRealWidth) > (DWORD)HALJPEG_DISPLAY_BUF_WIDTH)                    {                        //fill the whole screen to prevent the black region                        _wHALJPEGExtractHeight = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_WIDTH*(DWORD)_wHALJPEGRealWidth*100L/(DWORD)__HALJPEGSetting.wDisplayHeight/(DWORD)_bHALJPEGZoomRate);                        _wHALJPEGScalingHeight = HALJPEG_DISPLAY_BUF_WIDTH;                    }                    else                        _wHALJPEGScalingHeight = (WORD)((DWORD)__HALJPEGSetting.wDisplayHeight*(DWORD)_wHALJPEGRealHeight/(DWORD)_wHALJPEGRealWidth*(DWORD)_bHALJPEGZoomRate/100L);                    _wHALJPEGExtractWidth = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*(DWORD)_wHALJPEGRealWidth*100L/(DWORD)__HALJPEGSetting.wDisplayHeight/(DWORD)_bHALJPEGZoomRate);                }            }            else            {                if (_bHALJPEGFit == HALJPEG_DISPLAY_FIT_WIDTH) // fit width                {                    _wHALJPEGExtractWidth = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_WIDTH*(DWORD)_wHALJPEGRealWidth*100L/(DWORD)__HALJPEGSetting.wDisplayWidth/(DWORD)_bHALJPEGZoomRate);                    if (((DWORD)__HALJPEGSetting.wDisplayWidth*(DWORD)_wHALJPEGRealHeight*(DWORD)_bHALJPEGZoomRate/100L/(DWORD)_wHALJPEGRealWidth) > (DWORD)HALJPEG_DISPLAY_BUF_HEIGHT)                    {                        //fill the whole screen to prevent the black region                        _wHALJPEGExtractHeight = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*(DWORD)_wHALJPEGRealWidth*100L/(DWORD)__HALJPEGSetting.wDisplayWidth/(DWORD)_bHALJPEGZoomRate);                        _wHALJPEGScalingHeight = HALJPEG_DISPLAY_BUF_HEIGHT;                    }                    else                        _wHALJPEGScalingHeight = (WORD)((DWORD)__HALJPEGSetting.wDisplayWidth*(DWORD)_wHALJPEGRealHeight/(DWORD)_wHALJPEGRealWidth*(DWORD)_bHALJPEGZoomRate/100L);                }                else //fit height                {                    if (((DWORD)__HALJPEGSetting.wDisplayHeight*(DWORD)_wHALJPEGRealWidth*(DWORD)_bHALJPEGZoomRate/100L/(DWORD)_wHALJPEGRealHeight) > (DWORD)HALJPEG_DISPLAY_BUF_WIDTH)                    {                        //fill the whole screen to prevent the black region                        _wHALJPEGExtractWidth = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_WIDTH*(DWORD)_wHALJPEGRealHeight*100L/(DWORD)__HALJPEGSetting.wDisplayHeight/(DWORD)_bHALJPEGZoomRate);                        _wHALJPEGScalingWidth = HALJPEG_DISPLAY_BUF_WIDTH;                    }                    else                        _wHALJPEGScalingWidth = (WORD)((DWORD)__HALJPEGSetting.wDisplayHeight*(DWORD)_wHALJPEGRealWidth/(DWORD)_wHALJPEGRealHeight*(DWORD)_bHALJPEGZoomRate/100L);                    _wHALJPEGExtractHeight = (WORD)((DWORD)HALJPEG_DISPLAY_BUF_HEIGHT*(DWORD)_wHALJPEGRealHeight*100L/(DWORD)__HALJPEGSetting.wDisplayHeight/(DWORD)_bHALJPEGZoomRate);                }            }            //CoCo, Does CT909 need it?            _HALJPEG_ForceTo8Multiple(&_wHALJPEGExtractWidth);            _HALJPEG_ForceTo8Multiple(&_wHALJPEGExtractHeight);            _HALJPEG_ForceTo8Multiple(&_wHALJPEGScalingWidth);            _HALJPEG_ForceTo8Multiple(&_wHALJPEGScalingHeight);            //Set the starting position to extract the image from FOrg.            _wHALJPEGExtractHStart = (_wHALJPEGRealWidth - _wHALJPEGExtractWidth) >> 1;            _wHALJPEGExtractVStart = (_wHALJPEGRealHeight - _wHALJPEGExtractHeight) >> 1;            //CoCo, Does CT909 need it?            _HALJPEG_ForceTo8Multiple(&_wHALJPEGExtractHStart);            _HALJPEG_ForceTo8Multiple(&_wHALJPEGExtractVStart);        }        */    }#ifndef CT950_STYLE    _HALJPEG_TuneForTVAttribute();#elif (DRAM_CONFIGURATION_TYPE == DRAM_SIZE_16)    _HALJPEG_TuneForTVAttribute();#endif //#ifndef CT950_STYLE    if (_wHALJPEGScalingWidth < HALJPEG_DISPLAY_BUF_WIDTH)    {        if ((HALJPEG_DISPLAY_BUF_WIDTH-_wHALJPEGScalingWidth) <= HALJPEG_ENLARGE_WIDTH_PIXELS)        {            _wHALJPEGScalingWidth = HALJPEG_DISPLAY_BUF_WIDTH;        }    }    if (_wHALJPEGScalingHeight < HALJPEG_DISPLAY_BUF_HEIGHT)    {        if ((HALJPEG_DISPLAY_BUF_HEIGHT-_wHALJPEGScalingHeight) <= HALJPEG_ENLARGE_HEIGHT_PIXELS)        {            _wHALJPEGScalingHeight = HALJPEG_DISPLAY_BUF_HEIGHT;        }    }}//***************************************************************************//  Function    :   _HALJPEG_FirstScaling//  Abstract    :   Do the first scaling to tell RISC scaling 3 frame buffer(big original buffer)//              :   to one frame buffer. (720x480)//  Arguments   :   none.//  Return      :   none.//  Side Effect :   none.//  Notes       :   Modify _wHALJPEGRealWidth and _wHALJPEGRealHeight.//***************************************************************************void _HALJPEG_FirstScaling(void){    //fit height    if ((DWORD)((DWORD)_wHALJPEGRealWidth * (DWORD)HALJPEG_FIRST_SCALING_HEIGHT) <        (DWORD)((DWORD)_wHALJPEGRealHeight * (DWORD)HALJPEG_FIRST_SCALING_WIDTH))    {        if (_wHALJPEGRealHeight > HALJPEG_FIRST_SCALING_HEIGHT)        {            //fit height            //Can't exchange the sequence of calculating the width and height            //Real width must be 8's multiple.            _wHALJPEGRealWidth = (WORD)((DWORD)_wHALJPEGRealWidth * (DWORD)HALJPEG_FIRST_SCALING_HEIGHT / (DWORD)_wHALJPEGRealHeight);            _HALJPEG_ForceTo8Multiple(&_wHALJPEGRealWidth);            _wHALJPEGRealHeight =  HALJPEG_FIRST_SCALING_HEIGHT;        }    }    else //fit width    {        if (_wHALJPEGRealWidth > HALJPEG_FIRST_SCALING_WIDTH)        {            //Can't exchange the sequence of calculating the width and height            //Real height must be 2's multiple.            _wHALJPEGRealHeight = (WORD)((DWORD)_wHALJPEGRealHeight * (DWORD)HALJPEG_FIRST_SCALING_WIDTH / (DWORD)_wHALJPEGRealWidth);            _HALJPEG_ForceTo8Multiple(&_wHALJPEGRealHeight);            _wHALJPEGRealWidth =  HALJPEG_FIRST_SCALING_WIDTH;        }    }}//***************************************************************************//  Function    :   _HALJPEG_TransformPanAction//  Abstract    :   This function will transform the action of the pan according to//              :   current operation.//  Arguments   :   bAction, the action of pan.//  Return      :   The action of pan.//  Side Effect :   none.//  Notes       :   use __HALJPEGSetting.bOperation to judge which pan action should be transformed.//***************************************************************************BYTE _HALJPEG_TransformPanAction(BYTE bAction){

⌨️ 快捷键说明

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