www.pudn.com > 6027_HD65.rar > shareinf.h
/**********************************************************************/
/*************** MTK CONFIDENTIAL & COPYRIGHTED ****************/
/*************** ****************/
/*************** $Modtime:: 04/08/04 7:03p $ ****************/
/*************** $Revision:: 26 $ ****************/
/*************** ****************/
/*************** Description : DVD Shared Data Item ****************/
/*************** ****************/
/*************** ****************/
/*************** Company : MediaTek Inc. ****************/
/*************** Programmer : Sung-Ching Lin ****************/
/**********************************************************************/
#ifndef _SHAREINF_H_
#define _SHAREINF_H_
// *********************************************************************
// Define shared gneral purpose register
// *********************************************************************
#define SR_OSDCMD_0 0x00
#define SR_OSDCMD_1 0x01
#define SR_OSDCMD_2 0x02
#define SR_OSDCMD_3 0x03
#define SR_AIN_FLAG 0x04
#define SR_ADAC_ST 0x05
#define SR_SRV_MODE 0x0c
#define SR_SRV_RBUF 0x0d
#define SR_SPIN_FLAG 0x0e
#define SR_SPIN_ST 0x0f
// *********************************************************************
// Define group number and item number per group
// *********************************************************************
#define SHARED_INFO_GRP_SIZE 32
#define SHARED_INFO_GRP_NS 120 /* 5K - 0x500 (TOC) // 256 : 8K */
#define DSP_SHARED_INFO_GRP_NS 32 /* 1K */
#define DSP_SHAREINFO_OFST ((SHARED_INFO_GRP_NS - DSP_SHARED_INFO_GRP_NS) * SHARED_INFO_GRP_SIZE)
// *********************************************************************
// Routine to access shared data
// *********************************************************************
#define wSIItemPos(grp, idx) ((WORD)(((grp) << 5) | ((idx)-1)))
#define bSIItemGrp(pos) ((BYTE)((pos) >> 5))
#define bSIItemIndex(pos) ((BYTE)(pos & 0x1F))
#if defined(__C51__)
// FIXME: use definition in mt1369.h of risc code
# define SHAREMEM_OFST ((DWRD)(TOC_START_OFFSET + 0x800)) /* 0x37B000 */
// DSP share memory
# define DSP_SHAREDINFO_BASE (SHAREMEM_OFST + DSP_SHAREINFO_OFST)
#ifdef TRACE_WRONG_SINFO
BYTE bSharedInfo(WORD wPrm) large;
void vSetSharedInfo(WORD wPrm, BYTE bVal) large;
#else
# define bSharedInfo(prm) bReadSInfo(prm)
# define vSetSharedInfo(prm, val) WriteSInfo(prm, (val))
#endif
# define vBeginWriteSharedGrp(grp, val) vSetSharedInfo(wSIItemPos(grp, 1), (val))
# define vWriteNextSharedItem(val) WaitUCRdy(); WriteBIM(BIM_MDAT, (val));
# define bSharedReg(prm) bReadBIM((BIM_GPR0 + prm))
# define vSetSharedReg(prm, val) WriteBIM((BIM_GPR0 + prm), (val))
#else
# if defined(_GLOBAL_)
BYTE _bSharedGrpPtr;
BYTE _bSharedItemPtr;
# else
extern BYTE _bSharedGrpPtr;
extern BYTE _bSharedItemPtr;
# endif
# define bSharedInfo(prm) \
(*(volatile BYTE *)(_pbShareMem + (prm)))
# define vSetSharedInfo(prm, val) \
do \
{ \
bSharedInfo(prm) = val; \
} \
while(0)
# define vBeginWriteSharedGrp(grp, val) \
do \
{ \
_bSharedGrpPtr = grp; \
_bSharedItemPtr = 1; \
vSetSharedInfo(wSIItemPos((grp), 1), val); \
} \
while(0)
# define vWriteNextSharedItem(val) \
do \
{ \
_bSharedItemPtr++; \
vSetSharedInfo(wSIItemPos(_bSharedGrpPtr, _bSharedItemPtr), val); \
} \
while(0)
#define vGetSharedItemAddr(item) (&bSharedInfo(item))
#define vGetSharedGrpAddr(grp) (&bSharedInfo(wSIItemPos(grp, 1)))
#endif
// *********************************************************************
// Routine to notify shared data changed
// *********************************************************************
#if defined(__C51__)
void vNotifySharedInfo(WORD wItem1, WORD wItem2, WORD wItem3) large;
void vNotifySharedGroup(BYTE bGroup) large;
void vNotifyDspSharedInfo(DWRD dwId) large;
void vWriteDspSharedBInfo(WORD wAddr, BYTE bVal) large;
void vWriteDspSharedWInfo(WORD wAddr, WORD wVal) large;
void vWriteDspSharedDInfo(WORD wAddr, DWRD dwVal) large;
BYTE bReadDspSharedBInfo(WORD wAddr) large;
WORD wReadDspSharedWInfo(WORD wAddr) large;
DWRD dwReadDspSharedDInfo(WORD wAddr) large;
#else
void vNotifySharedInfo(WORD wItem1, WORD wItem2, WORD wItem3);
void vNotifySharedGroup(BYTE bGroup);
void vUopNotifySharedInfo(WORD wItem1, WORD wItem2, WORD wItem3);
void vUopNotifySharedGroup(BYTE bGroup);
#endif
// *********************************************************************
// Shared data group
// *********************************************************************
#define SI_SERVO_GRP 0
#define SI_GENERAL_SETUP_GRP 1
#define SI_VIDEO_SETUP_GRP 2
#define SI_VIDEO_SETUP_GRP1 3
#define SI_PBC_GRP 4
#define SI_NV_GRP 5
#define SI_STREAM_STATUS_GRP 6
#define SI_AUDIO_STATUS_GRP 7
#define SI_DDISC_GRP 8
#define SI_UOP_ERR_RET_GRP 9
#define SI_SHM_FIFO_GRP 10
#define SI_SHM_FIFO_GRP_1 11
#define SI_SHM_FIFO_GRP_2 12
#define SI_SHM_FIFO_GRP_3 13
#define SI_SHM_CFG_GRP 14
#define SI_FSMENU_COMMAND_GRP_1 15
#define SI_FS_GRP 16
#define SI_MP3_GRP 17
#define SI_TIME_INFO_GRP 18
#define SI_JPG_GRP 19
#define SI_VOLUME_GRP 20
#define SI_VIDEO_2 21
#define SI_OSD_CMD_PRM_GRP 22 /* group 22 ~23 total 64 bytes */
#define SI_SHM_FWVER_GRP 24
#define SI_CC_BUF 25
#define SI_CC_BUF2 26
#define SI_CC_BUF3 27
#define SI_CC_BUF4 28
#define SI_CC_BUF5 29
#define SI_CC_BUF6 30
#define SI_CC_BUF7 31
#define SI_CC_BUF8 32
#define SI_ITEM_INFO_GRP 33 /* group 33 ~ 36, total 128 bytes */
#define SI_AB_REPEAT_INF_GRP 37
#define SI_UPG_VOLUME 38
#define SI_UPG_FILE 39
#define SI_UOP_RET_GRP 40
#define SI_UOP_RET_GRP_1 41
#define SI_UOP_RET_GRP_2 42
#define SI_UOP_RET_GRP_3 43
// 030220 PSCAN PARAMETER
#define SI_PSCAN_PARM 44
#define SI_DDISC_VOL_GRP 45
#define SI_FS_FTYPE_CNT_GRP 46 // - file type counter group
// - we provide max 4 file lists concurrently
#define SI_FL_LIST_0 47
#define SI_FL_LIST_1 48
#define SI_FL_LIST_2 49
#define SI_FL_LIST_3 50
// - we provide max 14 items for list item buffer
// NOTE: all list share the same item buffer, and one group
// can keep 2 items
#define SI_FL_ITEM_0 51
#define SI_FL_ITEM_2 52
#define SI_FL_ITEM_4 53
#define SI_FL_ITEM_6 54
#define SI_FL_ITEM_8 55
#define SI_FL_ITEM_10 56
#define SI_FL_ITEM_12 57
#define SI_FL_ITEM_14 58
#define SI_RISC_CONFIG_GRP 59
#define SI_USR_CTRL_GRP 60
#define SI_USR_PROGRAM_INF_GRP1 61
#define SI_USR_BOOKMARK_INF_GRP1 64
//#if(defined(LAST_MEM_SUPPORT) || defined(DVD_MEMORY_SUPPORT))
#define SI_MEMORY_GRP 67
#define SI_MEM_LIST_GRP 68
//#endif
#ifdef P_DEVICE_DEBUG
// - For the debug mode use
#define SI_PDEVICE_DEBUG_GRP 96
#endif
//*********************************************************************************
#if 0 // no use for 1389D
#define SI_USR_CTRL_GRP 9
#define SI_USR_PROGRAM_INF_GRP1 10
#define SI_USR_PROGRAM_INF_GRP2 11
#define SI_USR_PROGRAM_INF_GRP3 12
#define SI_USR_PROGRAM_INF_GRP4 13
#define SI_USR_PROGRAM_INF_GRP5 14
#define SI_FSMENU_ITEM_REGION_GRP 15
#define SI_JPG_THUMBNAIL_GRP 16
#define SI_USR_BOOKMARK_INF_GRP1 36
#define SI_USR_BOOKMARK_INF_GRP2 37
#define SI_USR_BOOKMARK_INF_GRP3 38
#define SI_PWD_FILENAME_GRP 51
#define SI_PWD_STRING_GRP_0 52
#define SI_PWD_STRING_GRP_1 53
#define SI_SPTM_DATA_GRP 54
#define SI_MEMORY_GRP 55
#define SI_MEM_LIST_GRP 56
#define SI_JPG_GRP_1 57
// - grp for MPEG file module
#define SI_MPIC_GRP 63
#define SI_FSMENU_COMMAND_GRP_0 64
#define SI_FSMENU_ICON_SET_GRP 66
#define SI_FSMENU_PROPERTY_GRP 79
#define SI_DFI_GRP 82 /* group for DFI update */
// - mark the latest group for fsmenu
#define SI_FSMENU_LAST_GRP 95
// For DVD-AUDIO
#define SI_CPPM_KEY_GRP_0 97
#define SI_CPPM_KEY_GRP_1 98
#define SI_CPPM_KEY_GRP_2 99
#define SI_CPPM_KEY_GRP_3 100
#define SI_CPPM_KEY_GRP_4 101
#define SI_CPPM_KEY_GRP_5 102
// 020826
#define SI_AUD_LCD_GRP 103
#define SI_SP_LCD_GRP0 104
#define SI_SP_LCD_GRP1 105
// 021223 DVD-Video Text Data
#define SI_DVD_TXT_GRP_0 106
#define SI_DVD_TXT_GRP_11 107
#define SI_VIDEO_SETUP_GRP3 109
// 030821 MPEG4 options
#define SI_MP4_GRP 110
#define SI_OSD_GRP 111
#define SI_CODE_PATCH 112
#define SI_DRM_MEM0 113 // if not define DRM_SUPPORT, this two groups can be used with other function
#define SI_DRM 114
#endif // 0
//*********************************************************************************
/* the last groups used for serial EEPROM shadow */
#define SI_LAST_GRP (SHARED_INFO_GRP_NS - DSP_SHARED_INFO_GRP_NS) /* total 224 groups */
#if(defined(LAST_MEM_SUPPORT) || defined(DVD_MEMORY_SUPPORT))
#ifdef SHARED_LASTMEM_SLOT
#define SHARED_LASTMEM_GRP_NO ((BYTE)((SHARED_LAST_MEM_SIZE + 31) / 32))
#define SI_SHARED_LASTMEM_GRP_ID (SI_LAST_GRP - SHARED_LASTMEM_GRP_NO)
#define SI_LASTMEM_GRP_ID SI_SHARED_LASTMEM_GRP_ID
/* for EEPROM shadow memory */
#define EEPROM_SHADOW_GRP_NO ((BYTE)((EEPROM_GENERAL_SIZE + EEPROM_WRITE_OFFSET + 31) / 32))
#define SI_EEPROM_SHADOW_GRP (SI_SHARED_LASTMEM_GRP_ID - EEPROM_SHADOW_GRP_NO)
#else /* seperate last memory slot, not define SHARED_LASTMEM_SLOT */
/* for CDDA/DVD/VCD last memory play group */
#define CDDA_LASTMEM_GRP_NO ((BYTE)((CDDA_LAST_MEM_SIZE + 31) / 32))
#define SI_CDDA_LASTMEM_GRP_ID (SI_LAST_GRP - CDDA_LASTMEM_GRP_NO)
#define DVD_LASTMEM_GRP_NO ((BYTE)((DVD_LAST_MEM_SIZE + 31) / 32))
#define SI_DVD_LASTMEM_GRP_ID (SI_CDDA_LASTMEM_GRP_ID - DVD_LASTMEM_GRP_NO)
#define VCD_LASTMEM_GRP_NO ((BYTE)((VCD_LAST_MEM_SIZE + 31) / 32))
#define SI_VCD_LASTMEM_GRP_ID (SI_DVD_LASTMEM_GRP_ID - VCD_LASTMEM_GRP_NO)
#define DDISC_LASTMEM_GRP_NO ((BYTE)((DDISC_LAST_MEM_SIZE + 31) / 32))
#define SI_DDISC_LASTMEM_GRP_ID (SI_VCD_LASTMEM_GRP_ID - DDISC_LASTMEM_GRP_NO)
#define SI_LASTMEM_GRP_ID SI_DDISC_LASTMEM_GRP_ID
/* for EEPROM shadow memory */
#define EEPROM_SHADOW_GRP_NO ((BYTE)((EEPROM_GENERAL_SIZE + EEPROM_WRITE_OFFSET + 31) / 32))
#define SI_EEPROM_SHADOW_GRP (SI_DDISC_LASTMEM_GRP_ID - EEPROM_SHADOW_GRP_NO)
#endif /* seperate last memory slot, not define SHARED_LASTMEM_SLOT */
#else /* not #if(defined(LAST_MEM_SUPPORT) || defined(DVD_MEMORY_SUPPORT)) */
/* for EEPROM shadow memory */
#define EEPROM_SHADOW_GRP_NO ((BYTE)((EEPROM_GENERAL_SIZE + EEPROM_WRITE_OFFSET + 31) / 32))
#define SI_EEPROM_SHADOW_GRP (SI_LAST_GRP - EEPROM_SHADOW_GRP_NO)
#endif /* #if(defined(LAST_MEM_SUPPORT) || defined(DVD_MEMORY_SUPPORT)) */
/* for 8032 working data */
#define SI_USER_DATA_GRP (SI_EEPROM_SHADOW_GRP - SI_USER_DATA_GRP_NO)
/* for VFD working and update shadow memory */
#define VFD_SHADOW_GRP_NO ((BYTE)((3 * VFD_SHADOW_LEN_MAX + 31) /32))
#define SI_VFD_SHADOW_GRP (SI_USER_DATA_GRP - VFD_SHADOW_GRP_NO)
#define SI_CC_BUF_SZ 224
#define SV_CC_CMD_NONE 0
#define SV_CC_CMD_WRITE 1
#define SV_CC_CMD_ERASE 2
// *********************************************************************
// Share memory group
// *********************************************************************
#if 0
#define fgIsFsMenuUpdate(bGroup) ((bGroup == SI_DDISC_GRP) || \
(bGroup == SI_JPG_GRP) || \
(bGroup == SI_MP3_GRP) || \
(bGroup == SI_MPIC_GRP) || \
(bGroup == SI_FSMENU_COMMAND_GRP_0) || \
(bGroup == SI_FSMENU_COMMAND_GRP_1))
#endif
#define fgIsFsMenuUpdate(bGroup) ((bGroup == SI_DDISC_GRP) || \
(bGroup == SI_JPG_GRP) || \
(bGroup == SI_MP3_GRP) || \
(bGroup == SI_FSMENU_COMMAND_GRP_1))
// *********************************************************************
// Shared data item
// *********************************************************************
// Group 0: Servo, Flag
#define SI_SRV_RDY wSIItemPos(SI_SERVO_GRP, 1)
#define SI_MEDIUM_TYPE wSIItemPos(SI_SERVO_GRP, 2)
#define SI_TRAY_STATE wSIItemPos(SI_SERVO_GRP, 3)
#define SI_SRV_BOOT_STATE wSIItemPos(SI_SERVO_GRP, 4)
#define SI_RCLK_FULL wSIItemPos(SI_SERVO_GRP, 5)
#define SI_RCLK_1 wSIItemPos(SI_SERVO_GRP, 6)
#define SI_RCLK_2 wSIItemPos(SI_SERVO_GRP, 7)
#define SI_RCLK_IDLE wSIItemPos(SI_SERVO_GRP, 8)
#define SI_DRAM_CFG wSIItemPos(SI_SERVO_GRP, 9)
#define SI_DRAM_BW wSIItemPos(SI_SERVO_GRP, 10)
#define SI_SRV_DATA_READ_TIMEOUT wSIItemPos(SI_SERVO_GRP, 13)
#define SI_SRVRD_ABT wSIItemPos(SI_SERVO_GRP, 14)
#define SI_BCA_READY wSIItemPos(SI_SERVO_GRP, 17)
#define SI_FLASH_CFG wSIItemPos(SI_SERVO_GRP, 19)
#define SI_FLASH_OFFSET_HI wSIItemPos(SI_SERVO_GRP, 20)
#define SI_FLASH_OFFSET_MID wSIItemPos(SI_SERVO_GRP, 21)
#define SI_FLASH_OFFSET_LO wSIItemPos(SI_SERVO_GRP, 22)
#define SI_CD_TOTAL_BLK_LO wSIItemPos(SI_SERVO_GRP, 29)
#define SI_CD_TOTAL_BLK_HI wSIItemPos(SI_SERVO_GRP, 30)
#define SI_DVD_TOTAL_BLK_LO wSIItemPos(SI_SERVO_GRP, 31)
#define SI_DVD_TOTAL_BLK_HI wSIItemPos(SI_SERVO_GRP, 32)
// Group 1: General Setup
#define SI_SCR_SAVE_SWITCH wSIItemPos(SI_GENERAL_SETUP_GRP, 1)
#define SI_PTL_LV wSIItemPos(SI_GENERAL_SETUP_GRP, 2)
#define SI_USR_PTL_CTY_CD_0 wSIItemPos(SI_GENERAL_SETUP_GRP, 3)
#define SI_USR_PTL_CTY_CD_1 wSIItemPos(SI_GENERAL_SETUP_GRP, 4)
#define SI_USR_MENU_LCD_0 wSIItemPos(SI_GENERAL_SETUP_GRP, 5)
#define SI_USR_MENU_LCD_1 wSIItemPos(SI_GENERAL_SETUP_GRP, 6)
#define SI_USR_AU_LCD_0 wSIItemPos(SI_GENERAL_SETUP_GRP, 7)
#define SI_USR_AU_LCD_1 wSIItemPos(SI_GENERAL_SETUP_GRP, 8)
#define SI_USR_SP_LCD_0 wSIItemPos(SI_GENERAL_SETUP_GRP, 9)
#define SI_USR_SP_LCD_1 wSIItemPos(SI_GENERAL_SETUP_GRP, 10)
#define SI_TV_SYSTEM wSIItemPos(SI_GENERAL_SETUP_GRP, 11)
#define SI_ASPECT_RATIO wSIItemPos(SI_GENERAL_SETUP_GRP, 12)
#define SI_PS_OFST_HI wSIItemPos(SI_GENERAL_SETUP_GRP, 13)
#define SI_PS_OFST_LO wSIItemPos(SI_GENERAL_SETUP_GRP, 14)
#define SI_PRGS_OUT_SWITCH wSIItemPos(SI_GENERAL_SETUP_GRP, 15)
#define SI_FORCE_FULL_SCR wSIItemPos(SI_GENERAL_SETUP_GRP, 16)
#define SI_OSD_CMD_BUF_FULL wSIItemPos(SI_GENERAL_SETUP_GRP, 17)
#define SI_OSD_STATE wSIItemPos(SI_GENERAL_SETUP_GRP, 18)
#define SI_CC_SWITCH wSIItemPos(SI_GENERAL_SETUP_GRP, 20)
#define SI_OSD_CC wSIItemPos(SI_GENERAL_SETUP_GRP, 21)
#define SI_DVD_PRIO wSIItemPos(SI_GENERAL_SETUP_GRP, 24)
#define SI_CD_PRIO wSIItemPos(SI_GENERAL_SETUP_GRP, 25)
// for video post parameter
#define SI_WARMTH_FLT wSIItemPos(SI_GENERAL_SETUP_GRP, 26)
#define SI_WARMTH_LEVEL wSIItemPos(SI_GENERAL_SETUP_GRP, 27)
#define SI_POST_PROCESS_EN wSIItemPos(SI_GENERAL_SETUP_GRP, 28)
#define SI_ZOOM_IN_X_FILTER wSIItemPos(SI_GENERAL_SETUP_GRP, 29)
#define SI_VCD_PBC_OFF wSIItemPos(SI_GENERAL_SETUP_GRP, 30)
#define SI_DVD_AUDIO_USR_AST wSIItemPos(SI_GENERAL_SETUP_GRP, 31)
#define SI_REGION wSIItemPos(SI_GENERAL_SETUP_GRP, 32)
// Group 2: Video Setup
#define SI_EDGE_EN wSIItemPos(SI_VIDEO_SETUP_GRP, 1)
#define SI_SHARPNESS wSIItemPos(SI_VIDEO_SETUP_GRP, 2)
#define SI_GAMMA wSIItemPos(SI_VIDEO_SETUP_GRP, 3)
#define SI_HUE wSIItemPos(SI_VIDEO_SETUP_GRP, 4)
#define SI_BLK_LVL wSIItemPos(SI_VIDEO_SETUP_GRP, 5)
// Close Caption
#define SI_CC_CMD wSIItemPos(SI_VIDEO_SETUP_GRP, 6)
#define SI_CC_VALID wSIItemPos(SI_VIDEO_SETUP_GRP, 6)
#define SI_CC_BYTECNT wSIItemPos(SI_VIDEO_SETUP_GRP, 7)
#define SI_CC_RP wSIItemPos(SI_VIDEO_SETUP_GRP, 8)
#define SI_CC_WP wSIItemPos(SI_VIDEO_SETUP_GRP, 9)
#define SI_LUMINANCE wSIItemPos(SI_VIDEO_SETUP_GRP, 10)
#define SI_TVE_MODE wSIItemPos(SI_VIDEO_SETUP_GRP, 11)
#define SI_PIC_MODE wSIItemPos(SI_VIDEO_SETUP_GRP, 12)
#define SI_TVEFMTOK wSIItemPos(SI_VIDEO_SETUP_GRP, 13)
#define SI_TVE_MISC wSIItemPos(SI_VIDEO_SETUP_GRP, 15)
#define SI_TVE_MVTYPE wSIItemPos(SI_VIDEO_SETUP_GRP, 16)
// SI_LOGO_COLOR shall be the same position as SI_LOGO_CLR_Y
// SI_LOGO_CLR_Y must be dword aligned, and this is for UOP_SHOW_LOGO
#define SI_LOGO_COLOR wSIItemPos(SI_VIDEO_SETUP_GRP, 17)
#define SI_LOGO_CLR_Y wSIItemPos(SI_VIDEO_SETUP_GRP, 17)
#define SI_LOGO_CLR_CB wSIItemPos(SI_VIDEO_SETUP_GRP, 18)
#define SI_LOGO_CLR_CR wSIItemPos(SI_VIDEO_SETUP_GRP, 19)
#define SI_NTSC_ADJUST_H wSIItemPos(SI_VIDEO_SETUP_GRP, 20)
#define SI_NTSC_ADJUST_V wSIItemPos(SI_VIDEO_SETUP_GRP, 21)
#define SI_PAL_ADJUST_H wSIItemPos(SI_VIDEO_SETUP_GRP, 22)
#define SI_PAL_ADJUST_V wSIItemPos(SI_VIDEO_SETUP_GRP, 23)
#define SI_OSD_NTSC_ADJUST_H wSIItemPos(SI_VIDEO_SETUP_GRP, 24)
#define SI_OSD_NTSC_ADJUST_V wSIItemPos(SI_VIDEO_SETUP_GRP, 25)
#define SI_OSD_PAL_ADJUST_H wSIItemPos(SI_VIDEO_SETUP_GRP, 26)
#define SI_OSD_PAL_ADJUST_V wSIItemPos(SI_VIDEO_SETUP_GRP, 27)
#define SI_VDO_CFG_SET wSIItemPos(SI_VIDEO_SETUP_GRP, 28)
#define SI_PAL_BURST wSIItemPos(SI_VIDEO_SETUP_GRP, 29)
#define SI_NTSC_BURST wSIItemPos(SI_VIDEO_SETUP_GRP, 30)
#define SI_CVBS2_OUTPUT wSIItemPos(SI_VIDEO_SETUP_GRP, 31) //if 1, CVBS2 on G, while 0, CVBS2 on R
#define SI_HV_SYNC_ENABLE wSIItemPos(SI_VIDEO_SETUP_GRP, 32)
// Group 3: Video Setup
#define SI_PAL_YSCALE wSIItemPos(SI_VIDEO_SETUP_GRP1, 1)
#define SI_PAL_CVBS_UGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 2)
#define SI_PAL_CVBS_VGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 3)
#define SI_NTSC_YSCALE wSIItemPos(SI_VIDEO_SETUP_GRP1, 4)
#define SI_NTSC_CVBS_UGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 5)
#define SI_NTSC_CVBS_VGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 6)
#define SI_G_SYNC wSIItemPos(SI_VIDEO_SETUP_GRP1, 7)
#define SI_YCBCR_YGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 8)
#define SI_YCBCR_UGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 9)
#define SI_YCBCR_VGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 10)
#define SI_RGB_YGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 11)
#define SI_RGB_UGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 12)
#define SI_RGB_VGAIN wSIItemPos(SI_VIDEO_SETUP_GRP1, 13)
#define SI_TV_SYSTEM_30 wSIItemPos(SI_VIDEO_SETUP_GRP1, 14)
#define SI_TV_SYSTEM_25 wSIItemPos(SI_VIDEO_SETUP_GRP1, 15)
#define SI_MV_TYPE wSIItemPos(SI_VIDEO_SETUP_GRP1, 16)
#define SI_V_HUE_0 wSIItemPos(SI_VIDEO_SETUP_GRP1, 17)
#define SI_V_HUE_1 wSIItemPos(SI_VIDEO_SETUP_GRP1, 18)
#define SI_V_HUE_2 wSIItemPos(SI_VIDEO_SETUP_GRP1, 19)
#define SI_V_HUE_3 wSIItemPos(SI_VIDEO_SETUP_GRP1, 20)
#define SI_V_HUE_4 wSIItemPos(SI_VIDEO_SETUP_GRP1, 21)
#define SI_V_HUE_5 wSIItemPos(SI_VIDEO_SETUP_GRP1, 22)
#define SI_V_HUE_6 wSIItemPos(SI_VIDEO_SETUP_GRP1, 23)
#define SI_V_HUE_7 wSIItemPos(SI_VIDEO_SETUP_GRP1, 24)
#define SI_V_BRIGHTNESS wSIItemPos(SI_VIDEO_SETUP_GRP1, 25)
#define SI_V_CONTRAST wSIItemPos(SI_VIDEO_SETUP_GRP1, 26)
#define SI_V_SATURATION wSIItemPos(SI_VIDEO_SETUP_GRP1, 27)
#define SI_V_EDGE_0 wSIItemPos(SI_VIDEO_SETUP_GRP1, 28)
#define SI_V_EDGE_1 wSIItemPos(SI_VIDEO_SETUP_GRP1, 29)
#define SI_V_EDGE_2 wSIItemPos(SI_VIDEO_SETUP_GRP1, 30)
#define SI_V_EDGE_3 wSIItemPos(SI_VIDEO_SETUP_GRP1, 31)
#define SI_V_EDGE_4 wSIItemPos(SI_VIDEO_SETUP_GRP1, 32)
// Group 4: PBC status
#define SI_INIT_STATE wSIItemPos(SI_PBC_GRP, 1)
#define SI_DISC_TYPE wSIItemPos(SI_PBC_GRP, 2)
#define SI_PBC_SWITCH wSIItemPos(SI_PBC_GRP, 3)
#define SI_PBC_STATE wSIItemPos(SI_PBC_GRP, 4)
#define SI_PBC_SPEED wSIItemPos(SI_PBC_GRP, 5)
#define SI_ZOOM_OFST_X_HI wSIItemPos(SI_PBC_GRP, 6)
#define SI_ZOOM_OFST_X_LO wSIItemPos(SI_PBC_GRP, 7)
#define SI_ZOOM_OFST_Y_HI wSIItemPos(SI_PBC_GRP, 8)
#define SI_ZOOM_OFST_Y_LO wSIItemPos(SI_PBC_GRP, 9)
#define SI_ZOOM_SWITCH wSIItemPos(SI_PBC_GRP, 10)
#define SI_USR_PBC_CTRL wSIItemPos(SI_PBC_GRP, 11)
#define SI_PLAY_STOP wSIItemPos(SI_PBC_GRP, 12) // 24
#define SI_SCR_SAVE_STATE wSIItemPos(SI_PBC_GRP, 13)
#define SI_USR_AUX_CTRL wSIItemPos(SI_PBC_GRP, 14) // for Repeat A-B, and so on
#define SI_REPEAT_MODE wSIItemPos(SI_PBC_GRP, 15)
#define SI_UPGRADE_ST wSIItemPos(SI_PBC_GRP, 16) // 27
#define SI_VCD_MENU_IDX wSIItemPos(SI_PBC_GRP, 17) // 29
#define SI_AB_STATE wSIItemPos(SI_PBC_GRP, 18)
#define SI_REC_PROGRESS wSIItemPos(SI_PBC_GRP, 19)
#define SI_HIDDEN_PASSWD0 wSIItemPos(SI_PBC_GRP, 20)
#define SI_HIDDEN_PASSWD1 wSIItemPos(SI_PBC_GRP, 21)
#define SI_DISC_ID wSIItemPos(SI_PBC_GRP, 22) // byte 22~29 for DISC ID
#define SV_DISC_ID_SZ 8
#ifdef MT1379_MANUFACTURE_TEST
#define SI_MANU_TEST_ST wSIItemPos(SI_PBC_GRP, 30)
#endif
// Group 5: NV
#define SI_AGL_NS wSIItemPos(SI_NV_GRP, 1)
#define SI_AGL_NO wSIItemPos(SI_NV_GRP, 2)
#define SI_TT_NS wSIItemPos(SI_NV_GRP, 3)
#define SI_TT_NO wSIItemPos(SI_NV_GRP, 4)
#define SI_GRP_NS wSIItemPos(SI_NV_GRP, 3)
#define SI_GRP_NO wSIItemPos(SI_NV_GRP, 4)
#define SI_PTT_NS wSIItemPos(SI_NV_GRP, 3)
#define SI_PTT_NO wSIItemPos(SI_NV_GRP, 4)
#define SI_TRACK_NS wSIItemPos(SI_NV_GRP, 5)
#define SI_TRACK_NO wSIItemPos(SI_NV_GRP, 6)
#define SI_CHAP_NS wSIItemPos(SI_NV_GRP, 5) /* same position as track */
#define SI_CHAP_NO wSIItemPos(SI_NV_GRP, 6) /* same position as track */
#define SI_FILE_NS_LO wSIItemPos(SI_NV_GRP, 3) /* same position as track */
#define SI_FILE_NS_HI wSIItemPos(SI_NV_GRP, 4) /* same position as track */
#define SI_FILE_NO_LO wSIItemPos(SI_NV_GRP, 5) /* same position as track */
#define SI_FILE_NO_HI wSIItemPos(SI_NV_GRP, 6) /* same position as track */
#define SI_DVD_DOM wSIItemPos(SI_NV_GRP, 7)
#define SI_VCD_DOM wSIItemPos(SI_NV_GRP, 7) /* same position as DVD */
#define SI_DVD_MENU_TYPE wSIItemPos(SI_NV_GRP, 8)
#define SI_STILL_SWITCH wSIItemPos(SI_NV_GRP, 9)
#define SI_UOP_CTRL_0 wSIItemPos(SI_NV_GRP, 10)
#define SI_UOP_CTRL_1 wSIItemPos(SI_NV_GRP, 11)
#define SI_UOP_CTRL_2 wSIItemPos(SI_NV_GRP, 12)
#define SI_UOP_CTRL_3 wSIItemPos(SI_NV_GRP, 13)
#define SI_INDEX_NS wSIItemPos(SI_NV_GRP, 14)
#define SI_INDEX_NO wSIItemPos(SI_NV_GRP, 15)
// new added
#define SI_SCENE_NS_LO wSIItemPos(SI_NV_GRP, 10) // VCD/SVCD only
#define SI_SCENE_NS_HI wSIItemPos(SI_NV_GRP, 11) // VCD/SVCD only
#define SI_SCENE_NO_LO wSIItemPos(SI_NV_GRP, 12) // VCD/SVCD only
#define SI_SCENE_NO_HI wSIItemPos(SI_NV_GRP, 13) // VCD/SVCD only
#define SI_SVD_STILL_PIC wSIItemPos(SI_NV_GRP, 14) // VCD/SVCD only
// end new added
#define SI_SPOTLIGHT_NS wSIItemPos(SI_NV_GRP, 16)
#define SI_GROUP_END wSIItemPos(SI_NV_GRP, 17)
#define SI_HLI_STATE wSIItemPos(SI_NV_GRP, 18)
#define SI_LONGEST_TT wSIItemPos(SI_NV_GRP, 19) // 030721: for longest title number (max_ptt)
#define SI_PBC_CTRL_VALID wSIItemPos(SI_NV_GRP, 20)
#define SI_ASPECT_CHG_VALID wSIItemPos(SI_NV_GRP, 21)
#define SI_MENU_SEL_RNG_START wSIItemPos(SI_NV_GRP, 22)
#define SI_MENU_SEL_RNG_END wSIItemPos(SI_NV_GRP, 23)
#define SI_SP_SWITCH wSIItemPos(SI_NV_GRP, 24)
#define SV_SP_ALL_OFF (0x1)
#define SV_SP_TT_OFF (0x1 << 1)
#define SI_HIDE_HGR wSIItemPos(SI_NV_GRP, 25)
//#define SI_SP_N2P_SCALE wSIItemPos(SI_NV_GRP, 26)
#define SI_ASV_NS wSIItemPos(SI_NV_GRP, 27)
#define SI_ASV_NO wSIItemPos(SI_NV_GRP, 28)
#define SI_ASVU_NO wSIItemPos(SI_NV_GRP, 29)
#define SI_DLIST_NS wSIItemPos(SI_NV_GRP, 30)
#define SI_DLIST_NO wSIItemPos(SI_NV_GRP, 31)
#define SI_ASV_MODE wSIItemPos(SI_NV_GRP, 32)
// Group 6: Stream Status
#define SI_V_CODE_MODE wSIItemPos(SI_STREAM_STATUS_GRP, 1)
#define SI_AST_NS wSIItemPos(SI_STREAM_STATUS_GRP, 2)
#define SI_AST_NO wSIItemPos(SI_STREAM_STATUS_GRP, 3)
#define SI_A_CODE_MODE wSIItemPos(SI_STREAM_STATUS_GRP, 4)
#define SI_A_CH_CFG wSIItemPos(SI_STREAM_STATUS_GRP, 5) // by NV
#define SI_DSP_CH_CFG wSIItemPos(SI_STREAM_STATUS_GRP, 6) // by DSP
#define SI_A_LCD_0 wSIItemPos(SI_STREAM_STATUS_GRP, 7)
#define SI_A_LCD_1 wSIItemPos(SI_STREAM_STATUS_GRP, 8)
#define SI_A_APPL_MODE wSIItemPos(SI_STREAM_STATUS_GRP, 9)
#define SI_SPST_NS wSIItemPos(SI_STREAM_STATUS_GRP, 10)
#define SI_SPST_NO wSIItemPos(SI_STREAM_STATUS_GRP, 11)
#define SI_SP_LCD_0 wSIItemPos(SI_STREAM_STATUS_GRP, 12)
#define SI_SP_LCD_1 wSIItemPos(SI_STREAM_STATUS_GRP, 13)
#define SI_ISO_ITEM_TYPE wSIItemPos(SI_STREAM_STATUS_GRP, 14)
#define SI_VCD_ITEM_TYPE wSIItemPos(SI_STREAM_STATUS_GRP, 14) /* same as SI_ISO_ITEM_TYPE */
// MPEG Video Parameter Information
//#define SI_V_BITRATE0 wSIItemPos(SI_STREAM_STATUS_GRP, 15) /* WORD alingment */
#define SI_MPV_PAUSE wSIItemPos(SI_STREAM_STATUS_GRP, 15)
#define SH_WAIT_FOR_WB_ALLOC wSIItemPos(SI_STREAM_STATUS_GRP, 16)
//#define SI_V_BITRATE1 wSIItemPos(SI_STREAM_STATUS_GRP, 16)
#define SI_BITRATE0 wSIItemPos(SI_STREAM_STATUS_GRP, 19) /* WORD alingment */
#define SI_BITRATE1 wSIItemPos(SI_STREAM_STATUS_GRP, 20)
#define SI_V_HSIZE_L wSIItemPos(SI_STREAM_STATUS_GRP, 21) /* DWRD alingment */
#define SI_V_HSIZE_H wSIItemPos(SI_STREAM_STATUS_GRP, 22)
#define SI_V_VSIZE_L wSIItemPos(SI_STREAM_STATUS_GRP, 23)
#define SI_V_VSIZE_H wSIItemPos(SI_STREAM_STATUS_GRP, 24)
#define SI_V_FRAMERATE wSIItemPos(SI_STREAM_STATUS_GRP, 25)
#define SI_SRC_ASPECT_RATIO wSIItemPos(SI_STREAM_STATUS_GRP, 27) //020802
#define SI_V_4_3 wSIItemPos(SI_STREAM_STATUS_GRP, 28) /* SV_4_3 or SV_16_9 */
#define SI_NTSC_PAL wSIItemPos(SI_STREAM_STATUS_GRP, 29)
#define SI_DSP_VOICE_STATE wSIItemPos(SI_STREAM_STATUS_GRP, 30)
// Group 7: Audio Status
#define SI_KARAOKE_SWITCH wSIItemPos(SI_AUDIO_STATUS_GRP, 1)
#define SI_VOCAL_MODE wSIItemPos(SI_AUDIO_STATUS_GRP, 2)
#define SI_A_FREQ wSIItemPos(SI_AUDIO_STATUS_GRP, 3) // output frequency
#define SI_A_BITLEN wSIItemPos(SI_AUDIO_STATUS_GRP, 4)
#define SI_A_BITRATE0 wSIItemPos(SI_AUDIO_STATUS_GRP, 5) /* WORD alingment */
#define SI_A_BITRATE1 wSIItemPos(SI_AUDIO_STATUS_GRP, 6)
#define SI_A_UPSAMPLING wSIItemPos(SI_AUDIO_STATUS_GRP, 7)
#define SI_A_SRC_FREQ wSIItemPos(SI_AUDIO_STATUS_GRP, 8) // source frequency
#define SI_A_FREQ_DVD_AUDIO wSIItemPos(SI_AUDIO_STATUS_GRP, 9)
#define SI_DVD_ARBUF_THR wSIItemPos(SI_AUDIO_STATUS_GRP, 10)
#define SI_A_EFFECT_0 wSIItemPos(SI_AUDIO_STATUS_GRP, 13) /* DWRD alingment */
#define SI_A_EFFECT_1 wSIItemPos(SI_AUDIO_STATUS_GRP, 14)
#define SI_A_EFFECT_2 wSIItemPos(SI_AUDIO_STATUS_GRP, 15)
#define SI_A_EFFECT_3 wSIItemPos(SI_AUDIO_STATUS_GRP, 16)
#define SI_A_INPUT_TYPE wSIItemPos(SI_AUDIO_STATUS_GRP, 17) // BYTE
#define SI_A_SAMPING_RATE wSIItemPos(SI_AUDIO_STATUS_GRP, 18) // BYTE Input sampling rate
// LLY.1030, add two shared info to keep LPCM bit resolution and sample frequency
#define SI_LPCM_FREQ wSIItemPos(SI_AUDIO_STATUS_GRP, 19) // sample frequency
#define SI_LPCM_BIT wSIItemPos(SI_AUDIO_STATUS_GRP, 20) // bit resolution
// LLY.20040127, keep audio stream output is downmix or not
#define SI_A_DMIX_STATUS wSIItemPos(SI_AUDIO_STATUS_GRP, 21)
// LLY.1126, add one shared info. to keep VR dual mono stream type is dynamic or not
#define SI_VR_DYNAMIC_DUAL_MONO wSIItemPos(SI_AUDIO_STATUS_GRP, 22)
// GROUP FOR FILE SYSTEM MODULE CONFIG. AND RUNTIME INFO. UPDATE
#define SI_FS_START wSIItemPos(SI_FS_GRP, 1)
/* config */
#define SI_FS_FTYPE_SUPPORT wSIItemPos(SI_FS_GRP, 1) // - file type support
#define SI_FS_FTYPE_SUPPORT2 wSIItemPos(SI_FS_GRP, 2) // - file type support
#define SI_FS_TREAT_EMPTY_AS_UNKNOWN wSIItemPos(SI_FS_GRP, 3) // - treat empty disc as unknown
#define SI_FS_READ_DISC_RETRY wSIItemPos(SI_FS_GRP, 4) // - retry times for disc reading error
#define SI_FS_ENB_CDFS wSIItemPos(SI_FS_GRP, 5) // - treat audio track as *.cda
#define SI_FS_FSTYPE wSIItemPos(SI_FS_GRP, 6) // - file system type
/* working area setting */
#define SI_FS_WA_SZ wSIItemPos(SI_FS_GRP, 7) // - working area size in byte (max: 256)
#define SI_FS_WA_SA_B1 wSIItemPos(SI_FS_GRP, 8) // - start lb_addr byte 1
#define SI_FS_WA_SA_B2 wSIItemPos(SI_FS_GRP, 9) // - start lb_addr byte 2
#define SI_FS_WA_SA_B3 wSIItemPos(SI_FS_GRP, 10) // - start lb_addr byte 3
#define SI_FS_WA_SA_B4 wSIItemPos(SI_FS_GRP, 11) // - start lb_addr byte 4
#define SI_FS_DISC_TYPE wSIItemPos(SI_FS_GRP, 12)//to keep disc type but it can't use SI_FS_FSTYPE
/* pcd base dir */
#define SI_FS_PCD_BASEDIR_LO wSIItemPos(SI_FS_GRP, 22)
#define SI_FS_PCD_BASEDIR_HI wSIItemPos(SI_FS_GRP, 23)
// GROUP FOR AUDIO FILE PLAYBACK MODULE
#define SI_MP3_START wSIItemPos(SI_MP3_GRP, 1)
// config
#define SI_MP3_TRICK_MODE_STILL wSIItemPos(SI_MP3_GRP, 1)
#define SI_MP3_ID3_PARSER wSIItemPos(SI_MP3_GRP, 2) // - turn on/off ID3 parsing
#define SI_MP3_CRS_ITEM_AB wSIItemPos(SI_MP3_GRP, 3)
// info
#define SI_MP3_IS_VBR wSIItemPos(SI_MP3_GRP, 4)
#define SI_MP3_BITRATE_LO wSIItemPos(SI_MP3_GRP, 5) // - bit-rate for current item
#define SI_MP3_BITRATE_HI wSIItemPos(SI_MP3_GRP, 6)
#define SI_MP3_ITEM_IDX_LO wSIItemPos(SI_MP3_GRP, 7) // - MP3 item index
#define SI_MP3_ITEM_IDX_HI wSIItemPos(SI_MP3_GRP, 8)
#define SI_MP3_STT wSIItemPos(SI_MP3_GRP, 9) // - module state
#define SI_MP3_MOD wSIItemPos(SI_MP3_GRP, 10) // - trick mode
#define SI_MP3_TOTAL_TIME_HH wSIItemPos(SI_MP3_GRP, 11)
#define SI_MP3_TOTAL_TIME_MM wSIItemPos(SI_MP3_GRP, 12)
#define SI_MP3_TOTAL_TIME_SS wSIItemPos(SI_MP3_GRP, 13)
// MPEG info
#define SI_MPIC_ITEM_IDX_LO wSIItemPos(SI_MP3_GRP, 14)
#define SI_MPIC_ITEM_IDX_HI wSIItemPos(SI_MP3_GRP, 15) // - module item index
#define SI_MPIC_STT wSIItemPos(SI_MP3_GRP, 16) // - module state
// JPEG INFO
#define SI_JPG_ORG_WIDTH_LO wSIItemPos(SI_MP3_GRP, 17)
#define SI_JPG_ORG_WIDTH_HI wSIItemPos(SI_MP3_GRP, 18)
#define SI_JPG_ORG_HEIGHT_LO wSIItemPos(SI_MP3_GRP, 19)
#define SI_JPG_ORG_HEIGHT_HI wSIItemPos(SI_MP3_GRP, 20)
#define SI_JPG_DSP_ITEM_IDX_LO wSIItemPos(SI_MP3_GRP, 21)
#define SI_JPG_DSP_ITEM_IDX_HI wSIItemPos(SI_MP3_GRP, 22)
#define SI_JPG_PROG_PIC_SIZ_LIMIT wSIItemPos(SI_MP3_GRP, 23)
#define SI_JPG_H_PAN_STEP_NUM wSIItemPos(SI_MP3_GRP, 24)
#define SI_JPG_V_PAN_STEP_NUM wSIItemPos(SI_MP3_GRP, 25)
// GROUP FOR DATA DISC CONTROL MODULE
#define SI_DDISC_START wSIItemPos(SI_DDISC_GRP, 1)
// configuration
#define SI_DDISC_DEF_PMODE wSIItemPos(SI_DDISC_GRP, 2) // - default playback mode
#define SI_DDISC_MIXED_TYPE_MODE wSIItemPos(SI_DDISC_GRP, 3) // - enable mixed type seq control mode
#define SI_DDISC_CROSS_FOLDER_MODE wSIItemPos(SI_DDISC_GRP, 4) // - enable cross folder playback mode
#define SI_DDISC_ACTIVE_PB_MODULE_MODE wSIItemPos(SI_DDISC_GRP, 5) // - change PB module actively
#define SI_DDISC_CONC_AV_MODE wSIItemPos(SI_DDISC_GRP, 6)
#define SI_DDISC_RANDOM_ACT_MODE wSIItemPos(SI_DDISC_GRP, 9) // - random activated mode
// run-time info
#define SI_DDISC_PB_MODULE wSIItemPos(SI_DDISC_GRP, 12) // - foreground playback module
#define SI_DDISC_PBSEQ_END wSIItemPos(SI_DDISC_GRP, 13) // - playback seq ends
#define SI_DDISC_MP3_LAST_LO wSIItemPos(SI_DDISC_GRP, 14)
#define SI_DDISC_MP3_LAST_HI wSIItemPos(SI_DDISC_GRP, 15)
#define SI_FS_MP3_CNT_LO wSIItemPos(SI_DDISC_GRP, 21)
#define SI_FS_MP3_CNT_HI wSIItemPos(SI_DDISC_GRP, 22)
#define SI_FS_WMA_CNT_LO wSIItemPos(SI_DDISC_GRP, 23)
#define SI_FS_WMA_CNT_HI wSIItemPos(SI_DDISC_GRP, 24)
#define SI_FS_JPG_CNT_LO wSIItemPos(SI_DDISC_GRP, 25)
#define SI_FS_JPG_CNT_HI wSIItemPos(SI_DDISC_GRP, 26)
#define SI_FS_MPG_CNT_LO wSIItemPos(SI_DDISC_GRP, 27)
#define SI_FS_MPG_CNT_HI wSIItemPos(SI_DDISC_GRP, 28)
#define SI_FS_MPX_CNT_LO wSIItemPos(SI_DDISC_GRP, 29)
#define SI_FS_MPX_CNT_HI wSIItemPos(SI_DDISC_GRP, 30)
// GROUP FOR DATA DISC VOLUME STRING
#define SI_DDISC_VOLUME wSIItemPos(SI_DDISC_VOL_GRP, 1) // - for data disc volume string
// Group 19: Time information
#define SI_TIME_HH wSIItemPos(SI_TIME_INFO_GRP, 1)
#define SI_TIME_MM wSIItemPos(SI_TIME_INFO_GRP, 2)
#define SI_TIME_SS wSIItemPos(SI_TIME_INFO_GRP, 3)
#define SI_TIME_RMN_HH wSIItemPos(SI_TIME_INFO_GRP, 5)
#define SI_TIME_RMN_MM wSIItemPos(SI_TIME_INFO_GRP, 6)
#define SI_TIME_RMN_SS wSIItemPos(SI_TIME_INFO_GRP, 7)
// for DVD
#define SI_TIME_CHAPTER_HH wSIItemPos(SI_TIME_INFO_GRP, 9)
#define SI_TIME_CHAPTER_MM wSIItemPos(SI_TIME_INFO_GRP, 10)
#define SI_TIME_CHAPTER_SS wSIItemPos(SI_TIME_INFO_GRP, 11)
#define SI_TIME_CHAPTER_RMN_HH wSIItemPos(SI_TIME_INFO_GRP, 13)
#define SI_TIME_CHAPTER_RMN_MM wSIItemPos(SI_TIME_INFO_GRP, 14)
#define SI_TIME_CHAPTER_RMN_SS wSIItemPos(SI_TIME_INFO_GRP, 15)
#define SI_TIME_TOTAL_CHAPTER_HH wSIItemPos(SI_TIME_INFO_GRP, 17)
#define SI_TIME_TOTAL_CHAPTER_MM wSIItemPos(SI_TIME_INFO_GRP, 18)
#define SI_TIME_TOTAL_CHAPTER_SS wSIItemPos(SI_TIME_INFO_GRP, 19)
// for VCD, CDDA...
#define SI_TIME_TRACK_HH wSIItemPos(SI_TIME_INFO_GRP, 9)
#define SI_TIME_TRACK_MM wSIItemPos(SI_TIME_INFO_GRP, 10)
#define SI_TIME_TRACK_SS wSIItemPos(SI_TIME_INFO_GRP, 11)
#define SI_TIME_TRACK_RMN_HH wSIItemPos(SI_TIME_INFO_GRP, 13)
#define SI_TIME_TRACK_RMN_MM wSIItemPos(SI_TIME_INFO_GRP, 14)
#define SI_TIME_TRACK_RMN_SS wSIItemPos(SI_TIME_INFO_GRP, 15)
#define SI_TIME_TOTAL_TRACK_HH wSIItemPos(SI_TIME_INFO_GRP, 17)
#define SI_TIME_TOTAL_TRACK_MM wSIItemPos(SI_TIME_INFO_GRP, 18)
#define SI_TIME_TOTAL_TRACK_SS wSIItemPos(SI_TIME_INFO_GRP, 19)
#define SI_TIME_TOTAL_HH wSIItemPos(SI_TIME_INFO_GRP, 21)
#define SI_TIME_TOTAL_MM wSIItemPos(SI_TIME_INFO_GRP, 22)
#define SI_TIME_TOTAL_SS wSIItemPos(SI_TIME_INFO_GRP, 23)
// Group 21: for DVD volume ID, 32 bytes
#define SI_VOLUME_BUF wSIItemPos(SI_VOLUME_GRP, 1)
// Group 22: for internal TVE control
#define SI_TVE_OUT_MODE wSIItemPos(SI_VIDEO_2, 1)
#define SI_PSCAN_EN wSIItemPos(SI_VIDEO_2, 2)
#define SI_PSCAN_MODE wSIItemPos(SI_VIDEO_2, 3)
#define SI_PSCAN_VIDEO wSIItemPos(SI_VIDEO_2, 4)
#define SI_PSCAN_SQUEEZE wSIItemPos(SI_VIDEO_2, 5)
#define SI_V2_PAUSE_SHOW_1FLD wSIItemPos(SI_VIDEO_2, 6)
#define SI_V2_PN_NO_FRM_YC wSIItemPos(SI_VIDEO_2, 7)
#define SI_V2_DYNAMIC_BITRATE wSIItemPos(SI_VIDEO_2, 8)
#define SI_VDO_IN_EN wSIItemPos(SI_VIDEO_2, 9)
#define SI_VDO_IN_SCALE wSIItemPos(SI_VIDEO_2, 10)
#define SI_V2_OSD_RELATED_LOGO wSIItemPos(SI_VIDEO_2, 11)
#define SI_CAP_LOGO_ST wSIItemPos(SI_VIDEO_2, 12)
#define SI_CAP_LOGO_SA_H wSIItemPos(SI_VIDEO_2, 13)
#define SI_CAP_LOGO_SA_M wSIItemPos(SI_VIDEO_2, 14)
#define SI_CAP_LOGO_SA_L wSIItemPos(SI_VIDEO_2, 15)
#define SI_LOGO_KEEP_TVSYS wSIItemPos(SI_VIDEO_2, 16)
#define SI_V2_SPEED_CONTROL wSIItemPos(SI_VIDEO_2, 17)
#define SI_COLOR_BAR wSIItemPos(SI_VIDEO_2, 18)
#define SI_ZOOM_USR_H_BASE wSIItemPos(SI_VIDEO_2, 19)
#define SI_ZOOM_USR_V_BASE wSIItemPos(SI_VIDEO_2, 20)
#define SI_ZOOM_USR_H wSIItemPos(SI_VIDEO_2, 21)
#define SI_ZOOM_USR_V wSIItemPos(SI_VIDEO_2, 22)
#define SI_VDAC_OFF wSIItemPos(SI_VIDEO_2, 23)
#define SI_V2_ERR_CRITERION wSIItemPos(SI_VIDEO_2, 25)
#define SI_MV wSIItemPos(SI_VIDEO_2, 26)
#define SI_CAP_LOGO_CFG wSIItemPos(SI_VIDEO_2, 27)
// SI_DEFAULT_LOGO_CLR_Y must be dword aligned, and this is for SI_DEFAULT_LOGO
#define SI_FLASH_LOGO_IDX wSIItemPos(SI_VIDEO_2, 28)
#define SI_DEFAULT_LOGO_CLR_Y wSIItemPos(SI_VIDEO_2, 29)
#define SI_DEFAULT_LOGO_CLR_CB wSIItemPos(SI_VIDEO_2, 30)
#define SI_DEFAULT_LOGO_CLR_CR wSIItemPos(SI_VIDEO_2, 31)
#define SI_DEFAULT_LOGO wSIItemPos(SI_VIDEO_2, 32)
// Group 23: for OSD_CMD_PRM
#define SI_OSD_CMD_BUF wSIItemPos(SI_OSD_CMD_PRM_GRP, 1)
#define SI_SHM_FIFO_START wSIItemPos(SI_SHM_FIFO_GRP, 1)
// Group 28: SHM_CFG_GRP
#define SI_RISC_SHM_RP wSIItemPos(SI_SHM_CFG_GRP, 1)
#define SI_RISC_SHM_WP wSIItemPos(SI_SHM_CFG_GRP, 2)
#define SI_SHI_SZ wSIItemPos(SI_SHM_CFG_GRP, 5)
#define SI_SHI_NS wSIItemPos(SI_SHM_CFG_GRP, 6)
#define SI_ID0 wSIItemPos(SI_SHM_CFG_GRP, 7)
#define SI_ID1 wSIItemPos(SI_SHM_CFG_GRP, 8)
#define SI_ID2 wSIItemPos(SI_SHM_CFG_GRP, 9)
#define SI_ID3 wSIItemPos(SI_SHM_CFG_GRP, 10)
#define SI_VID0 wSIItemPos(SI_SHM_CFG_GRP, 11)
#define SI_VID1 wSIItemPos(SI_SHM_CFG_GRP, 12)
#define SI_VID2 wSIItemPos(SI_SHM_CFG_GRP, 13)
#define SI_VID3 wSIItemPos(SI_SHM_CFG_GRP, 14)
#define SI_OSD_WB_NS wSIItemPos(SI_SHM_CFG_GRP, 15)
#define SI_OSD_MEM_BLK wSIItemPos(SI_SHM_CFG_GRP, 16)
// Group 29: ERROR_RET
// note these four items must be in one DWRD,
// and only could be read & write by RISC
#define SI_UOP_ID wSIItemPos(SI_UOP_ERR_RET_GRP, 1)
#define SI_UOP_RET_VAL wSIItemPos(SI_UOP_ERR_RET_GRP, 2)
#define SI_UOP_SUB_ID wSIItemPos(SI_UOP_ERR_RET_GRP, 3)
#define SI_UOP_SUB_RET_VAL wSIItemPos(SI_UOP_ERR_RET_GRP, 4)
#define SI_OSD_ERR_RET wSIItemPos(SI_UOP_ERR_RET_GRP, 5)
#ifdef CDG_SUPPORT
#define SI_CDG_START_X wSIItemPos(SI_UOP_ERR_RET_GRP, 17)
#define SI_CDG_START_Y wSIItemPos(SI_UOP_ERR_RET_GRP, 18)
#define SI_CDG_M_WIDTH wSIItemPos(SI_UOP_ERR_RET_GRP, 19)
#define SI_CDG_M_H_PAL wSIItemPos(SI_UOP_ERR_RET_GRP, 20)
#define SI_CDG_M_H_NTSC wSIItemPos(SI_UOP_ERR_RET_GRP, 21)
#define SI_CDG_DISC wSIItemPos(SI_UOP_ERR_RET_GRP, 22)
#endif
// group 30 for RISC config
// group 31 for firmware version
// group 32 ~ 35 for optinal play item info, total 128 bytes
#define SI_ITEM_INFO_START wSIItemPos(SI_ITEM_INFO_GRP, 1)
#define SI_DVD_TT_CH SI_ITEM_INFO_START
// A-B REPEAT_INF
#define SI_AB_REPEAT_A_INF wSIItemPos(SI_AB_REPEAT_INF_GRP, 1)
// group 20, GROUP FOR JPEG DECODING AND DISPLAY MODULE
#define SI_JPG_START wSIItemPos(SI_JPG_GRP, 1)
#define SI_JPG_DIGEST_BG wSIItemPos(SI_JPG_GRP, 1)
//current jpg rotate & mirror mode,
// D[1:0]: 0 = no rotate, 1= CCLKW 90 deg, 2= CCLKW 180 deg, 3= CCLKW 270 deg
// D[4] : 0 = mirror mode(horizontal) disable , 1 = mirror mode(horizontal) enable
// D[5] : 0 = invert mode(vertical) disable, 1 = invert mode(vertical) enable
#define SI_JPG_ROTATE_MIRROR_MODE wSIItemPos(SI_JPG_GRP, 2)
//current JPEG operation status
//D[0]: slideshow on(1)/off(0)
//D[1]: rotate&mirror modes on(1)/off(0)
#define SI_JPG_OP_STATUS wSIItemPos(SI_JPG_GRP, 3)
#define SI_JPG_SLIDESHOW_INTERVAL wSIItemPos(SI_JPG_GRP, 4) //jpeg slideshow interval (sec)
//#define SI_JPG_TRANSITION_EFFECT wSIItemPos(SI_JPG_GRP, 5)
#define SI_JPG_DECODE_STATUS wSIItemPos(SI_JPG_GRP, 5)
//#define SI_JPG_TRANSITION_SPEED wSIItemPos(SI_JPG_GRP, 6) //tranistion speed, 0:fastest
//To set jpg auto slide show after rotate or mirror
//D[7]: 1 = On, 0 = off
//D[3:0] : Staying time before slide
#define SI_JPG_ROTATE_AUTO_SLIDE wSIItemPos(SI_JPG_GRP, 7)
#define SI_JPG_AUTO_SLIDE wSIItemPos(SI_JPG_GRP, 8) // - enable slide show automatically when the picture is displayed
// SI_JPG_BG_CLR_Y must be dword aligned
#define SI_JPG_BG_CLR_Y wSIItemPos(SI_JPG_GRP, 9)
#define SI_JPG_BG_CLR_CB wSIItemPos(SI_JPG_GRP, 10)
#define SI_JPG_BG_CLR_CR wSIItemPos(SI_JPG_GRP, 11)
#define SI_JPG_PROGRESSIVE_SHOW wSIItemPos(SI_JPG_GRP, 12)
//JPEG Digest Customization
#define SI_DIGEST_START_X wSIItemPos(SI_JPG_GRP, 13)
#define SI_DIGEST_START_Y_NTSC wSIItemPos(SI_JPG_GRP, 14)
#define SI_DIGEST_X_DIM_NUMS wSIItemPos(SI_JPG_GRP, 15)
#define SI_DIGEST_Y_DIM_NUMS wSIItemPos(SI_JPG_GRP, 16)
#define SI_DIGEST_H_GAP wSIItemPos(SI_JPG_GRP, 17)
#define SI_DIGEST_V_GAP_NTSC wSIItemPos(SI_JPG_GRP, 18)
#define SI_DIGEST_WIDTH wSIItemPos(SI_JPG_GRP, 19)
#define SI_DIGEST_HEIGHT wSIItemPos(SI_JPG_GRP, 20)
#define SI_JPG_ITEM_IDX_LO wSIItemPos(SI_JPG_GRP, 21)
#define SI_JPG_ITEM_IDX_HI wSIItemPos(SI_JPG_GRP, 22) // - the index of current item
#define SI_JPG_STT wSIItemPos(SI_JPG_GRP, 23) // - the state of the module
#define SI_JPG_MODE wSIItemPos(SI_JPG_GRP, 24) // - operation mode
#define SI_JPG_ROTATE_PAN_ACK wSIItemPos(SI_JPG_GRP, 25)
#define SI_JPG_SLIDE_SHOW_DONE wSIItemPos(SI_JPG_GRP, 26)
#define SI_PREVIEW_MODE wSIItemPos(SI_JPG_GRP, 27)
#define SI_PREVIEW_START_X wSIItemPos(SI_JPG_GRP, 28)
#define SI_PREVIEW_START_Y wSIItemPos(SI_JPG_GRP, 29)
#define SI_PREVIEW_WIDTH wSIItemPos(SI_JPG_GRP, 30)
#define SI_PREVIEW_HEIGHT wSIItemPos(SI_JPG_GRP, 31)
#define SI_PREVIEW_BG wSIItemPos(SI_JPG_GRP, 32)
// COMMAND GROUP 1 for the UI component "FS LIST"
#define SI_FSMENU_COMMAND_START_1 wSIItemPos(SI_FSMENU_COMMAND_GRP_1, 1)
// Group 30: for RISC config
#define SI_VCD_CONFIG_0 wSIItemPos(SI_RISC_CONFIG_GRP, 1)
#define SV_LASTMEM_BIT 0x1
#define SV_AUTOPLAY_BIT 0x2
#define SV_KEEP_FF_BIT 0x4
//#define SV_AUTO_PBC_BIT 0x8
#define SV_KEEP_SF_BIT 0x8
#define SV_USE_BOOKMARK_PBC_BIT 0x10
#define SV_NOT_KEEP_FF_IN_TRK_0 0x20
#define SV_KEEP_FR_BIT 0x40
#define SV_FF2X_NO_MUTE 0x80
#define SI_VCD_CONFIG_1 wSIItemPos(SI_RISC_CONFIG_GRP, 2)
#define SV_SVD_SERCH_KEEP_FF_BIT 0x1
#define SV_SVD_SERCH_KEEP_FR_BIT 0x2
#define SV_SVD_SERCH_KEEP_SF_BIT 0x4
#define SV_SVD_SERCH_KEEP_PAUSE_BIT 0x8
#define SV_SVD_REPAB_KEEP_FF_BIT 0x10
//#define SV_SVD_REPAB_KEEP_FR_BIT 0x20
#define SV_SVD_REPAB_KEEP_SF_BIT 0x40
#define SI_VCD_CONFIG_2 wSIItemPos(SI_RISC_CONFIG_GRP, 3)
// if pbc table is wrong, go to simulate pbc on
#define SV_SVD_FAKE_PBC_BIT 0x01
// if pbc state of last memory slot is not equal to current pbc state, discard last memory play
#define SV_SVD_STRICT_MEM_CHK_BIT 0x02
#define SI_DSP_RECOVERY wSIItemPos(SI_RISC_CONFIG_GRP, 8)
#define SI_CDDA_CONFIG wSIItemPos(SI_RISC_CONFIG_GRP, 9)
#define SV_CDDA_AUTOPLAY_BIT 0x01
#define SV_RTIME_USE_ATIME 0x02
#define SV_CDDA_FF_KEEP_TRICK 0x04
#define SV_CDDA_FR_KEEP_TRICK 0x08
#define SV_CDDA_SEARCH_KEEP_TRICK 0x10
#define SI_DVD_SUPPORT wSIItemPos(SI_RISC_CONFIG_GRP, 10)
#define SI_VCD_SUPPORT wSIItemPos(SI_RISC_CONFIG_GRP, 11)
#define SI_CDDA_SUPPORT wSIItemPos(SI_RISC_CONFIG_GRP, 12)
#define SI_PCD_SUPPORT wSIItemPos(SI_RISC_CONFIG_GRP, 13)
#define SI_NO_DTS wSIItemPos(SI_RISC_CONFIG_GRP, 14)
#define SI_DVD_PLAY_CONFIG2 wSIItemPos(SI_RISC_CONFIG_GRP, 15)
#define SV_AST_FOLLOW_USR (0x1)
#define SV_SPST_FOLLOW_USR (0x1 << 1)
#define SV_LOCK_INI_LCD (0x1 << 2)
#define SI_UPG_CONFIG wSIItemPos(SI_RISC_CONFIG_GRP, 16)
#define SV_UPG_CHKSUM (1 << 0)
#define SV_UPG_CPPM_REPLACE (1 << 1)
#define SV_UPG_CPPM_KEEP (0 << 1)
#define SI_SVD_PSR_ERR_SKIP_LV wSIItemPos(SI_RISC_CONFIG_GRP, 22)
#define SI_SVCD_4AST wSIItemPos(SI_RISC_CONFIG_GRP, 23)
#define SI_DIGIT_CANCEL_REP wSIItemPos(SI_RISC_CONFIG_GRP, 24)
#define SI_DVD_CONFIG wSIItemPos(SI_RISC_CONFIG_GRP, 25)
#define SV_LNKPRVC_CHK_PRV_PG (0x1)
#define SV_ASPECT_PS_LB (0x1 << 1)
#define SV_HIGHLIGHT_ZOOM (0x1 << 2)
#define SV_SP_N2P_SCALE (0x1 << 3)
#define SV_STOP_RESET_PTL (0x1 << 4)
#define SV_STOP_RESET_ASTN (0x1 << 5)//020805
#define SV_STOP_RESET_SPSTN (0x1 << 6)
#define SV_STOP_RESET_AGLN (0x1 << 7)
#define SI_DVD_PLAY_SET wSIItemPos(SI_RISC_CONFIG_GRP, 26)
#define SV_DVD_AUTO_PLAY 0x1
#define SV_DVD_PTL_VER10 (0x1 << 1)
#define SV_DVD_FORCE_CHG_ANGLE (0x1 << 2) // allow angle change even in non-angle cell
#define SV_DVD_TT_NOSP (0x1 << 3)
#define SV_AUTO_LONGEST_TT_PLAY (0x1 << 4) // SV_DVD_AUTO_PLAY should set to TRUE
#define SV_LONG_TT_OPTION (0x1 << 5) // TRUE for longer time, FALSE for larger PttNs
#define SV_FAST_SL_AGL_CHG (0x1 << 6) // fast seamless angle change style
#define SV_REP_HLI_NO_FORCED_EXE (0x1 << 7) // in repeat mode, ignore forced execution of HLI
#define SI_GENERAL_PLAY_CONFIG0 wSIItemPos(SI_RISC_CONFIG_GRP, 27)
#define SV_REV_END_RESTART_PLAY 0x1
#define SV_TRICK_KEEP_WHEN_SEARCH (0x1 << 1)
#define SV_FWD2X_NO_MUTE (0x1 << 2)
#define SV_FWD_END_RESTART_PLAY (0x1 << 3)
#define SV_BM_CLR_REARRANGE (0x1 << 4) // 021031: rearrange bookmark after clearing one
#define SV_SKIP_KEEP_A (0x1 << 5) // 021107: keep a point when doing next pg search
#define SV_STILL_NO_TRICK (0x1 << 6) // 021107: in still menu, trick mode is prohibited
#define SV_FAST_ALLOW_NO_VIDEO (0x1 << 7) // 021125: in FF/FR, allow jumping to a VOBU without video
#define SI_DVD_PLAY_CONFIG0 SI_GENERAL_PLAY_CONFIG0
#define SI_DVD_REP_STILL_VAL wSIItemPos(SI_RISC_CONFIG_GRP, 28)
#define SI_SQUARE_WAVE_SET_VAL wSIItemPos(SI_RISC_CONFIG_GRP, 29)
#define SI_DVD_PLAY_CONFIG1 wSIItemPos(SI_RISC_CONFIG_GRP, 30)
#define SV_TITLE_SHUFFLE 0x1 // 021127: use title to do shuffle
#define SV_FFSCAN_NO_STILL (0x1 << 1) // forward scan no vobu still, no cell still
#define SV_BAN_STEP_WHEN_PAUSE_BLOCK (0x1 << 2) // step will be prohibit when pause is block by NV
#define SV_FF_2X4X_NOSP (0x1 << 3) // fast forward 2X/4X, the sub-picture will be disable
#define SV_TITLE_PLAY_RESET_ASTN (0x1 << 4) // reset ASTN after a Title_Play()
#define SV_TITLE_PLAY_RESET_SPSTN (0x1 << 5) // reset SPSTN after a Title_Play()
#define SV_TIME_SRCH_WITHIN_A_B (0x1 << 6) // time search to C < A then C = A; to C > B then ignore time search
#define SI_DVD_AUDIO_CONFIG wSIItemPos(SI_RISC_CONFIG_GRP, 31)
#define SV_PREV_DLIST_CYCLE 0x1
#define SI_PLAYER_GENERAL_CONFIG wSIItemPos(SI_RISC_CONFIG_GRP, 32)
#define SV_DSP_LOAD_CODE_FORCE_SYNC (0x1 << 1)
#define SV_FAKE_DTS (0x1 << 2)
// Group 31: for firmware version
#define SI_FW_VER_ID0 wSIItemPos(SI_SHM_FWVER_GRP, 1)
#define SI_FW_VER_ID1 wSIItemPos(SI_SHM_FWVER_GRP, 2)
#define SI_FW_VER_ID2 wSIItemPos(SI_SHM_FWVER_GRP, 3)
#define SI_FW_VER_ID3 wSIItemPos(SI_SHM_FWVER_GRP, 4)
#define SI_RISC_VER_ID0 wSIItemPos(SI_SHM_FWVER_GRP, 5)
#define SI_RISC_VER_ID1 wSIItemPos(SI_SHM_FWVER_GRP, 6)
#define SI_RISC_VER_ID2 wSIItemPos(SI_SHM_FWVER_GRP, 7)
#define SI_RISC_VER_ID3 wSIItemPos(SI_SHM_FWVER_GRP, 8)
#define SI_8032_VER_ID0 wSIItemPos(SI_SHM_FWVER_GRP, 9)
#define SI_8032_VER_ID1 wSIItemPos(SI_SHM_FWVER_GRP, 10)
#define SI_8032_VER_ID2 wSIItemPos(SI_SHM_FWVER_GRP, 11)
#define SI_8032_VER_ID3 wSIItemPos(SI_SHM_FWVER_GRP, 12)
#define SI_ADSP_VER_ID0 wSIItemPos(SI_SHM_FWVER_GRP, 13)
#define SI_ADSP_VER_ID1 wSIItemPos(SI_SHM_FWVER_GRP, 14)
#define SI_ADSP_VER_ID2 wSIItemPos(SI_SHM_FWVER_GRP, 15)
#define SI_ADSP_VER_ID3 wSIItemPos(SI_SHM_FWVER_GRP, 16)
#define SI_SERVO_VER_ID0 wSIItemPos(SI_SHM_FWVER_GRP, 17)
#define SI_SERVO_VER_ID1 wSIItemPos(SI_SHM_FWVER_GRP, 18)
#define SI_SERVO_VER_ID2 wSIItemPos(SI_SHM_FWVER_GRP, 19)
#define SI_SERVO_VER_ID3 wSIItemPos(SI_SHM_FWVER_GRP, 20)
#define SI_SUB_VER_ID0 wSIItemPos(SI_SHM_FWVER_GRP, 21)
#define SI_SUB_VER_ID1 wSIItemPos(SI_SHM_FWVER_GRP, 22)
#define SI_SUB_VER_ID2 wSIItemPos(SI_SHM_FWVER_GRP, 23)
#define SI_SUB_VER_ID3 wSIItemPos(SI_SHM_FWVER_GRP, 24)
#define SI_CHIP_VER0 wSIItemPos(SI_SHM_FWVER_GRP, 25)
#define SI_CHIP_VER1 wSIItemPos(SI_SHM_FWVER_GRP, 26)
#define SI_CHIP_VER2 wSIItemPos(SI_SHM_FWVER_GRP, 27)
#define SI_CHIP_VER3 wSIItemPos(SI_SHM_FWVER_GRP, 28)
// Group 39,40: for disc upgrade
#define SI_UPG_VOLUME_ST wSIItemPos(SI_UPG_VOLUME, 1)
#define SI_UPG_FILE_ST wSIItemPos(SI_UPG_FILE, 1)
#define SI_CC_BUF_SA wSIItemPos(SI_CC_BUF, 1)
// Group 59,60,61,62: for UOP return
#define SI_UOP_FIFO_START wSIItemPos(SI_UOP_RET_GRP, 1)
//Group 80 SI_PDEVICE_DEBUG_GRP
#ifdef P_DEVICE_DEBUG
#define SI_DEVICE_RW wSIItemPos(SI_PDEVICE_DEBUG_GRP, 1)
#define SI_DEVICE_REG_ADDR wSIItemPos(SI_PDEVICE_DEBUG_GRP, 2)
#define SI_DEVICE_REG_VAL wSIItemPos(SI_PDEVICE_DEBUG_GRP, 3)
#define SI_DEVICE_I2C_ADDR wSIItemPos(SI_PDEVICE_DEBUG_GRP, 4)
#endif
// 030220
// Group 108 for pscan video mode parameter
#define SI_PSCAN_MOTION_THD_LOW wSIItemPos(SI_PSCAN_PARM, 1)
#define SI_PSCAN_MOTION_THD_MID wSIItemPos(SI_PSCAN_PARM, 2)
#define SI_PSCAN_MOTION_THD_HIGH wSIItemPos(SI_PSCAN_PARM, 3)
#define SI_PSCAN_SWITCH_THD wSIItemPos(SI_PSCAN_PARM, 4)
#define SI_PSCAN_PAUSE_MODE wSIItemPos(SI_PSCAN_PARM, 5)
#define SI_PSCAN_M_PXL_THD_LOW wSIItemPos(SI_PSCAN_PARM, 6)
#define SI_PSCAN_M_PXL_THD_MID wSIItemPos(SI_PSCAN_PARM, 7)
#define SI_PSCAN_M_PXL_THD_HIGH wSIItemPos(SI_PSCAN_PARM, 8)
#define SI_PSCAN_M_PXL_THD_STILL wSIItemPos(SI_PSCAN_PARM, 9)
#define SI_PSCAN_STILL_SCENE_THD wSIItemPos(SI_PSCAN_PARM, 10)
#define SI_PSCAN_NTSC wSIItemPos(SI_PSCAN_PARM, 11)
#define SI_PSCAN_PAL wSIItemPos(SI_PSCAN_PARM, 12)
#define SI_PSCAN_EDGE wSIItemPos(SI_PSCAN_PARM, 13)
#define SI_PSCAN_TRICK_MODE wSIItemPos(SI_PSCAN_PARM, 14)
// for 8032 working data use
#define SI_USER_START wSIItemPos(SI_USER_DATA_GRP, 1)
// for serial EEPROM
#define SI_EEPROM_QUEUE wSIItemPos(SI_EEPROM_SHADOW_GRP, 1)
#define SI_EEPROM_QUEUE_READ wSIItemPos(SI_EEPROM_SHADOW_GRP, 1)
#define SI_EEPROM_QUEUE_WRITE wSIItemPos(SI_EEPROM_SHADOW_GRP, 2)
#define SI_EEPROM_QUEUE_START wSIItemPos(SI_EEPROM_SHADOW_GRP, 3)
#define SI_EEPROM_SHADOW wSIItemPos(SI_EEPROM_SHADOW_GRP, EEPROM_WRITE_OFFSET)
#define SI_LASTMEM_SHADOW wSIItemPos(SI_LASTMEM_GRP_ID, 1)
// Group 60: User playback control
#define SI_USR_PROGRAM_NO wSIItemPos(SI_USR_CTRL_GRP, 1)
#define SI_USR_PROGRAM_NS wSIItemPos(SI_USR_CTRL_GRP, 2) /* max program items: 24 */
#define SI_USR_PROGRAM_TYPE wSIItemPos(SI_USR_CTRL_GRP, 3)
/* double word alignment */
#define SI_USR_DIGEST_NO wSIItemPos(SI_USR_CTRL_GRP, 5)
#define SI_USR_DIGEST_NS wSIItemPos(SI_USR_CTRL_GRP, 6)
#define SI_USR_DIGEST_TYPE wSIItemPos(SI_USR_CTRL_GRP, 7)
#define SI_USR_DIGEST_CTRL wSIItemPos(SI_USR_CTRL_GRP, 8)
// USR_PROGRAM_INF, current use 24 items, 96 bytes, group 61 to 63
#define SI_USR_SELECT_INF wSIItemPos(SI_USR_PROGRAM_INF_GRP1, 1)
#define SI_USR_PROGRAM_ITEM_1 SI_USR_SELECT_INF
// USR_BOOKMARK_INF, current use 12 items, 96 bytes, group 64 to 66
#define SI_USR_BOOKMARK_INF wSIItemPos(SI_USR_BOOKMARK_INF_GRP1, 1)
#define SI_USR_BOOKMARK_ITEM_1 SI_USR_BOOKMARK_INF
//used for repeat folder
#define SI_DDISC_START_FOLDER_IDX_LO wSIItemPos(SI_DDISC_GRP, 7) // - lo-byte of start folder
#define SI_DDISC_START_FOLDER_IDX_HI wSIItemPos(SI_DDISC_GRP, 8) // - hi-byte of start folder
#define SI_DDISC_FRNG_BEGIN_LO wSIItemPos(SI_DDISC_GRP, 16)
#define SI_DDISC_FRNG_BEGIN_HI wSIItemPos(SI_DDISC_GRP, 17)
#define SI_DDISC_FRNG_END_LO wSIItemPos(SI_DDISC_GRP, 18)
#define SI_DDISC_FRNG_END_HI wSIItemPos(SI_DDISC_GRP, 19)
#define SI_DDISC_FRNG_MODE wSIItemPos(SI_DDISC_GRP, 20)
//*******************************************************************
// no use for 1389D
//*******************************************************************
#if 0
// used by SACD, which 1389 Rev D doesn't support
/* group for DFI update */
#define SI_UPDATE_DFI_START wSIItemPos(SI_DFI_GRP, 1)
#define SI_DDISC_START_FOLDER_IDX_LO wSIItemPos(SI_DDISC_GRP, 7) // - lo-byte of start folder
#define SI_DDISC_START_FOLDER_IDX_HI wSIItemPos(SI_DDISC_GRP, 8) // - hi-byte of start folder
#define SI_DDISC_FRNG_BEGIN_LO wSIItemPos(SI_DDISC_GRP, 16)
#define SI_DDISC_FRNG_BEGIN_HI wSIItemPos(SI_DDISC_GRP, 17)
#define SI_DDISC_FRNG_END_LO wSIItemPos(SI_DDISC_GRP, 18)
#define SI_DDISC_FRNG_END_HI wSIItemPos(SI_DDISC_GRP, 19)
#define SI_DDISC_FRNG_MODE wSIItemPos(SI_DDISC_GRP, 20)
#define SI_FSMENU_ITEM_REGION_START wSIItemPos(SI_FSMENU_ITEM_REGION_GRP, 1)
//Group 14 //Mars,[2002/5/29]
#define SI_JPG_THUMBNAIL_START wSIItemPos(SI_JPG_THUMBNAIL_GRP, 1)
#define SI_THUMBNAIL_1_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 1)
#define SI_THUMBNAIL_1_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 2)
#define SI_THUMBNAIL_2_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 3)
#define SI_THUMBNAIL_2_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 4)
#define SI_THUMBNAIL_3_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 5)
#define SI_THUMBNAIL_3_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 6)
#define SI_THUMBNAIL_4_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 7)
#define SI_THUMBNAIL_4_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 8)
#define SI_THUMBNAIL_5_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 9)
#define SI_THUMBNAIL_5_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 10)
#define SI_THUMBNAIL_6_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 11)
#define SI_THUMBNAIL_6_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 12)
#define SI_THUMBNAIL_7_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 13)
#define SI_THUMBNAIL_7_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 14)
#define SI_THUMBNAIL_8_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 15)
#define SI_THUMBNAIL_8_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 16)
#define SI_THUMBNAIL_9_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 17)
#define SI_THUMBNAIL_9_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 18)
#define SI_THUMBNAIL_10_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 19)
#define SI_THUMBNAIL_10_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 20)
#define SI_THUMBNAIL_11_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 21)
#define SI_THUMBNAIL_11_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 22)
#define SI_THUMBNAIL_12_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 23)
#define SI_THUMBNAIL_12_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 24)
#define SI_THUMBNAIL_13_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 25)
#define SI_THUMBNAIL_13_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 26)
#define SI_THUMBNAIL_14_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 27)
#define SI_THUMBNAIL_14_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 28)
#define SI_THUMBNAIL_15_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 29)
#define SI_THUMBNAIL_15_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 30)
#define SI_THUMBNAIL_16_IDX_LO wSIItemPos(SI_JPG_THUMBNAIL_GRP, 31)
#define SI_THUMBNAIL_16_IDX_HI wSIItemPos(SI_JPG_THUMBNAIL_GRP, 32)
// SHARED GROUPD FOR FS UI COMMANDS
// COMMAND GROUP 0 for the original UI component "FS MENU"
#define SI_FSMENU_COMMAND_START_0 wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 1)
// - commands passed thru command grp 0 are of the old command set
#define SI_FSMENU_ITEM_1 wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 1)
#define SI_FSMENU_ITEM_2 wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 2)
#define SI_FSMENU_ITEM_3 wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 3)
#define SI_FSMENU_ITEM_4 wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 4)
#define SI_FSMENU_ITEM_5 wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 5)
#define SI_FSMENU_ENROLL_MENU wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 2)
#define SI_FSMENU_SHOW_PAGE wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 4)
#define SI_FSMENU_CLR_PAGE wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 5)
#define SI_FSMENU_ACT_ITEM wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 6)
#define SI_FSMENU_ADD_TO_PLAYLIST wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 7)
#define SI_FSMENU_REMOVE_FROM_PLAYLIST wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 8)
// - for notification
#define SI_FSMENU_DIR_CHANGED wSIItemPos(SI_FSMENU_COMMAND_GRP_0, 10)
// FS MENU ICON SET GROUP "SI_FSMENU_ICON_SET_GRP"
#define SI_FSMENU_AC3_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 1)
#define SI_FSMENU_MP3_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 2)
#define SI_FSMENU_MP2_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 3)
#define SI_FSMENU_MP1_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 4)
#define SI_FSMENU_WAV_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 5)
#define SI_FSMENU_JPG_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 6)
#define SI_FSMENU_MLP_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 7)
#define SI_FSMENU_WMA_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 8)
#define SI_FSMENU_ASF_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 9)
#define SI_FSMENU_MPG_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 10)
#define SI_FSMENU_DAT_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 11)
#define SI_FSMENU_VOB_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 12)
#define SI_FSMENU_DSD_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 13)
#define SI_FSMENU_DIR_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 14)
#define SI_FSMENU_UNKNOWN_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 15)
#define SI_FSMENU_PARENT_DIR_ICON wSIItemPos(SI_FSMENU_ICON_SET_GRP, 16)
// Group 51,52,53: for password file
#define SI_PWD_FILENAME wSIItemPos(SI_PWD_FILENAME_GRP, 1)
#define SI_PWD_STRING wSIItemPos(SI_PWD_STRING_GRP_0, 1)
#define SI_PWD_STRING_LEN_MAX 64
// Group 54: for spectrum data
#define SI_SPTM_DATA_OUT wSIItemPos(SI_SPTM_DATA_GRP, 1)
#define SI_SPTM_DATA_ST wSIItemPos(SI_SPTM_DATA_GRP, 2)
#define SI_FS_ENB_DFS_FROM_ROOT wSIItemPos(SI_FS_GRP, 6) // - enable depth-first-search from root
#define SI_FS_PRE_SESSION_MODE wSIItemPos(SI_FS_GRP, 7) // - pre-session mode
/* reserved field (6 ~ 9) */
/* DISC info (these fields are designed for "FS_MENU" */
#define SI_FS_DISC_TTFOLDER_NS_LO wSIItemPos(SI_FS_GRP, 10) // - total folder ns in disc (lo-byte)
#define SI_FS_DISC_TTFOLDER_NS_HI wSIItemPos(SI_FS_GRP, 11) // - total folder ns in disc (hi-byte)
#define SI_FS_DISC_TTFILE_NS_LO wSIItemPos(SI_FS_GRP, 12) // - total file ns in disc (lo-byte)
#define SI_FS_DISC_TTFILE_NS_HI wSIItemPos(SI_FS_GRP, 13) // - total file ns in disc (hi-byte)
#define SI_FS_DISC_PLIST_LEN_LO wSIItemPos(SI_FS_GRP, 14) // - len of playlist (lo-byte)
#define SI_FS_DISC_PLIST_LEN_HI wSIItemPos(SI_FS_GRP, 15) // - len of playlist (hi-byte)
/* pcd base dir */
#define SI_FS_PCD_BASEDIR_LO wSIItemPos(SI_FS_GRP, 22)
#define SI_FS_PCD_BASEDIR_HI wSIItemPos(SI_FS_GRP, 23)
#define SI_MP3_ID3TAG_B1 wSIItemPos(SI_MP3_GRP, 11)
#define SI_MP3_ID3TAG_B2 wSIItemPos(SI_MP3_GRP, 12)
#define SI_MP3_ID3TAG_B3 wSIItemPos(SI_MP3_GRP, 13)
#define SI_MP3_ID3TAG_B4 wSIItemPos(SI_MP3_GRP, 14)
#define SI_MP3_ID3V2TAG_B1 wSIItemPos(SI_MP3_GRP, 15)
#define SI_MP3_ID3V2TAG_B2 wSIItemPos(SI_MP3_GRP, 16)
#define SI_MP3_ID3V2TAG_B3 wSIItemPos(SI_MP3_GRP, 17)
#define SI_MP3_ID3V2TAG_B4 wSIItemPos(SI_MP3_GRP, 18)
#define SI_MP3_ITEM_INFO_B1 wSIItemPos(SI_MP3_GRP, 22) // - pointer to mp3 item info
#define SI_MP3_ITEM_INFO_B2 wSIItemPos(SI_MP3_GRP, 23)
#define SI_MP3_ITEM_INFO_B3 wSIItemPos(SI_MP3_GRP, 24)
#define SI_MP3_ITEM_INFO_B4 wSIItemPos(SI_MP3_GRP, 25)
#define SI_MP3_ITEM_UIDX_LO wSIItemPos(SI_MP3_GRP, 26) // - unique index of the item
#define SI_MP3_ITEM_UIDX_HI wSIItemPos(SI_MP3_GRP, 27)
// GROUP FOR MOTION PICTURE PLAYBACK MODULE
#define SI_MPIC_START wSIItemPos(SI_MPIC_GRP, 1)
// info
#define SI_MPIC_ITEM_INFO_B1 wSIItemPos(SI_MPIC_GRP, 4) // - pointer to mpic item info
#define SI_MPIC_ITEM_INFO_B2 wSIItemPos(SI_MPIC_GRP, 5)
#define SI_MPIC_ITEM_INFO_B3 wSIItemPos(SI_MPIC_GRP, 6)
#define SI_MPIC_ITEM_INFO_B4 wSIItemPos(SI_MPIC_GRP, 7)
// SI FSMENU PROPERTY GROUP "SI_FSMENU_PROPERTY_GRP"
#define SI_FSMENU_OPMODE wSIItemPos(SI_FSMENU_PROPERTY_GRP, 1)
#define SI_FSMENU_PARENT_DIR_MSG_LO wSIItemPos(SI_FSMENU_PROPERTY_GRP, 2)
#define SI_FSMENU_PARENT_DIR_MSG_HI wSIItemPos(SI_FSMENU_PROPERTY_GRP, 3)
#define SI_FSMENU_CUR_FOLDER_IDX_LO wSIItemPos(SI_FSMENU_PROPERTY_GRP, 4)
#define SI_FSMENU_CUR_FOLDER_IDX_HI wSIItemPos(SI_FSMENU_PROPERTY_GRP, 5)
// Group 55: for memory and last memory function
#define SI_LAST_MEM wSIItemPos(SI_MEMORY_GRP, 1)
#define SI_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 2)
#define SI_MEMORY wSIItemPos(SI_MEMORY_GRP, 3)
#define SI_MEMORY_RES wSIItemPos(SI_MEMORY_GRP, 4)
#define SI_VCD_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 5)
#define SI_DVD_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 6)
#define SI_CDDA_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 7)
#define SI_DDISC_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 8)
#define SI_VCD_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 9)
#define SI_DVD_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 10)
#define SI_CDDA_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 11)
#define SI_DDISC_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 12)
#define SI_VCD_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 13)
#define SI_DVD_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 14)
#define SI_CDDA_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 15)
#define SI_DDISC_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 16)
#define SI_VCD_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 17)
#define SI_DVD_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 18)
#define SI_CDDA_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 19)
#define SI_DDISC_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 20)
#define SI_DISC_ID wSIItemPos(SI_MEMORY_GRP, 21) // byte 21~28 for DISC ID
#define SV_DISC_ID_SZ 8
// Group 56: for memory slot list
#define SI_MEM_LIST_START wSIItemPos(SI_MEM_LIST_GRP, 1)
//group 57,
#define SI_JPG_ITEM_INFO_B1 wSIItemPos(SI_JPG_GRP_1, 5)
#define SI_JPG_ITEM_INFO_B2 wSIItemPos(SI_JPG_GRP_1, 6)
#define SI_JPG_ITEM_INFO_B3 wSIItemPos(SI_JPG_GRP_1, 7)
#define SI_JPG_ITEM_INFO_B4 wSIItemPos(SI_JPG_GRP_1, 8)
// Group 110 for mpeg4 options
#define SI_AVI_FF_MODE wSIItemPos(SI_MP4_GRP, 1)
// For DVD-AUDIO
#define SI_CPPM_KEY_SA wSIItemPos(SI_CPPM_KEY_GRP_0, 1)
// 020826
// Audio language code
#define SI_AUD0_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 1)
#define SI_AUD0_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 2)
#define SI_AUD1_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 3)
#define SI_AUD1_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 4)
#define SI_AUD2_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 5)
#define SI_AUD2_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 6)
#define SI_AUD3_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 7)
#define SI_AUD3_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 8)
#define SI_AUD4_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 9)
#define SI_AUD4_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 10)
#define SI_AUD5_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 11)
#define SI_AUD5_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 12)
#define SI_AUD6_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 13)
#define SI_AUD6_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 14)
#define SI_AUD7_LCD0 wSIItemPos(SI_AUD_LCD_GRP, 15)
#define SI_AUD7_LCD1 wSIItemPos(SI_AUD_LCD_GRP, 16)
#define SI_AUD0_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 17)
#define SI_AUD1_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 18)
#define SI_AUD2_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 19)
#define SI_AUD3_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 20)
#define SI_AUD4_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 21)
#define SI_AUD5_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 22)
#define SI_AUD6_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 23)
#define SI_AUD7_CH_NS wSIItemPos(SI_AUD_LCD_GRP, 24)
#define SI_AUD0_CODEC wSIItemPos(SI_AUD_LCD_GRP, 25)
#define SI_AUD1_CODEC wSIItemPos(SI_AUD_LCD_GRP, 26)
#define SI_AUD2_CODEC wSIItemPos(SI_AUD_LCD_GRP, 27)
#define SI_AUD3_CODEC wSIItemPos(SI_AUD_LCD_GRP, 28)
#define SI_AUD4_CODEC wSIItemPos(SI_AUD_LCD_GRP, 29)
#define SI_AUD5_CODEC wSIItemPos(SI_AUD_LCD_GRP, 30)
#define SI_AUD6_CODEC wSIItemPos(SI_AUD_LCD_GRP, 31)
#define SI_AUD7_CODEC wSIItemPos(SI_AUD_LCD_GRP, 32)
// subpicture language code
#define SI_SP0_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 1)
#define SI_SP0_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 2)
#define SI_SP1_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 3)
#define SI_SP1_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 4)
#define SI_SP2_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 5)
#define SI_SP2_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 6)
#define SI_SP3_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 7)
#define SI_SP3_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 8)
#define SI_SP4_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 9)
#define SI_SP4_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 10)
#define SI_SP5_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 11)
#define SI_SP5_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 12)
#define SI_SP6_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 13)
#define SI_SP6_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 14)
#define SI_SP7_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 15)
#define SI_SP7_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 16)
#define SI_SP8_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 17)
#define SI_SP8_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 18)
#define SI_SP9_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 19)
#define SI_SP9_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 20)
#define SI_SP10_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 21)
#define SI_SP10_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 22)
#define SI_SP11_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 23)
#define SI_SP11_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 24)
#define SI_SP12_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 25)
#define SI_SP12_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 26)
#define SI_SP13_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 27)
#define SI_SP13_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 28)
#define SI_SP14_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 29)
#define SI_SP14_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 30)
#define SI_SP15_LCD0 wSIItemPos(SI_SP_LCD_GRP0, 31)
#define SI_SP15_LCD1 wSIItemPos(SI_SP_LCD_GRP0, 32)
#define SI_SP16_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 1)
#define SI_SP16_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 2)
#define SI_SP17_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 3)
#define SI_SP17_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 4)
#define SI_SP18_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 5)
#define SI_SP18_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 6)
#define SI_SP19_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 7)
#define SI_SP19_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 8)
#define SI_SP20_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 9)
#define SI_SP20_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 10)
#define SI_SP21_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 11)
#define SI_SP21_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 12)
#define SI_SP22_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 13)
#define SI_SP22_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 14)
#define SI_SP23_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 15)
#define SI_SP23_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 16)
#define SI_SP24_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 17)
#define SI_SP24_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 18)
#define SI_SP25_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 19)
#define SI_SP25_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 20)
#define SI_SP26_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 21)
#define SI_SP26_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 22)
#define SI_SP27_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 23)
#define SI_SP27_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 24)
#define SI_SP28_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 25)
#define SI_SP28_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 26)
#define SI_SP29_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 27)
#define SI_SP29_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 28)
#define SI_SP30_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 29)
#define SI_SP30_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 30)
#define SI_SP31_LCD0 wSIItemPos(SI_SP_LCD_GRP1, 31)
#define SI_SP31_LCD1 wSIItemPos(SI_SP_LCD_GRP1, 32)
// DVD-Video Text group (106 & 107)
#define SI_DVD_TXT_SZ wSIItemPos(SI_DVD_TXT_GRP_0, 1)
#define SI_DVD_TXT wSIItemPos(SI_DVD_TXT_GRP_0, 2)
// 111
#define SI_OSD_WB_CR_0 wSIItemPos(SI_OSD_GRP, 1)
#define SI_OSD_WB_CR_1 wSIItemPos(SI_OSD_GRP, 2)
#define SI_OSD_WB_CR_2 wSIItemPos(SI_OSD_GRP, 3)
#define SI_OSD_WB_CR_3 wSIItemPos(SI_OSD_GRP, 4)
#define SI_OSD_WB_EN_0 wSIItemPos(SI_OSD_GRP, 5)
#define SI_OSD_WB_EN_1 wSIItemPos(SI_OSD_GRP, 6)
#define SI_OSD_WB_EN_2 wSIItemPos(SI_OSD_GRP, 7)
#define SI_OSD_WB_EN_3 wSIItemPos(SI_OSD_GRP, 8)
// 112
#define SI_CODE_PATCH_EN wSIItemPos(SI_CODE_PATCH, 1)
// 113, 114
#define SI_DRM_MEMORY wSIItemPos(SI_DRM_MEM0, 1)
#define SI_DRM_ACTIVATION wSIItemPos(SI_DRM_MEM1, 17)
#define SI_DRM_REGCODE wSIItemPos(SI_DRM_MEM1, 18)
#define SI_DRM_CODE wSIItemPos(SI_DRM_MEM1, 27) //error or success
#define DRM_ERROR_NOT_AUTH_USER 15 /* from: drmQueryRentalStatus, drmCommitPlayback */
#define DRM_ERROR_RENTAL_EXPIRED 16 /* from: drmQueryRentalStatus, drmCommitPlayback */
#define SI_DRM_VIEWS wSIItemPos(SI_DRM_MEM1, 28)
#define SI_DRM_LIMIT wSIItemPos(SI_DRM_MEM1, 29)
#define SI_DRM_TYPE wSIItemPos(SI_DRM_MEM1, 30)
#define SV_DRM_RENTAL 0
#define SV_DRM_PURCHASE 1
#endif // 0
//*******************************************************************
//#if(defined(LAST_MEM_SUPPORT) || defined(DVD_MEMORY_SUPPORT))
// Group 55: for memory and last memory function
#define SI_LAST_MEM wSIItemPos(SI_MEMORY_GRP, 1)
#define SI_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 2)
#define SI_MEMORY wSIItemPos(SI_MEMORY_GRP, 3)
#define SI_MEMORY_RES wSIItemPos(SI_MEMORY_GRP, 4)
#define SI_VCD_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 5)
#define SI_DVD_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 6)
#define SI_CDDA_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 7)
#define SI_DDISC_LASTMEM_LIST_HD wSIItemPos(SI_MEMORY_GRP, 8)
#define SI_VCD_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 9)
#define SI_DVD_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 10)
#define SI_CDDA_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 11)
#define SI_DDISC_LASTMEM_NS wSIItemPos(SI_MEMORY_GRP, 12)
#define SI_VCD_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 13)
#define SI_DVD_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 14)
#define SI_CDDA_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 15)
#define SI_DDISC_LASTMEM_GRP wSIItemPos(SI_MEMORY_GRP, 16)
#define SI_VCD_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 17)
#define SI_DVD_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 18)
#define SI_CDDA_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 19)
#define SI_DDISC_MEM_SLOT_SZ wSIItemPos(SI_MEMORY_GRP, 20)
// Group 56: for memory slot list
#define SI_MEM_LIST_START wSIItemPos(SI_MEM_LIST_GRP, 1)
//#endif /* #if(defined(LAST_MEM_SUPPORT) || defined(DVD_MEMORY_SUPPORT)) */
#if 0
#if defined(__C51__)
#if defined(_H_DEC_GENERAL_)
#include "sv_const.h"
#elif defined(_H_GENERAL_)
#include "..\..\sv_const.h"
#endif
#else
#include "sv_const.h"
#endif
#endif
#endif