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