📄 haljpeg.~c
字号:
switch (__HALJPEGSetting.bOperation) { case HALJPEG_OPERATION_RC: { switch (bAction) { case VIEW_ZOOM_LEFT: return VIEW_ZOOM_DOWN; case VIEW_ZOOM_RIGHT: return VIEW_ZOOM_UP; case VIEW_ZOOM_UP: return VIEW_ZOOM_LEFT; case VIEW_ZOOM_DOWN: return VIEW_ZOOM_RIGHT; default: break; } } break; case HALJPEG_OPERATION_FHFV: { switch (bAction) { case VIEW_ZOOM_LEFT: return VIEW_ZOOM_RIGHT; case VIEW_ZOOM_RIGHT: return VIEW_ZOOM_LEFT; case VIEW_ZOOM_UP: return VIEW_ZOOM_DOWN; case VIEW_ZOOM_DOWN: return VIEW_ZOOM_UP; default: break; } } break; case HALJPEG_OPERATION_RCC: { switch (bAction) { case VIEW_ZOOM_LEFT: return VIEW_ZOOM_UP; case VIEW_ZOOM_RIGHT: return VIEW_ZOOM_DOWN; case VIEW_ZOOM_UP: return VIEW_ZOOM_RIGHT; case VIEW_ZOOM_DOWN: return VIEW_ZOOM_LEFT; default: break; } } break; case HALJPEG_OPERATION_RCFH: { switch (bAction) { case VIEW_ZOOM_LEFT: return VIEW_ZOOM_UP; case VIEW_ZOOM_RIGHT: return VIEW_ZOOM_DOWN; case VIEW_ZOOM_UP: return VIEW_ZOOM_LEFT; case VIEW_ZOOM_DOWN: return VIEW_ZOOM_RIGHT; default: break; } } break; case HALJPEG_OPERATION_FH: { switch (bAction) { case VIEW_ZOOM_LEFT: return VIEW_ZOOM_RIGHT; case VIEW_ZOOM_RIGHT: return VIEW_ZOOM_LEFT; default: break; } } break; case HALJPEG_OPERATION_FV: { switch (bAction) { case VIEW_ZOOM_UP: return VIEW_ZOOM_DOWN; case VIEW_ZOOM_DOWN: return VIEW_ZOOM_UP; default: break; } } break; case HALJPEG_OPERATION_RCFV: { switch (bAction) { case VIEW_ZOOM_LEFT: return VIEW_ZOOM_DOWN; case VIEW_ZOOM_RIGHT: return VIEW_ZOOM_UP; case VIEW_ZOOM_UP: return VIEW_ZOOM_RIGHT; case VIEW_ZOOM_DOWN: return VIEW_ZOOM_LEFT; default: break; } } break; default: break; } return bAction;}//***************************************************************************// Function : _HALJPEG_DoZoomPanReScaling// Abstract : This function will do zoom/pan action by re-scaling.// Arguments : none.// Return : none.// Side Effect : none.// Notes ://***************************************************************************void _HALJPEG_DoZoomPanReScaling(void){ _HALJPEG_ReScaling(); _HALJPEG_Clip(); DISP_Display(__HALJPEGSetting.bFrameBuffer, DISP_MAINVIDEO); //CoCo0.95, Fix the bug about JPEG PIP is wrong DISP_Display(__HALJPEGSetting.bFrameBuffer, DISP_PIP);}//***************************************************************************// Function : _HALJPEG_GetPanBoundary// Abstract : call this function to get left, right, up and down boundary.// Arguments : bAction,// : VIEW_ZOOM_RIGHT ==> get right boundary// : VIEW_ZOOM_LEFT ==> get left boundary// : VIEW_ZOOM_UP ==> get up boundary// : VIEW_ZOOM_DOWN ==> get down boundary// Return : Horizontal/Vertical position.// Side Effect : none.// Notes ://***************************************************************************WORD _HALJPEG_GetPanBoundary (BYTE bAction){ //To get the rotating status. Rotating 90 degree==>TRUE. Else==>FALSE. _bHALJPEGTemp = _HALJPEG_GetRotateStatus(); switch (bAction) { case VIEW_ZOOM_LEFT: if (!_bHALJPEGScalingAll || (_bHALJPEGScalingAll &&!_bHALJPEGTemp)) //Extract part of the image from the FOrg || not rotate { if (_bHALJPEGScalingAll && (_wHALJPEGClipWidth >= _wHALJPEGScalingWidth)) { _wHALJPEGTemp = _wHALJPEGClipHStart; } else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_WIDTH -_wHALJPEGScalingWidth; _wHALJPEGTemp >>= 1; } } else { if (_wHALJPEGClipWidth >= _wHALJPEGScalingHeight) _wHALJPEGTemp = _wHALJPEGClipHStart; else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_WIDTH - _wHALJPEGScalingHeight; _wHALJPEGTemp >>= 1; } } break; case VIEW_ZOOM_RIGHT: if (!_bHALJPEGScalingAll || (_bHALJPEGScalingAll &&!_bHALJPEGTemp)) //Extract part of the image from the FOrg. { if (_bHALJPEGScalingAll && (_wHALJPEGClipWidth >= _wHALJPEGScalingWidth)) { _wHALJPEGTemp = _wHALJPEGClipHStart; } else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_WIDTH - _wHALJPEGScalingWidth; _wHALJPEGTemp >>= 1; _wHALJPEGTemp = _wHALJPEGTemp + _wHALJPEGScalingWidth - _wHALJPEGClipWidth; } } else { if (_wHALJPEGClipWidth >= _wHALJPEGScalingHeight) _wHALJPEGTemp = _wHALJPEGClipHStart; else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_WIDTH - _wHALJPEGScalingHeight; _wHALJPEGTemp >>= 1; _wHALJPEGTemp = _wHALJPEGTemp + _wHALJPEGScalingHeight - _wHALJPEGClipWidth; } } break; case VIEW_ZOOM_UP: if (!_bHALJPEGScalingAll || (_bHALJPEGScalingAll &&!_bHALJPEGTemp)) //Extract part of the image from the FOrg. { if (_bHALJPEGScalingAll && (_wHALJPEGClipHeight >= _wHALJPEGScalingHeight)) { _wHALJPEGTemp = _wHALJPEGClipVStart; } else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_HEIGHT - _wHALJPEGScalingHeight; _wHALJPEGTemp >>= 1; } } else { if (_wHALJPEGClipHeight >= _wHALJPEGScalingWidth) _wHALJPEGTemp = _wHALJPEGClipVStart; else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_HEIGHT - _wHALJPEGScalingWidth; _wHALJPEGTemp >>= 1; } } break; case VIEW_ZOOM_DOWN: if (!_bHALJPEGScalingAll || (_bHALJPEGScalingAll &&!_bHALJPEGTemp)) //Extract part of the image from the FOrg. { if (_bHALJPEGScalingAll && (_wHALJPEGClipHeight >= _HALJPEGScaling.wScalingHeight)) { _wHALJPEGTemp = _wHALJPEGClipVStart; } else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_HEIGHT - _wHALJPEGScalingHeight; _wHALJPEGTemp >>= 1; _wHALJPEGTemp = _wHALJPEGTemp + _wHALJPEGScalingHeight - _wHALJPEGClipHeight; } } else { if (_wHALJPEGClipHeight >= _wHALJPEGScalingWidth) _wHALJPEGTemp = _wHALJPEGClipVStart; else { _wHALJPEGTemp = HALJPEG_DISPLAY_BUF_HEIGHT - _wHALJPEGScalingWidth; _wHALJPEGTemp >>= 1; _wHALJPEGTemp = _wHALJPEGTemp + _wHALJPEGScalingWidth - _wHALJPEGClipHeight; } } break; } return _wHALJPEGTemp;}//***************************************************************************// Function : _HALJPEG_ForceTo8Multiple// Abstract : Transfer the value to 8's multiple.// Arguments : wValue: The value you want to transfer to.// Return : none.// Side Effect : none.// Notes : none.//***************************************************************************void _HALJPEG_ForceTo8Multiple(WORD *wValue){ *wValue = (*wValue + 7) >> 3; *wValue <<= 3;}//***************************************************************************// Function : _HALJPEG_Clip// Abstract : Call DISP's clip function to do clip.// Arguments : none.// Return : none.// Side Effect : none.// Notes : none.//***************************************************************************void _HALJPEG_Clip(void){ _JPEGClipWinParameter.sHStart = _wHALJPEGClipHStart; _JPEGClipWinParameter.wHWidth = _wHALJPEGClipWidth; _JPEGClipWinParameter.sVStart = _wHALJPEGClipVStart; _JPEGClipWinParameter.wVWidth = _wHALJPEGClipHeight; _JPEGClipWinParameter.bEnable = TRUE; //Call "clip" function // Chuan0.66, remove two parameters. DISP_Clip(&_JPEGClipWinParameter, /*__HALJPEGSetting.bFrameBuffer*/DISP_NEXTVSYNC, DISP_MAINVIDEO);}//***************************************************************************// Function : HALJPEG_ChangeTVMode// Abstract : Call this function when TV mode is changed.// Arguments : none.// Return : none.// Side Effect : none.// Notes : none.//***************************************************************************void HALJPEG_ChangeTVMode(void){ /* __dwCoded_Picture_Width = HALJPEG_DISPLAY_BUF_WIDTH; __dwCoded_Picture_Height = HALJPEG_DISPLAY_BUF_HEIGHT; DISP_MainVideoSet(&MainVideoInfo, __dwCoded_Picture_Width, __dwCoded_Picture_Height, DISP_NEXTVSYNC); */ HALJPEG_SetDisplay(); _HALJPEG_Clip();}//***************************************************************************// Function : _HALJPEG_ReScaling// Abstract : This function will do zoom/pan action by re-scaling.// Arguments : none.// Return : none.// Side Effect : none.// Notes ://***************************************************************************void _HALJPEG_ReScaling(void){#ifdef SUPPORT_JPEG_FULL_SCREEN WORD wSrcOffsetH = 0; WORD wSrcOffsetV = 0;#endif //SUPPORT_JPEG_FULL_SCREEN#ifndef JPG_SINGLE_FRAME_BUFFER //__HALJPEGSetting.bFrameBuffer = !__HALJPEGSetting.bFrameBuffer; __wHALJPEGCurrentDisplayBuf = !__wHALJPEGCurrentDisplayBuf; __H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -