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

📄 hal.h

📁 车载电子影音系统dvd播放系统原程序代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/***************************************************************************

        (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 + -