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

📄 sys_ctrl.c

📁 是MTK公司新出来的DVD方案
💻 C
📖 第 1 页 / 共 2 页
字号:
#ifdef SUPPORT_VCD_1X
     | SV_VCD_1X_SUPPORT
#endif
#ifdef SUPPORT_VCD_20
     | SV_VCD_20_SUPPORT
#endif
#ifdef SUPPORT_VCD_30
     | SV_VCD_30_SUPPORT
#endif
#ifdef SUPPORT_SVCD
     | SV_SVCD_SUPPORT
#endif
#ifdef SUPPORT_CVD
     | SV_CVD_SUPPORT
#endif
#ifdef NOT_SUPPORT_VCD_AS_DATA
     | SV_VCD_AS_DATA
#endif
     ;
  }
#ifdef CHK_PASSWD_VCD_EN
  else
  {
    i = 0
#ifdef SUPPORT_SVCD
     | SV_SVCD_SUPPORT
#endif
#ifdef SUPPORT_CVD
     | SV_CVD_SUPPORT
#endif
#ifdef NOT_SUPPORT_VCD_AS_DATA
     | SV_VCD_AS_DATA
#endif
    ;
  }
#endif

  vSetSharedInfo(SI_VCD_SUPPORT, i);
}
#endif /* #ifdef VCD_SUPPORT */

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSystemConfigCDDA(void) large
{
  BYTE i;

  i = 0
#if (!defined(USE_8032_AUTO_PLAY) && defined(CDDA_AUTO_PLAY))
      | SV_CDDA_AUTOPLAY_BIT
#endif
#ifdef CDDA_RTIME_FROM_ATIME
      | SV_RTIME_USE_ATIME
#endif
#ifdef CDDA_FF_KEEP_TRICK
      | SV_CDDA_FF_KEEP_TRICK
#endif
#ifdef CDDA_FR_KEEP_TRICK
      | SV_CDDA_FR_KEEP_TRICK
#endif
#ifdef CDDA_SEARCH_KEEP_TRICK
      | SV_CDDA_SEARCH_KEEP_TRICK
#endif
      ;
  vSetSharedInfo(SI_CDDA_CONFIG, i);

  i = SV_CDDA_SUPPORT | SV_DTS_CD_SUPPORT
#ifdef CDG_SUPPORT
      | SV_CDG_SUPPORT
#endif
      ;

  vSetSharedInfo(SI_CDDA_SUPPORT, i);

#ifdef CDG_SUPPORT
  vSetSharedInfo(SI_CDG_START_X, CDG_START_X);
  vSetSharedInfo(SI_CDG_START_Y, CDG_START_Y);
  vSetSharedInfo(SI_CDG_M_WIDTH, CDG_M_WIDTH);
  vSetSharedInfo(SI_CDG_M_H_PAL, CDG_M_H_PAL);
  vSetSharedInfo(SI_CDG_M_H_NTSC, CDG_M_H_NTSC);
#endif /* CDG_SUPPORT */
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSystemConfigISO(void) large
{
  BYTE i;

  // 1. config file support
  //    Mars,[2002/3/25],for Data DISC support customization
  //    for byte 1 of file filter factor
#ifdef SUPPORT_DATA_DISC
  i = 0
#ifdef DDISC_FTYPE_MP3_SUPPORT
      | SV_FS_MP3_SUPPORT 
#endif
#ifdef DDISC_FTYPE_MPEGA_SUPPORT
      | SV_FS_MPEGA_SUPPORT
#endif
#if defined(DDISC_FTYPE_JPEG_SUPPORT) || defined(SUPPORT_PCD)
      | SV_FS_JPEG_SUPPORT
#endif
#ifdef DDISC_FTYPE_MPG_SUPPORT
      | SV_FS_MPG_SUPPORT
#endif
#ifdef DDISC_FTYPE_WMA_SUPPORT
      | SV_FS_WMA_SUPPORT
#endif
#ifdef DDISC_FTYPE_ASF_SUPPORT
      | SV_FS_ASF_SUPPORT
#endif
#ifdef DDISC_FTYPE_WAV_SUPPORT
      | SV_FS_WAV_SUPPORT
#endif
#ifdef DDISC_FTYPE_MP3PRO_SUPPORT
      | SV_FS_MP3PRO_SUPPORT
#endif
      ;
  //    set byte1
  vSetSharedInfo(SI_FS_FTYPE_SUPPORT, i);

  //    for byte 2 of file filter factor
  i = 0
#ifdef DDISC_FTYPE_MAP_SUPPORT
      | SV_FS_MAP_SUPPORT
#endif
#ifdef DDISC_FTYPE_CDDA_SUPPORT
      | SV_FS_CDDA_SUPPORT
#endif
#ifdef DDISC_FTYPE_AAC_SUPPORT
      | SV_FS_AAC_SUPPORT
#endif
#ifdef DDISC_FTYPE_MLP_SUPPORT
      | SV_FS_MLP_SUPPORT
#endif
      ;
  //    set byte2
  vSetSharedInfo(SI_FS_FTYPE_SUPPORT2, i);
  
#else  // #ifdef SUPPORT_DATA_DISC

  vSetSharedInfo(SI_FS_FTYPE_SUPPORT, 0);
  vSetSharedInfo(SI_FS_FTYPE_SUPPORT2, 0);
#endif  // #ifdef SUPPORT_DATA_DISC

  // 2. config file system module properties
  //    common stuff
  vSetSharedInfo(SI_FS_TREAT_EMPTY_AS_UNKNOWN, SV_ON);
  vSetSharedInfo(SI_FS_READ_DISC_RETRY, DDISC_READ_DISC_RETRY);
  //    working area for file system operation buffer on 8032
  vSetSharedInfo(SI_FS_WA_SZ, 128); // - require 128 bytes

  // 3. config supported disc type and file system
#ifdef DDISC_ENB_CDFS
  vSetSharedInfo(SI_FS_ENB_CDFS, SV_ON); // - turn on CDFS
#else
  vSetSharedInfo(SI_FS_ENB_CDFS, SV_OFF); // - turn off CDFS
#endif //DDISC_ENB_CDFS
#if 0
  vSetSharedInfo(SI_FS_PRE_SESSION_MODE, SV_OFF);
#endif
#ifdef SUPPORT_PCD
  vSetSharedInfo(SI_PCD_SUPPORT, SV_PCD_SUPPORT);
#else
  #ifdef PCD_AS_DATA_DISC
    vSetSharedInfo(SI_PCD_SUPPORT, SV_PCD_AS_DATA_DISC);
  #else
    vSetSharedInfo(SI_PCD_SUPPORT, SV_PCD_AS_UNKNOWN_DISC);
  #endif
#endif // SUPPORT_PCD

  // 4. config data disc playback mode properties
  vSetSharedInfo(SI_DDISC_DEF_PMODE, DDISC_DEF_PLAYBACK_MODE);
#ifdef DDISC_ENB_CONC_AV_MODE
  vSetSharedInfo(SI_DDISC_MIXED_TYPE_MODE, SV_OFF);
  vSetSharedInfo(SI_DDISC_CONC_AV_MODE, SV_ON);
  vSetSharedInfo(SI_DDISC_CROSS_FOLDER_MODE, SV_OFF);
#else
  //vSetSharedInfo(SI_DDISC_MIXED_TYPE_MODE, SV_ON);
  vSetSharedInfo(SI_DDISC_MIXED_TYPE_MODE, SV_OFF);
  vSetSharedInfo(SI_DDISC_CONC_AV_MODE, SV_OFF);
  vSetSharedInfo(SI_DDISC_CROSS_FOLDER_MODE, SV_OFF);
#endif //DDISC_ENB_CONC_AV_MODE
  vSetSharedInfo(SI_DDISC_RANDOM_ACT_MODE, SV_OFF);

  // 5. config MP3 module properties
#ifdef AFILE_TRICK_MODE_STILL
  vSetSharedInfo(SI_MP3_TRICK_MODE_STILL, SV_ON);
#else
  vSetSharedInfo(SI_MP3_TRICK_MODE_STILL, SV_OFF);
#endif // AFILE_TRICK_MODE_STILL
  vSetSharedInfo(SI_MP3_CRS_ITEM_AB, SV_OFF);
#ifdef ENABLE_ID3
  vSetSharedInfo(SI_MP3_ID3_PARSER, SV_ON);
#else
  vSetSharedInfo(SI_MP3_ID3_PARSER, SV_OFF);
#endif

  return;
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSystemConfigJPEG(void) large
{
   vSetSharedInfo(SI_JPG_BG_CLR_Y,JPEG_BG_COLOR_Y);//refer in av_play/Mpvcmd.c
   vSetSharedInfo(SI_JPG_BG_CLR_CB,JPEG_BG_COLOR_CB);
   vSetSharedInfo(SI_JPG_BG_CLR_CR,JPEG_BG_COLOR_CR);

  // - JPEG config init.
#ifdef JPEG_SEL_AUTOSLIDE
  vSetSharedInfo(SI_JPG_AUTO_SLIDE, SV_ON); // - turn on the auto slide.
#else
  vSetSharedInfo(SI_JPG_AUTO_SLIDE, SV_OFF); // - turn off the auto slide.
#endif // JPEG_SEL_AUTO_SLIDE

  vSetSharedInfo(SI_JPG_SLIDESHOW_INTERVAL, JPEG_SLIDESHOW_INTERVAL); //Mars,[2002/3/26],set default slideshow interval
  //vSetSharedInfo(SI_JPG_TRANSITION_SPEED, JPEG_TRANSITION_SPEED); //Mars,[2002/3/18], set jpg transition speed
  vSetSharedInfo(SI_JPG_DECODE_STATUS, 0); //CL return _dwJPGErrorType from RISC
  
#if defined(ROTATE_SLIDE_SHOW_ON)
#ifdef JPEG_AUTO_SLIDE_AFTER_ROTATE
  vSetSharedInfo(SI_JPG_ROTATE_AUTO_SLIDE, (0x80|JPEG_TIME_TO_SLIDE));  //Mars,[2002/4/1]
#else
  vSetSharedInfo(SI_JPG_ROTATE_AUTO_SLIDE, 0);
#endif //JPEG_AUTO_SLIDE_AFTER_ROTATE
#endif

#ifdef JPEG_PROGRESS_SHOW_ENABLE      //Mars,[2002/7/15]
  vSetSharedInfo(SI_JPG_PROGRESSIVE_SHOW, 1);
#else
  vSetSharedInfo(SI_JPG_PROGRESSIVE_SHOW, 0);
#endif
#ifdef JPG_PREVIEW_SUPPORT
  vSetSharedInfo(SI_PREVIEW_BG, JPEG_PREVIEW_BG);
  vSetSharedInfo(SI_PREVIEW_MODE, 0);  //Mars,[2002/9/23]
  vSetSharedInfo(SI_PREVIEW_START_X, (360/4) /*DIGEST_START_X_DIV_4*/);
  vSetSharedInfo(SI_PREVIEW_START_Y, (40/5) /*DIGEST_START_Y_NTSC_DIV_5*/);
  vSetSharedInfo(SI_PREVIEW_WIDTH, (320/4) /*DIGEST_WIDTH_DIV_4*/);
  vSetSharedInfo(SI_PREVIEW_HEIGHT, (320/5) /*DIGEST_HEIGHT_DIV_5*/);
#endif

#if defined(JPEG_DDISC_DIGEST_ENABLE) 
  //Mars,[2002/7/15]
  vSetSharedInfo(SI_DIGEST_START_X, DIGEST_START_X_DIV_4);
  vSetSharedInfo(SI_DIGEST_START_Y_NTSC, DIGEST_START_Y_NTSC_DIV_5);
  vSetSharedInfo(SI_DIGEST_X_DIM_NUMS, DIGEST_X_DIM_NUMS);
  vSetSharedInfo(SI_DIGEST_Y_DIM_NUMS, DIGEST_Y_DIM_NUMS);
  vSetSharedInfo(SI_DIGEST_H_GAP, DIGEST_H_GAP_DIV_4);
  vSetSharedInfo(SI_DIGEST_V_GAP_NTSC, DIGEST_V_GAP_NTSC_DIV_5);
  vSetSharedInfo(SI_DIGEST_WIDTH, DIGEST_WIDTH_DIV_4);
  vSetSharedInfo(SI_DIGEST_HEIGHT, DIGEST_HEIGHT_DIV_5);
  vSetSharedInfo(SI_JPG_DIGEST_BG, JPEG_BG_FOR_DIGEST_MENU);
#endif
  vSetSharedInfo(SI_JPG_PROG_PIC_SIZ_LIMIT, JPG_MAX_PROGRESS_PIC_SIZ);
  
#ifdef  JPG_ADAPTIVE_PAN_STEP //Mars,[2003/3/22]
  vSetSharedInfo(SI_JPG_H_PAN_STEP_NUM, JPG_H_PAN_STEP_NUM);
  vSetSharedInfo(SI_JPG_V_PAN_STEP_NUM, JPG_V_PAN_STEP_NUM);
#endif  
}

#if 0 // 1389 Rev D chip doens't support MPEG4 
// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSystemConfigMp4(void) large
{
  vSetSharedInfo(SI_AVI_FF_MODE, AVI_FF_MODE);
}
#endif  // #if 0

// *********************************************************************
// Function :
// Description : System Control Share Memory Initial Routine,
//               called from vUserInit()
// Parameter :
// Return    :
// *********************************************************************
void vInitSystemShareInfo(void) large
{
  vSystemConfigGeneral();
  vSystemConfigDVD();
#ifdef VCD_SUPPORT
  vSystemConfigVCD();
#endif  
  vSystemConfigCDDA();
  vSystemConfigISO();
  vSystemConfigJPEG();
  
#if 0 // 1389 Rev D chip doens't support MPEG4 
  vSystemConfigMp4();
#endif  // #if 0
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vSystemCloseCaption(BOOL fgOnOff) large
{
  vSetSharedInfo(SI_CC_SWITCH, fgOnOff);
  vNotifySharedInfo(SI_CC_SWITCH, 0, 0);
#ifndef MT1389_512K
  if (fgOnOff == SV_ON)
  {
    vTvCCEnable(1);
  }
  else
  {
    vTvCCEnable(0);
  }
#endif //#ifndef MT1389_REV_D
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vSystemTvMode(BYTE bMode) large
{
  BYTE bDefMode ;

  bDefMode = bSharedInfo(SI_ASPECT_CHG_VALID) ;
  //bDefMode = SV_PSCAN_ON | SV_WIDE_ON ;

#if 0  //#ifdef TREAT_PS_LB_AS_THE_SAME
  if ((bMode == SV_4_3_PS) && (!(SV_PSCAN_ON & bDefMode)))
  {
    bMode = SV_4_3_LB ;
  }
  else if ((bMode == SV_4_3_LB) && (!(SV_LB_ON & bDefMode)))
  {
    bMode = SV_4_3_PS ;
  }
#endif

  if (bSharedInfo(SI_G_SYNC) == SV_OFF)  
  {
    if (bMode == SV_WIDE)
      vTvScartAspect(1);
    else
      vTvScartAspect(0);
  }

  if (SV_BLOCK_ON & bDefMode)
  {
    bMode |= 0x80;
  }
  
  vSetSharedInfo(SI_ASPECT_RATIO, bMode);
  vNotifySharedInfo(SI_ASPECT_RATIO, 0, 0);
  
/*
  vSetSharedInfo(SI_FORCE_ASPECT_RATIO, bMode);
  vSetSharedInfo(SI_ASPECT_RATIO, bMode);

  if (SV_BLOCK_ON & bDefMode)
  {
    vNotifySharedInfo(SI_FORCE_ASPECT_RATIO, 0, 0);
  }
  else
  {
    vNotifySharedInfo(SI_ASPECT_RATIO, 0, 0);
  }
*/
//  vSetSharedInfo(SI_ASPECT_RATIO, bMode);
//  vNotifySharedInfo(SI_ASPECT_RATIO, 0, 0);
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
BOOL fgCheckUopBlock(BYTE bNvUop) large
{
  BYTE bFlag;

  if (bNvUop >= SV_NV_UOP_BLK_MAX)
  {
    /* not valid UOP */
    return (TRUE);
  }

  if (bNvUop >= 24)
  {
    bFlag = bSharedInfo(SI_UOP_CTRL_3);
    bNvUop -= 24;
  }
  else if (bNvUop >= 16)
  {
    bFlag = bSharedInfo(SI_UOP_CTRL_2);
    bNvUop -= 16;
  }
  else if (bNvUop >= 8)
  {
    bFlag = bSharedInfo(SI_UOP_CTRL_1);
    bNvUop -= 8;
  }
  else /* if if (bNvUop < 8) */
  {
    bFlag = bSharedInfo(SI_UOP_CTRL_0);
  }

  if (bFlag & (1 << bNvUop))
  {
    return (TRUE);
  }
  else
  {
    return (FALSE);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -