📄 haljpeg.h
字号:
//**************************************************************************
// Copyright (c) 2003, Cheertek Inc . All rights reserved.
// D300, all right reserved.
// Product : WinDVD Firmware
// Date : 2003.5.5
// Author : Cheertek (D300 CoCo Chiang)
// Purpose : JPEG-relative control
// Sources : HALJPEG.c/HALJPEG.h
//***************************************************************************
#ifndef __HALJPEG_H__
#define __HALJPEG_H__
//Open this define to support JPEG 1:1 ratio.
#define SUPPORT_JPEG_KEEP_1X1_RATIO
// parameter for JPEG's rotating status
#define HAL_JPEG_ROTATE_NONE 0
#define HAL_JPEG_ROTATE_RIGHT_90 1
#define HAL_JPEG_ROTATE_RIGHT_180 2
#define HAL_JPEG_ROTATE_RIGHT_270 3
#define HAL_JPEG_ROTATE_LEFT_90 3
#define HAL_JPEG_ROTATE_LEFT_180 2
#define HAL_JPEG_ROTATE_LEFT_270 1
// parameter for JPEG's flipping status
#define HAL_JPEG_FLIP_NONE 0
#define HAL_JPEG_FLIP_HORIZONTAL 1
#define HAL_JPEG_FLIP_VERTICAL 2
// define the panning pixels
#define HAL_JPEG_PAN_PIXELS 32
#ifdef SUPPORT_JPEG_3_FRAMES
#ifdef SUPPORT_JPEG_KEEP_1X1_RATIO
#define HAL_DISPLAY_CD_JPEG_FIRST_SCALING_WIDTH 640
#define HAL_DISPLAY_CD_JPEG_FIRST_SCALING_HEIGHT 432
#define HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_WIDTH 624
#define HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_HEIGHT 416
#endif //SUPPORT_JPEG_KEEP_1X1_RATIO
#define HAL_DISPLAY_CD_JPEG_WIDTH 704
#define HAL_DISPLAY_CD_JPEG_HEIGHT 480
#define HAL_DISPLAY_DVD_JPEG_WIDTH 704
#define HAL_DISPLAY_DVD_JPEG_HEIGHT 432
#else
// parameter for displaying JPEG
#ifdef JPEG_SMALL_BUFFER //CoCo.230, tune the JPEG buffer for 16M SDRAM.
/*
#define HAL_DISPLAY_JPEG_WIDTH 552
#define HAL_DISPLAY_JPEG_HEIGHT 368
*/
#ifdef SUPPORT_JPEG_KEEP_1X1_RATIO
#define HAL_DISPLAY_CD_JPEG_FIRST_SCALING_WIDTH 592
#define HAL_DISPLAY_CD_JPEG_FIRST_SCALING_HEIGHT 400
#define HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_WIDTH 544
#define HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_HEIGHT 368
#endif //SUPPORT_JPEG_KEEP_1X1_RATIO
#define HAL_DISPLAY_CD_JPEG_WIDTH 624
#define HAL_DISPLAY_CD_JPEG_HEIGHT 416
#define HAL_DISPLAY_DVD_JPEG_WIDTH 576
#define HAL_DISPLAY_DVD_JPEG_HEIGHT 384
#else //This case is for CT908AC-64M and CT908B-32M
#ifdef SUPPORT_JPEG_KEEP_1X1_RATIO
#define HAL_DISPLAY_CD_JPEG_FIRST_SCALING_WIDTH 720 //672 //xuli1108
#define HAL_DISPLAY_CD_JPEG_FIRST_SCALING_HEIGHT 480 //448
#define HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_WIDTH 720 //672
#define HAL_DISPLAY_DVD_JPEG_FIRST_SCALING_HEIGHT 480 //448
#endif //SUPPORT_JPEG_KEEP_1X1_RATIO
#define HAL_DISPLAY_CD_JPEG_WIDTH 720
#define HAL_DISPLAY_CD_JPEG_HEIGHT 480
#define HAL_DISPLAY_DVD_JPEG_WIDTH 720
#define HAL_DISPLAY_DVD_JPEG_HEIGHT 480
#endif
#endif
// parameter for JPEG command
#define HAL_JPEG_START_DECODE 1
#define HAL_JPEG_STOP_DECODE 2
#define HAL_JPEG_DISPLAY 3
// The starting address for downloading Zig-Zag table for DSP
#define HAL_JPEG_ZZTABLE_START_ADDRESS 0x760
// define the "crop" size
#define HAL_JPEG_CROP_WIDTH 40
#define HAL_JPEG_CROP_HEIGHT 32
// parameter for "fit widht" or "fit height"
#define HAL_JPEG_DISPLAY_FIT_WIDTH 0
#define HAL_JPEG_DISPLAY_FIT_HEIGHT 1
// parameter for "read" down sample
#define HAL_JPEG_READ_DOWNSAMPLE_8X8 8
#define HAL_JPEG_READ_DOWNSAMPLE_4X4 4
#define HAL_JPEG_READ_DOWNSAMPLE_2X2 2
#define HAL_JPEG_READ_DOWNSAMPLE_1X1 1
// parameter for "set" down sample
#define HAL_JPEG_SET_DOWNSAMPLE_8X8 3
#define HAL_JPEG_SET_DOWNSAMPLE_4X4 2
#define HAL_JPEG_SET_DOWNSAMPLE_2X2 1
#define HAL_JPEG_SET_DOWNSAMPLE_1X1 0
#define HAL_JPEG_SET_DOWNSAMPLE_DEFAULT 0xff
// define the size to tune the JPEG's size for "fit screen"
//#define HAL_JPEG_TUNE_WIDTH 100
//#define HAL_JPEG_TUNE_HEIGHT 80
//#define HAL_JPEG_TUNE_WIDTH 160
//#define HAL_JPEG_TUNE_HEIGHT 128
#define HAL_JPEG_TUNE_WIDTH 120
#define HAL_JPEG_TUNE_HEIGHT 96
// define the parameter for JPEG's decode function.
#define HAL_JPEG_DECODE 0
#define HAL_JPEG_REDECODE 1
#define HAL_JPEG_STOP_DECODE 2
//CoCo2.80a, for CT908 JPEG
#define HAL_JPEG_NODECODE 3
// define the return value for zoom function.
#define HAL_ZOOM_FAIL 0
#define HAL_ZOOM_OK 1
#define HAL_ZOOM_REDO 2
// define the effect of slide transition
#define HAL_JPEG_EFFECT_NO_EFFECT 0
#define HAL_JPEG_EFFECT_COVER_UP 2
#define HAL_JPEG_EFFECT_COVER_DOWN 3
#define HAL_JPEG_EFFECT_UNCOVER_UP 4
#define HAL_JPEG_EFFECT_UNCOVER_DOWN 5
#define HAL_JPEG_EFFECT_SPLIT_HORIZONTAL_IN 6
#define HAL_JPEG_EFFECT_SPLIT_HORIZONTAL_OUT 7
#define HAL_JPEG_EFFECT_WIPE_UP 8
#define HAL_JPEG_EFFECT_WIPE_DOWN 9
#define HAL_JPEG_EFFECT_BLINDS_HORIZONTAL_UP 10
#define HAL_JPEG_EFFECT_BLINDS_HORIZONTAL_DOWN 11
#define HAL_JPEG_EFFECT_FADE_THROUGH_BLACK 12
#define HAL_JPEG_EFFECT_AUTO_PAN 14 //CoCo2.81, new JPEG effect
// define the combination of "rotate" and "flip"
#define HAL_JPEG_OPERATION_I 1
#define HAL_JPEG_OPERATION_FH 2
#define HAL_JPEG_OPERATION_FV 3
#define HAL_JPEG_OPERATION_FHFV 4
#define HAL_JPEG_OPERATION_RC 5
#define HAL_JPEG_OPERATION_RCC 6
#define HAL_JPEG_OPERATION_RCFH 7
#define HAL_JPEG_OPERATION_RCFV 8
// define the width and height for slide show.
#define HAL_JPEG_DISPLAY_SLIDESHOW_WIDTH 600
#define HAL_JPEG_DISPLAY_SLIDESHOW_HEIGHT 400
// define the background's color of JPEG
#define HAL_JPEG_THUMBNAIL_BACKGROUND_COLOR 0x23d460
#define HAL_JPEG_SLIDESHOW_BACKGROUND_COLOR 0x008080
//define the result of calculating scaling
#define HAL_JPEG_SCALING_RESULT_REDECODE 0
#define HAL_JPEG_SCALING_RESULT_CLIP_ONLY 1
//define the parameter for "blur".
#define HAL_JPEG_DECODE_BLUR_NONE 0
#define HAL_JPEG_DECODE_BLUR_1 1
#define HAL_JPEG_DECODE_BLUR_2 2
//extern variables
extern WORD __wHStart;
extern WORD __wVStart;
extern WORD __wWidth;
extern WORD __wHeight;
extern WORD __wJPEGScaling;
extern BYTE __bJPEGFullScreen;
extern BYTE __bJPEGCrop;
extern WORD __wPicHsize;
extern WORD __wPicVsize;
extern BYTE __bJPEGEffect;
extern BYTE __bJPEGOperation;
extern WORD __wCheckDecodeHang;
extern BYTE __bDoJPEGEffect;
#ifdef _DEBUG_INFO
extern BYTE __bJPEGFilter;
#endif
//export APIs
void HAL_JPEGDecode (BYTE bDecode);
void HAL_JPEGParseHeader (void);
void HAL_JPEGInitial (void);
BYTE HAL_GetZoomFactor (void);
//CoCo2.80a, for CT908 JPEG
void HAL_JPEGTransformOperation(BYTE bPreviousResult, BYTE bCurrentOperation);
void HAL_JPEGOperation(void);
BYTE HAL_JPEGCanDoEffect(void);
//internal functions
void _JPEGRealSize (void);
void _JPEGGetZoomScalingRate (void);
void _JPEGSetTVDisplay (void);
void _JPEGRecoverToNormal (void);
WORD _JPEGGetPanBoundary (BYTE bAction);
void _JPEGGetFitWidthOrHeight (void);
BYTE _JPEGZoom (BYTE bAction, BYTE bDecodeMode);
//CoCo2.80a, for CT908 JPEG
BYTE _JPEGCalculateScaling(BYTE bZoomMode);
BYTE _GetJPEGRotateStatus();
void _ForceTo8Multiple(WORD *wValue);
void _JPEGDecodeCmd(BYTE bMode, BYTE bZoomFactor);
BYTE _TransformPanAction(BYTE bAction);
void _JPEGDisplay(BYTE bDispAction);
void _DoZoomPanDecode(void);
void _JPEGFirstScaling(void);
#endif //__HALJPEG_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -