📄 hal.h
字号:
/***************************************************************************
(C)Copyright Cheertek Inc. 2002-2003,
D300, all right reserved
Product : SVCD Firmware
Date : 1998.9.30
Author : Cheertek (D300 WWC)
Purpose : Provide all the HAL control
Sources : hal.c
****************************************************************************/
#ifndef __HAL_H__
#define __HAL_H__
#ifdef __cplusplus
extern "C"{
#endif
#include "w99av.h"
// LLY0.83b-2, always include haljpeg.h
// becasue JPEG relative control code is put on HALJPEG module from WinDVD 0.83b-2
#include "haljpeg.h"
////////////////////////////////////////////////////////////
// **** Some extern variable Area *****
// [2] declare in HAL_DigestInitial() -- added by LLY on 1999.01.22
extern int __iDigestHor; // digest horizontal size
extern int __iDigestVer; // digest vertical size
extern int __iDigestHStart; // the picture start point in horizontal
extern int __iDigestVStart; // the picture start point in vertical
// [3] used to keep VCD3.0 feature -- LLY.049
extern RECT __rcHALVCD30Area; // VCD3.0 area
extern DWORD __dwHALVCD30Color;
extern BYTE __bHALVCD30CR;
// [4] used to keep A/V buffer mode -- LLY.276p-4
extern BYTE __bAVBufferMode; // default is unknown value
// [5] keep MPEG video mode -- LLY.102p
extern BYTE __bMPEGVideoMode;
// [6] keep CDDA format -- LLY.161
extern BYTE __bCDDA_DTS;
// wyc.170
// [7] CDDA pre-emphasis/de-emphasis control variable
extern BYTE __bHAL1_Deemphasis;
// [8] keep rectangle area for "Pre-Set Frame Buffer" command -- LLY0.86
extern RECT __rcHAL_PSFBArea;
// [9] I2C programming sharing arrray
#ifdef SUPPORT_I2C
// LLY.277a, it must be careful to use _REG[]
// Because it will be used by _TVModeSet(), and this function will be called by ISR
// And, this function will be called by ISR
#if TV_ENCODER == TV_SAA7120
//static BYTE _REG[128]; // Register value
extern BYTE _REG[128]; // Register value
#else // #if TV_ENCODER == TV_SAA7120
extern BYTE _REG[26]; // Register value // wyc.172 modified by HKC //CoCo.sd
#endif // #if TV_ENCODER == TV_SAA7120
#endif // #ifdef SUPPORT_I2C
// [10] for external IO control.
// wyc.277a-2, extern these two variables.
#ifdef SUPPORT_AV_SYSTEM
extern BYTE __bExtCSR1;
#ifndef NO_TUNER
extern BYTE _aLC72131Reg[3][4];
#endif //
#endif //
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
// ***** Some definition for global variabe usage Area ****
// [1]Keep CDDA format is DTS or PCM : __bCDDA_DTS -- LLY.161-2
// bit[3:0]: indicate the bitstream format -- for parser setting reference
// bit[7:4]: indicate the disc format -- for OSD display info. reference
#define CDDA_FORMAT_UNKNOWN 0x00
#define CDDA_BITSTREAM_PURE 0x01
#define CDDA_BITSTREAM_HDCD CDDA_BITSTREAM_PURE //Kevin0.90, Currently, no difference to decode Pure/HDCD CDDA
#define CDDA_BITSTREAM_DTS 0x02
#define CDDA_BITSTREAM_CDG 0x08 //LJY1.23, distinguish CDDA or CDG(support subcode for CDG).
#define CDDA_DISC_PURE 0x10
#define CDDA_DISC_HDCD 0x40 //Kevin0.90, differentiate HDCD from Pure CDDA disc type
#define CDDA_DISC_DTS 0x20
#define CDDA_PURE 0x11 // Bitstream and Disc all Pure CDDA
#define CDDA_HDCD 0x41 // Bitstream and Disc all HDCD CDDA //Kevin0.90, Currently, no difference to decode Pure/HDCD CDDA
#define CDDA_DTS 0x22 // Bitstream and Disc all DTS CDDA
//LJY1.10, for CDG
// CD-G control flow related
#define CDDA_DISC_CDG 0x80
#define CDDA_CDG 0x88 //LJY1.23, distinguish CDDA or CDG(support subcode for CDG).
/*
// decoding control, bit0=1 means CD-DA bitstream
#define CDDA_CDG 0x81
*/
//LJY1.11, support CDDA anti-shock reset
#define HAL_RESET_ANTISHOCK_CDDA_BUFFER 9
// [2] Define VCD30 VDS difference between NTSC and PAL -- LLY.275
// Vertical calculation rule from OSD --> Video coordination
// Video.y=(OSD.y-VDS)*2, 240/288 --> 480/576
// PAL: Video.y=(PAL_OSD.y - PAL_VDS)*2
// NTSC: Video.y=(NTSC_OSD.y - NTSC_VDS)*2
// ={ (PAL_OSD.y-VDS_DIFF) - (PAL_VDS-HBI_VDS_DIFF) }*2
// =(PAL_OSD.y - PAL_VDS)*2 - (VDS_DIFF-HBI_VDS_DIFF)*2
// So, VCD30_VDS_DIFF = (VDS_DIFF-HBI_DIFF)*2 while PAL --> NTSC
#define HBI_VDS_DIFF 2 // PAL: 23 ; NTSC: 21
#define VCD30_VDS_DIFF (VDS_DIFF-HBI_VDS_DIFF)*2
///////////////////////////////////////////////////////////////////////
// ***** Parameter definition for HAL function API usage Area *****
// [1] parameter brightview control : HAL_AdjustBrightView()
#define HAL_BRIGHTVIEW_NORMAL 0
#define HAL_BRIGHTVIEW_BRIGHT 1
#define HAL_BRIGHTVIEW_SOFT 2
// [2] parameter for contrast effect control : HAL_AdjustContrast()
#define HAL_CONTRAST_LEVEL0 0
#define HAL_CONTRAST_LEVEL1 1
#define HAL_CONTRAST_LEVEL2 2
#define HAL_CONTRAST_LEVEL3 3
#define HAL_CONTRAST_LEVEL4 4
#define HAL_CONTRAST_LEVEL5 5
#define HAL_CONTRAST_LEVEL6 6
#define HAL_CONTRAST_LEVEL7 7
#define HAL_CONTRAST_LEVEL8 8
// [3] parameter for SCART control : HAL_SetSCART()
#define HAL_SCART_CVBS 0
#define HAL_SCART_RGB 1
#define HAL_SCART_POWER_STANDBY 2
#define HAL_SCART_POWER_ON 3
#define HAL_SCART_16_9 4
// [4] parameter for highlight control : HAL_ControlHighlight()
#define HAL_HLI_ACTION_SELECT 1
#define HAL_HLI_ACTION_ACTIVE 2
#define HAL_HLI_ACTION_ENTER 3
#define HAL_HLI_ACTION_TURNOFF 4
#define HAL_HLI_BUTTON_UPPER 64
#define HAL_HLI_BUTTON_DOWN 65
#define HAL_HLI_BUTTON_LEFT 66
#define HAL_HLI_BUTTON_RIGHT 67
// [5] parameter for coordinate convert control : HAL_CoordConvert()
#define HAL_COORDCONVERT_OSD2VIDEO 0
// [6] parameter for VCD 3.0 color control : HAL_VCD30_Color()
#define HAL_VCD30_COLOR_BLACK 0x00108080
#define HAL_VCD30_COLOR_BLUE 0x0023D460
#define HAL_VCD30_COLOR_RED 0x004164D4
#define HAL_VCD30_COLOR_WHITE 0x00EB8080
#define HAL_VCD30_COLOR_YELLOW 0x00A22C8E
#define HAL_VCD30_COLOR_GREEN 0x0070483A
// [7] parameter for setting the packet type: HAL_ControlParser()
#define HAL_PARSER_VIDEO_ID 1
#define HAL_PARSER_AUDIO_ID 2
#define HAL_PARSER_VIDEO_ONLY 3
#define HAL_PARSER_AUDIO_ONLY 4
#define HAL_PARSER_CDROM 5
#define HAL_PARSER_SP_ID 6
#define HAL_PARSER_NV_ID 7
#define HAL_PARSER_ENABLE 8
#define HAL_PARSER_DISABLE 9
#define HAL_PARSER_RESET 10
#define HAL_PARSER_JPEG_DECODE 11 //CoCo.jpeg
// use for second parameter: HAL_ControlParser()
#define HAL_THROW_VIDEO 0xFF
#define HAL_THROW_AUDIO 0xFF
#define HAL_THROW_SP 0xFF // LLY.102
// [8] parameter for audio DAC type reference in HAL_SetAudioDAC()
#define HAL_DAC_PCM1723 0
#define HAL_DAC_W6630 1
#define HAL_DAC_PCM1716 2
#define HAL_DAC_PCM1720 3
#define HAL_DAC_AV2188 4 // LLY.050a
#define HAL_DAC_PCM1602 5 // TCC099
#define HAL_DAC_WM8746 6
#define HAL_DAC_PCM1742 7
// [9] parameter for sample frequency for Audio DAC programming : HAL_SetAudioDAC() -- LLY.051
#define HAL_AUDIO_16BIT_BASE 0
#define HAL_AUDIO_16BIT_16K (HAL_AUDIO_16BIT_BASE+ 0)
#define HAL_AUDIO_16BIT_32K (HAL_AUDIO_16BIT_BASE+ 1)
#define HAL_AUDIO_16BIT_64K (HAL_AUDIO_16BIT_BASE+ 2)
#define HAL_AUDIO_16BIT_24K (HAL_AUDIO_16BIT_BASE+ 3)
#define HAL_AUDIO_16BIT_48K (HAL_AUDIO_16BIT_BASE+ 4)
#define HAL_AUDIO_16BIT_96K (HAL_AUDIO_16BIT_BASE+ 5)
#define HAL_AUDIO_16BIT_22K (HAL_AUDIO_16BIT_BASE+ 6)
#define HAL_AUDIO_16BIT_44K (HAL_AUDIO_16BIT_BASE+ 7)
#define HAL_AUDIO_16BIT_88K (HAL_AUDIO_16BIT_BASE+ 8)
#define HAL_AUDIO_16BIT_END HAL_AUDIO_16BIT_88K
#define HAL_AUDIO_18BIT_BASE (HAL_AUDIO_16BIT_END+ 1)
#define HAL_AUDIO_18BIT_16K (HAL_AUDIO_18BIT_BASE+ 0)
#define HAL_AUDIO_18BIT_32K (HAL_AUDIO_18BIT_BASE+ 1)
#define HAL_AUDIO_18BIT_64K (HAL_AUDIO_18BIT_BASE+ 2)
#define HAL_AUDIO_18BIT_24K (HAL_AUDIO_18BIT_BASE+ 3)
#define HAL_AUDIO_18BIT_48K (HAL_AUDIO_18BIT_BASE+ 4)
#define HAL_AUDIO_18BIT_96K (HAL_AUDIO_18BIT_BASE+ 5)
#define HAL_AUDIO_18BIT_22K (HAL_AUDIO_18BIT_BASE+ 6)
#define HAL_AUDIO_18BIT_44K (HAL_AUDIO_18BIT_BASE+ 7)
#define HAL_AUDIO_18BIT_88K (HAL_AUDIO_18BIT_BASE+ 8)
#define HAL_AUDIO_18BIT_END HAL_AUDIO_18BIT_88K
#define HAL_AUDIO_20BIT_BASE (HAL_AUDIO_18BIT_END+ 1)
#define HAL_AUDIO_20BIT_16K (HAL_AUDIO_20BIT_BASE+ 0)
#define HAL_AUDIO_20BIT_32K (HAL_AUDIO_20BIT_BASE+ 1)
#define HAL_AUDIO_20BIT_64K (HAL_AUDIO_20BIT_BASE+ 2)
#define HAL_AUDIO_20BIT_24K (HAL_AUDIO_20BIT_BASE+ 3)
#define HAL_AUDIO_20BIT_48K (HAL_AUDIO_20BIT_BASE+ 4)
#define HAL_AUDIO_20BIT_96K (HAL_AUDIO_20BIT_BASE+ 5)
#define HAL_AUDIO_20BIT_22K (HAL_AUDIO_20BIT_BASE+ 6)
#define HAL_AUDIO_20BIT_44K (HAL_AUDIO_20BIT_BASE+ 7)
#define HAL_AUDIO_20BIT_88K (HAL_AUDIO_20BIT_BASE+ 8)
#define HAL_AUDIO_20BIT_END HAL_AUDIO_20BIT_88K
#define HAL_AUDIO_24BIT_BASE (HAL_AUDIO_20BIT_END+ 1)
#define HAL_AUDIO_24BIT_16K (HAL_AUDIO_24BIT_BASE+ 0)
#define HAL_AUDIO_24BIT_32K (HAL_AUDIO_24BIT_BASE+ 1)
#define HAL_AUDIO_24BIT_64K (HAL_AUDIO_24BIT_BASE+ 2)
#define HAL_AUDIO_24BIT_24K (HAL_AUDIO_24BIT_BASE+ 3)
#define HAL_AUDIO_24BIT_48K (HAL_AUDIO_24BIT_BASE+ 4)
#define HAL_AUDIO_24BIT_96K (HAL_AUDIO_24BIT_BASE+ 5)
#define HAL_AUDIO_24BIT_22K (HAL_AUDIO_24BIT_BASE+ 6)
#define HAL_AUDIO_24BIT_44K (HAL_AUDIO_24BIT_BASE+ 7)
#define HAL_AUDIO_24BIT_88K (HAL_AUDIO_24BIT_BASE+ 8)
#define HAL_AUDIO_24BIT_END HAL_AUDIO_24BIT_88K
// [10] parameter -- downsample type and mode for _bDownSample usage -- LLY.050a
#define HAL_DOWNSAMPLE_NONE 0
#define HAL_DOWNSAMPLE_GENERAL_48TO441 1
#define HAL_DOWNSAMPLE_LPCM_96TO48 2
// [11] parameter for ZOOM control : HAL_Zoom()
// LLY2.80, remove zoom relative ID, and they have integrated into CC.H -- "VIEW_ZOOM_XXX"
// [12] parameter for input bitstream format : HAL_SetSectorFormat()
// LLY.171, add Mini-DVD case, and re-arrange the index
#define HAL_SECTOR_FORMAT_CDXAM2F2 1
#define HAL_SECTOR_FORMAT_CDXAM2F1 2
#define HAL_SECTOR_FORMAT_CDXAM1 3
#define HAL_SECTOR_FORMAT_CDXAM0 4
#define HAL_SECTOR_FORMAT_DVD2048 5
#define HAL_SECTOR_FORMAT_DVD2064 6
#define HAL_SECTOR_FORMAT_DATAONLY 7
// LLY2.80a, remove these two case, because they are not the standard format
//#define HAL_SECTOR_FORMAT_CDDA 9
// LLY2.80a, add two extra case for audio only & video only
#define HAL_SECTOR_FORMAT_AUDIO_ONLY 8
#define HAL_SECTOR_FORMAT_VIDEO_ONLY 9
#define HAL_SECTOR_FORMAT_MINIDVD 10
// wyc1.10, support one type for DVD-MP3 / DVD-JPG setting.
#define HAL_SECTOR_FORMAT_DVDMP3 11
#define HAL_SECTOR_FORMAT_DVDJPG 12
// Micky1.21, support C3 retry
#define HAL_WITH_C3_IDENTIFY 0x40 //CoCo.C3-retry , reseve bit 6 for C3 push fifo
#define HAL_WITH_SYNC 0x80
#define HAL_WITH_CSS 0x80
// wyc1.00, add a define to check if need to do byte swap of input bitstream.
#define HAL_SECTOR_BYTE_SWAP 0x40
// [13] parameter for input path : HAL_SetInputPath()
#define HAL_INPUT_PATH_HOSTIF 1
#define HAL_INPUT_PATH_CDIF 2
#define HAL_INPUT_PATH_DVDIF 3
#define HAL_INPUT_PATH_ATAPIIF 4
// DVD018, recover the input path to default after show logo
#define HAL_INPUT_PATH_DEFAULTIF 5
// [14] parameter -- CDIF status for HAL_CheckCDIF() usage
#define HAL_CDIF_FREEZE_TIME 0
#define HAL_CDIF_STOP 1
//LLY2.80a, #define HAL_CDIF_WAITDONE 2
#define HAL_CDIF_DONE 3
//LLY.278, #define HAL_CDIF_HEADER_ONLY 4
#define HAL_CDIF_HEADER_START 5
#define HAL_CDIF_HEADER_STOP 6
#define HAL_CDIF_CDDA 7
#define HAL_CDIF_M2F2 8
// [15] parameter for control CDIF : HAL_ControlCDIF()
#define HAL_CDIF_CLOSE 0
#define HAL_CDIF_OPEN 1
// [16] parameter for trick play : HAL_CheckEvent() & HAL_ClearEvent()
#define HAL_EVENT_EOF 0
#define HAL_EVENT_EOR 1
#define HAL_EVENT_TRIGGER 2
#define HAL_EVENT_ALL 3
// [17] parameter for border color : HAL_ClearScreen() & HAL_SetBorderColor()
#define HAL_COLOR_BORDER 0
#define HAL_COLOR_BLACK 1
#define HAL_COLOR_BLUE 2
#define HAL_COLOR_RED 3
//Alex1.24a,add four extra case for autoupgrade error color.
//----------------------------------------------------
#define HAL_COLOR_GREEN 4
#define HAL_COLOR_YELLOW 5
#define HAL_COLOR_PINK 6
#define HAL_COLOR_GRAY 7
#define HAL_COLOR_PURPLE 8
//----------------------------------------------------
// LLY0.86, add two extra case for CT908 mode
#define HAL_COLOR_DIGEST 10
#define HAL_COLOR_THUMB 11
// [18] parameter for reset case : HAL_Reset()
#define HAL_RESET_PARSER 0
#define HAL_RESET_AUDIO 1
#define HAL_RESET_VIDEO 2
#define HAL_RESET_SPST 3
#define HAL_RESET_REALTOTAL 4 // LLY.101
#define HAL_RESET_NV 5 // LLY.170
// wyc1.07, add a define to soft reset RISC.
#define HAL_SOFT_RESET_VIDEO 6
// wyc1.07a, new define
#define HAL_SOFT_RESET_VIDEO_UPDATE_SEQ 7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -