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

📄 haljpeg.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 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 + -