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

📄 sys_ctrl.c

📁 mtk1389L latest sourcecode enjoy
💻 C
📖 第 1 页 / 共 2 页
字号:

// *********************************************************************
// 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
#ifndef NO_CDG_SUPPORT
      | SV_CDG_SUPPORT
#endif
      ;

  vSetSharedInfo(SI_CDDA_SUPPORT, i);

  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);
}

// *********************************************************************
// 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, 255); // - 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

  /* turn off the unused special mode */
  vSetSharedInfo(SI_FS_ENB_DFS_FROM_ROOT, SV_OFF);
  vSetSharedInfo(SI_FS_PRE_SESSION_MODE, SV_OFF);
  vSetSharedInfo(SI_FS_DISABLE_GOP_AT_FAT, SV_OFF);

  /* config PCD support */
  i = 0x0;
#ifdef SUPPORT_PCD
  i |= SV_PCD_SUPPORT;
#else
  #ifdef PCD_AS_DATA_DISC
    i |= SV_PCD_AS_DATA_DISC;
  #else
    i |= SV_PCD_AS_UNKNOWN_DISC;
  #endif
#endif /* SUPPORT_PCD */

  /* config FJCD support */
#ifdef SUPPORT_FJCD
  i |= SV_FJCD_SUPPORT;
#else
  #ifdef FJCD_AS_DATA_DISC
    i |= SV_FJCD_AS_DATA_DISC;
  #else
    i |= SV_FJCD_AS_UNKNOWN_DISC;
  #endif
#endif /* SUPPORT_FJCD */
  vSetSharedInfo(SI_PCD_SUPPORT, i);

  // 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);
  vSetSharedInfo(SI_WMA_OBJ_PARSER, SV_ON);
#else
  vSetSharedInfo(SI_MP3_ID3_PARSER, SV_OFF);
  vSetSharedInfo(SI_WMA_OBJ_PARSER, SV_OFF);
#endif

#ifdef SACD_INFO_LIKE_CDDA
  vSetSharedInfo(SI_SACD_INFO_STYLE, SACD_INFO_STYLE_CDDA);
#else
  vSetSharedInfo(SI_SACD_INFO_STYLE, SACD_INFO_STYLE_ISO);
#endif
#ifdef FSMENU_WITH_FILE_INFO
  vSetSharedInfo(SI_DDISC_FILE_INFO_MODE, SV_FI_DIRTY);
#endif

  /* turn off the option in default */
#ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
  vSetSharedInfo(SI_DEVMNG_SWITCH_MODE, SV_DEVMNG_SWITCH_DISABLE);
#else
  vSetSharedInfo(SI_DEVMNG_SWITCH_MODE, SV_DEVMNG_SWITCH_DEFAULT);
#endif

  /* preset the programmed seq of the device switching */
  vSetSharedInfo(SI_DEVMNG_PROG_DEV_1, SV_DEVID_USB_SLOT_1);
  vSetSharedInfo(SI_DEVMNG_PROG_DEV_2, SV_DEVID_USB_SLOT_5);
  vSetSharedInfo(SI_DEVMNG_PROG_DEV_3, SV_DEVID_USB_SLOT_3);
  vSetSharedInfo(SI_DEVMNG_PROG_DEV_4, SV_DEVID_CDVDROM);
  vSetSharedInfo(SI_DEVMNG_PROG_DEV_5, SV_DEVID_INVALID);

  return;
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
static void vSystemConfigJPEG(void) large
{
//#if (defined(PLAYER_2_CHANNEL) || (defined(ISO_STOP_LOGO) && (ISO_STOP_LOGO == SV_LOGO_FILL)))
  vSetSharedInfo(SI_JPG_BG_CLR_Y,JPEG_BG_COLOR_Y);
  vSetSharedInfo(SI_JPG_BG_CLR_CB,JPEG_BG_COLOR_CB);
  vSetSharedInfo(SI_JPG_BG_CLR_CR,JPEG_BG_COLOR_CR);
//#endif

  // - 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_DIGEST_BG, JPEG_BG_FOR_DIGEST_MENU);
  vSetSharedInfo(SI_PREVIEW_BG, JPEG_PREVIEW_BG);
  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
#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
#ifdef JPEG_PROGRESS_SHOW_ENABLE      //Mars,[2002/7/15]
  vSetSharedInfo(SI_JPG_PROGRESSIVE_SHOW, 1);
#else
  vSetSharedInfo(SI_JPG_PROGRESSIVE_SHOW, 0);
#endif

  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*/);

  //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_PROG_PIC_SIZ_LIMIT, JPG_MAX_PROGRESS_PIC_SIZ);
  vSetSharedInfo(SI_JPG_TARGET,SV_JPG_NORMAL);
#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 defined(MT1389_REV_E) && (DRAM_SZ == DRAM_8M)
//  vSetSharedInfo(SI_JPG_HW_MODE, SV_OFF);
//#else
  /* turn on the JPEG HW decoding mode by default */
  vSetSharedInfo(SI_JPG_HW_MODE, SV_ON);
//#endif
  return;
}

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

  vSetSharedInfo(SI_AVI_SCAN_MODE, AVI_FSCAN_MODE | (AVI_RSCAN_MODE << 4));
  vSetSharedInfo(SI_AVI_FF_JMP_SPEED, AVI_FF_JMP_SPEED);

  i = 0
#ifdef AV_PLAY_MPG
      | SV_PLAY_MPG
#endif
#ifdef AV_PLAY_AVI
      | SV_PLAY_AVI
#endif
#ifdef AV_PLAY_OGG
      | SV_PLAY_OGG
#endif
      ;
  vSetSharedInfo(SI_AV_PLAY_CTRL, i);

  i = 0
#ifdef AV_PLAY_A_ONLY_FILE
      | SV_PLAY_A_ONLY
#endif
#ifdef AVI_FAST_BM
      | SV_AVI_FAST_BM
#endif
#ifdef AVI_FAST_TIME_PLAY
      | SV_AVI_FAST_TIME_PLAY
#endif
#ifdef FITLONG_TV_SQ_PXL
      | SV_FITLONG_TV_SQ_PXL
#endif
#ifdef AV_CFG_KEEP_ZOOM
      | SV_AV_KEEP_ZOOM
#endif
      ;
  vSetSharedInfo(SI_AV_CFG, i);

  i = 0
#ifdef AV_PLAY_UNSUP_A
      | SV_PLAY_UNSUP_A
#endif
#ifdef AV_PLAY_UNSUP_V
      | SV_PLAY_UNSUP_V
#endif
#ifdef AV_PLAY_UNSUP_FPS
      | SV_PLAY_UNSUP_FPS
#endif
      ;
  vSetSharedInfo(SI_AV_PLAY_UNSUP, i);

  vSetSharedInfo(SI_AVI_ILLILV_A_FST, AVI_ILLILV_A_FST_MODE);
  vSetSharedInfo(SI_AVI_DELAY_INDIS_BASE, AVI_DELAY_INDIS_BASE);
  vSetSharedInfo(SI_MP4_WIDE_FULL, SV_OFF);

#ifdef SUPPORT_DRM
  vSetSharedInfo(SI_DRM_MODEL_ID_LOW, MODEL_ID_LOW_BYTE);
  vSetSharedInfo(SI_DRM_MODEL_ID_TOP, MODEL_ID_TOP_BYTE);
#endif
}

// *********************************************************************
// Function :
// Description : System Control Share Memory Initial Routine,
//               called from vUserInit()
// Parameter :
// Return    :
// *********************************************************************
void vInitSystemShareInfo(void) large
{
  vSystemConfigGeneral();
  vSystemConfigDVD();
  vSystemConfigVCD();
  vSystemConfigCDDA();
  vSystemConfigISO();
  vSystemConfigJPEG();
  vSystemConfigMp4();
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vSystemCloseCaption(BOOL fgOnOff) large
{
  vSetSharedInfo(SI_CC_SWITCH, fgOnOff);
  vNotifySharedInfo(SI_CC_SWITCH, 0, 0);

  if (fgOnOff == SV_ON)
  {
    vTvCCEnable(1);
  }
  else
  {
    vTvCCEnable(0);
  }
}

// *********************************************************************
// Function :
// Description :
// Parameter :
// Return    :
// *********************************************************************
void vSystemTvMode(BYTE bMode) large
{
  BYTE bDefMode, bSQZMode;
  if( bMode == SV_WIDESQZ)
  {
    bSQZMode = SV_ON;
    bMode = SV_WIDE;
  }
  else
    bSQZMode = SV_OFF;
    
  #ifdef MT1389_PSCALER
  if(bSQZMode == bSharedInfo(SI_PANEL_SQZ))		//PANEL SQZ setting change
  	{
  	        if(bSQZMode == SV_ON)
  			vSetSharedInfo(SI_PANEL_SQZ, TRUE );
		else
			vSetSharedInfo(SI_PANEL_SQZ, FALSE);
		vNotifySharedInfo(SI_PANEL_SQZ,0,0);
  	}
  #endif   
    
  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;
  }
  //Max'0416'04, it is not necessary to switch to P-Scan on while wide squeeze.
    vSetSharedInfo(SI_ASPECT_RATIO, bMode);
    vNotifySharedInfo(SI_ASPECT_RATIO, 0, 0);
    vSetSharedInfo(SI_PSCAN_SQUEEZE, bSQZMode);
    vNotifySharedInfo(SI_PSCAN_SQUEEZE, 0, 0);    
#ifdef SUPPORT_HDMI    
  if(bSharedInfo(SI_HDCP_SERVICE_ROUTINE) == 1)
  {
    vSendPeriCmd(HDMI_CMD_VIDEO_FORMAT, 0, 0);
  }
#endif //#ifdef SUPPORT_HDMI
  
}

// *********************************************************************
// 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 + -