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

📄 avshow.c

📁 MTK 1389e版 MINI组合音响代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 03/05/15 5:23p    $       ****************/
/***************  $Revision:: 1                $       ****************/
/***************                                       ****************/
/***************   Description : OSD                   ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer : Peter Huang           ****************/
/**********************************************************************/

#define _AVSHOW_C_

#pragma NOAREGS

#include "general.h"
#include "osdshow.h"

#if defined(DVD_RECEIVER) && !defined(DVD_TUNER)  //For MP3  Menu XIAO 03-05-24
extern xdata BYTE  _bVolNum; 
#endif

#ifdef TEST_FROM_OSD
void vOsdShowTest(BYTE bLevel, BYTE bTime) large
{
  BYTE pbStr[3];
  BYTE i;
  pbStr[0] = 2;

  bLevel = bHEXToBCD(bLevel);
  pbStr[1] = BCD_HI(bLevel) + '0';
  pbStr[2] = BCD_LO(bLevel) + '0';


  vOsdPosShowArg(OSD_POS_AUD_CTRL, OSD_MSG_TEST_FROM_OSD, bTime, pbStr);
}

#endif

#ifdef PICTURE_QULITY_KEY

void vOsdShowPictureQ(BYTE bPictureMode,char bLevel, BYTE bTime) large
{
  BYTE pbStr[14];
  BYTE i;
  BYTE bMaxLevel;
  BYTE bTmpLevel;
  
  switch(bPictureMode)
  {
	case EV_PICTURE_BRIGHT:
		if(bLevel>VID_BRIGHTNESS_MAX)
			bLevel = VID_BRIGHTNESS_MAX;
		else if(bLevel < VID_BRIGHTNESS_MIN)
			bLevel = VID_BRIGHTNESS_MIN;

		pbStr[0] = VID_BRIGHTNESS_MAX/2 + 3;
		
		if(bLevel > 0) {
			bTmpLevel =(BYTE)( bLevel/2 + 10);
		}
		else {
			bTmpLevel = (BYTE)((bLevel)/2 + 10);
		}
		bMaxLevel = VID_BRIGHTNESS_MAX;


		break;
	case EV_PICTURE_CONTRAST:
		if(bLevel>VID_CONTRAST_MAX)
			bLevel = VID_CONTRAST_MAX;
		else if(bLevel < VID_CONTRAST_MIN)
			bLevel = VID_CONTRAST_MIN;
		
		if(bLevel > 0) {
			bTmpLevel = bLevel/2 + VID_CONTRAST_MAX/2;
		}
		else {
			bTmpLevel = (bLevel)/2 + VID_CONTRAST_MAX/2;
		}
		bMaxLevel = VID_CONTRAST_MAX;
		pbStr[0] = VID_CONTRAST_MAX/2 + 3;
		
		break;
	case EV_PICTURE_HUE:
		if(bLevel>VID_HUE_DEGREE_MAX)
			bLevel = VID_HUE_DEGREE_MAX;
		else if(bLevel < VID_HUE_DEGREE_MIN)
			bLevel = VID_HUE_DEGREE_MIN;

		bTmpLevel = bLevel + VID_HUE_DEGREE_MAX;

		
		bMaxLevel = VID_HUE_DEGREE_MAX*2;
		pbStr[0] = VID_HUE_DEGREE_MAX + 2;
		break;
	case EV_PICTURE_SATURATION:
		if(bLevel>VID_SATURATION_MAX)
			bLevel = VID_SATURATION_MAX;
		else if(bLevel < VID_SATURATION_MIN)
			bLevel = VID_SATURATION_MIN;
		
		bTmpLevel = bLevel + VID_HUE_DEGREE_MAX;


		bMaxLevel = VID_SATURATION_MAX*2;
		pbStr[0] = VID_SATURATION_MAX + 2;
		break;
  }


  for(i=0; i<bTmpLevel/2; i++)
  {
    if (i == bMaxLevel/2)
    {
      break;
    }
    pbStr[i+1] = ICON_VOL_1; //3;
  }
  if (bTmpLevel % 2)
  {
    pbStr[i+1] = ICON_VOL_2; //4;
    i ++;
  }
  for(; i<bMaxLevel/2; i++)
  {
    pbStr[i+1] = ICON_VOL_0; //2;
  }

   //  这儿还没有写显示数字的代码澹!
  if(bLevel < 0 ) {
    pbStr[bMaxLevel/2 +1 ] = '-';
  	bTmpLevel = (BYTE)(-bLevel);
  }
  else if(bLevel > 0) {
    pbStr[bMaxLevel/2 +1 ] = '+';
  	bTmpLevel = (BYTE)bLevel;
  }
  else if(bLevel == 0) {
    pbStr[bMaxLevel/2 +1 ] = ' ';
  	bTmpLevel = (BYTE)bLevel;
  }
  bTmpLevel = bHEXToBCD(bTmpLevel);
  
  if((bPictureMode == EV_PICTURE_BRIGHT) || (bPictureMode == EV_PICTURE_CONTRAST))
  {
  	pbStr[bMaxLevel/2 +2] = BCD_HI(bTmpLevel) + '0';
  	pbStr[bMaxLevel/2 +3] = BCD_LO(bTmpLevel) + '0';
  }
  else if((bPictureMode == EV_PICTURE_HUE) || (bPictureMode == EV_PICTURE_SATURATION))
  {
    pbStr[bMaxLevel/2 +2] = BCD_LO(bTmpLevel) + '0';
  }

  switch(bPictureMode)
  {
	case EV_PICTURE_BRIGHT:	
    	vOsdPosShowArg(OSD_POS_AUD_CTRL, OSD_MSG_BBK_BRIGHT_KEY, bTime, pbStr);
    	break;
	case EV_PICTURE_CONTRAST:
    	vOsdPosShowArg(OSD_POS_AUD_CTRL, OSD_MSG_BBK_CONTRAST_KEY, bTime, pbStr);
    	break;
	case EV_PICTURE_HUE:
    	vOsdPosShowArg(OSD_POS_AUD_CTRL, OSD_MSG_BBK_HUE_KEY, bTime, pbStr);
    	break;
	case EV_PICTURE_SATURATION:
    	vOsdPosShowArg(OSD_POS_AUD_CTRL, OSD_MSG_BBK_SATURATION_KEY, bTime, pbStr);
    	break;
    	
  }

 // _bOSDClearCounter = bTime;
  
}

#endif

#if  (!defined(DVD_RECEIVER) || defined(DVD_TUNER))   //xiao 03-04-15
// *********************************************************************
// Function : void vOsdShowVol(BYTE bLevel, BYTE bTime) large
// Description :
// Parameter :  cLevel
// Return    : None
// *********************************************************************
void vOsdShowVol(BYTE bLevel, BYTE bTime) large
{
  BYTE pbStr[13];
  BYTE i;

  if (bLevel < 0)
  {
    bLevel = 0;
  }

  if (bLevel > MAX_VOL_LEVEL)
  {
    bLevel = MAX_VOL_LEVEL;
  }

  pbStr[0] = 12;

  for(i=0; i<bLevel/2; i++)
  {
    if (i == 10)
    {
      break;
    }
    pbStr[i+1] = ICON_VOL_1; //3;
  }
  if (bLevel % 2)
  {
    pbStr[i+1] = ICON_VOL_2; //4;
    i ++;
  }
  for(; i<20/2; i++)
  {
    pbStr[i+1] = ICON_VOL_0; //2;
  }
  bLevel = bHEXToBCD(bLevel);
  pbStr[11] = BCD_HI(bLevel) + '0';
  pbStr[12] = BCD_LO(bLevel) + '0';

#ifdef PCD_SHOW_AUD_CTRL
  if (fgIsPcdPlay())
  {
    vOsdPosShowArg(OSD_POS_PCD_AUD_CTRL, OSD_MSG_VOLUME, bTime, pbStr);
  }
  else
#endif
  {
    #ifdef MPEG4_TXT_SP //Vincent @04-04-04
    #ifdef SUPPORT_OGG
        if(fgIsIsoPlay() && (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI || bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_OGG))
    #else
         if(fgIsIsoPlay() && bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI )
    #endif
           vOsdPosShowArg(OSD_POS_LAYER2_LINE4, OSD_MSG_VOLUME, bTime, pbStr);
        else   
    #endif   	
    vOsdPosShowArg(OSD_POS_AUD_CTRL, OSD_MSG_VOLUME, bTime, pbStr);
  }
}
#endif
#ifdef ID_NO
void vOsdDispID(void) large
{
  BYTE pbStr[ID_LEN + 1];
  BYTE i;
  BYTE pos,tmp;

  pbStr[0] = ID_LEN;

  pos=SERIAL_NO_POS1;
  for(i=0; i<(ID_LEN/2); i++)
  {
    tmp=bEepromReadByte(pos);
    pbStr[2*i+1] = tmp/10 + '0';
    pbStr[2*i+2] = tmp%10 + '0';
    pos++;
  }

  vOsdPosShowArg(OSD_POS_AUD_CTRL, OSD_MSG_ID, OSD_TIMEOUT_LONG, pbStr);
}
#endif
// *********************************************************************
// Function : void vOsdShowMute(BYTE bMode) large
// Description :
// Parameter :  
// Return    : None
// *********************************************************************
void vOsdShowMute(BYTE bMode) large
{
  WORD wPos;
#ifdef PLAYER_FLMENU
  BOOL fgFlMenuOn = fgFlCheckStatus(FL_STATUS_IN_MENU);
#endif

#ifdef PCD_SHOW_AUD_CTRL
  if (fgIsPcdPlay())
  {
    wPos = OSD_POS_PCD_AUD_CTRL;
  }
  else
#endif
  {
    wPos = OSD_POS_AUD_CTRL;
  }

  switch (bMode)
  {
    case OSD_MUTE_OFF:
    {
#ifdef PLAYER_FLMENU
      if (fgFlMenuOn)
      #if defined(DVD_RECEIVER) && !defined(DVD_TUNER)
        vFlIpShowInfo(IP_INFO_VOLUME,_bVolNum, FLIP_VOLUME_MUTE_OFF | FLIP_VOLUME_REDRAW);
      #else 
        vFlIpShowInfo(IP_INFO_VOLUME, bAdspCurrVol(), FLIP_VOLUME_MUTE_OFF | FLIP_VOLUME_REDRAW);
      #endif
      else  
#endif
      {
      #ifdef MPEG4_TXT_SP //Vincent @04-04-04
      #ifdef SUPPORT_OGG
        if(fgIsIsoPlay() && (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI || bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_OGG))
       #else
        if(fgIsIsoPlay() && bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI)
       #endif 
        wPos = OSD_POS_LAYER2_LINE4;
      #endif      
        vOsdPosShow(wPos, OSD_MSG_MUTEOFF, OSD_TIMEOUT);
        vOsdCoreSetAudioStatus(OSD_AUDIO_SHOW_CLEAR, 0);
      }
      break;
    }

    case OSD_MUTE_ON:
    {
#ifdef PLAYER_FLMENU
      if (fgFlMenuOn)
      #if defined(DVD_RECEIVER) && !defined(DVD_TUNER)
         vFlIpShowInfo(IP_INFO_VOLUME, _bVolNum, FLIP_VOLUME_MUTE_ON);
      #else
        vFlIpShowInfo(IP_INFO_VOLUME, bAdspCurrVol(), FLIP_VOLUME_MUTE_ON);
      #endif
      else  
#endif
      {
        #ifdef MPEG4_TXT_SP //Vincent @04-04-04
        #ifdef SUPPORT_OGG
        if(fgIsIsoPlay() && (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI || bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_OGG))
        #else
          if(fgIsIsoPlay() && bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI)
        #endif
        wPos = OSD_POS_LAYER2_LINE4;
        #endif        	
        vOsdPosShow(wPos, OSD_MSG_MUTE, OSD_NO_DISAPPEAR);
        vOsdCoreSetAudioStatus(OSD_AUDIO_SHOW_MUTE, OSD_NO_DISAPPEAR);
      }
      break;
    }

    case OSD_MUTE_CLEAR:
    default:
    {
#ifdef PLAYER_FLMENU
      if (fgFlMenuOn)
      #if defined(DVD_RECEIVER) && !defined(DVD_TUNER) //XIAO 03-05-23
        vFlIpShowInfo(IP_INFO_VOLUME, _bVolNum, FLIP_VOLUME_REDRAW);
      #else
        vFlIpShowInfo(IP_INFO_VOLUME, bAdspCurrVol(), FLIP_VOLUME_REDRAW);
      #endif
      else
#endif
      {
        #ifdef MPEG4_TXT_SP //Vincent @04-04-04
        #ifdef SUPPORT_OGG
        if(fgIsIsoPlay() && (bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI || bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_OGG))
        #else
          if(fgIsIsoPlay() && bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI )
        #endif
        wPos = OSD_POS_LAYER2_LINE4;
        #endif        	
        vOsdPosClear(wPos);
        vOsdCoreSetAudioStatus(OSD_AUDIO_SHOW_CLEAR, 0);
      }
      break;
    }
  }
}

// *********************************************************************
// Function : void vOsdShowZoom(BYTE bState)
// Description :
// Parameter :  bState
// Return    : None
// *********************************************************************
#if defined(SUPPORT_ZOOM_13) || defined(MPEG4_TXT_SP) || defined(TEST_MP3_963) || defined(DVP550DX) || defined(SEDIVX961) \
	|| defined(HT650DX)||defined(K990) || defined(SE935HT) || defined(SVX12937) || defined(K935) \
	||defined(DVR935)||defined(DAV935BES)||defined( X640S)||defined(SUPPORT_KOREAN_LOTTE)
static code BYTE pbZoomMsg[SV_ZOOM_MODE_MAX - 1][3] = {
  { '1', '.', '1' }, /* 1:  SV_ZOOM_11  */
  { '1', '.', '2' }, /* 2:  SV_ZOOM_12  */
  {'1',  '.', '3'},  /*3:   SV_ZOOM_13  */  
  { '1', '.', '5' }, /* 3:  SV_ZOOM_15  */
  { '2', ' ', ' ' }, /* 4:  SV_ZOOM_2   */
  { '2', '.', '5' }, /* 5:  SV_ZOOM_25  */
  { '3', ' ', ' ' }, /* 6:  SV_ZOOM_3   */
  { '3', '.', '5' }, /* 7:  SV_ZOOM_35  */
  { '4', ' ', ' ' }, /* 8:  SV_ZOOM_4   */
  { '1', '/', '2' }, /* 9:  SV_ZOOM_21  */
  { '1', '/', '3' }, /* 10: SV_ZOOM_31  */
  { '1', '/', '4' }  /* 11: SV_ZOOM_41  */
    #ifdef RISC_SP81
	,
    { ' ', ' ', ' ' }, /* 07:  SV_ZOOM_07  */
    { ' ', ' ', ' ' }, /* 08: SV_ZOOM_08  */
    { ' ', ' ', ' ' }  /* 09: SV_ZOOM_09  */
    #endif
};
#else
static code BYTE pbZoomMsg[SV_ZOOM_MODE_MAX - 1][3] = {
  { '1', '.', '1' }, /* 1:  SV_ZOOM_11  */
  { '1', '.', '2' }, /* 2:  SV_ZOOM_12  */
  { '1', '.', '5' }, /* 3:  SV_ZOOM_15  */
  { ' ', '2', 'X' }, /* 4:  SV_ZOOM_2   */
  { '2', '.', '5' }, /* 5:  SV_ZOOM_25  */
  { ' ', '3', 'X' }, /* 6:  SV_ZOOM_3   */
  { '3', '.', '5' }, /* 7:  SV_ZOOM_35  */
  { ' ', '4', 'X' }, /* 8:  SV_ZOOM_4   */
  { '1', '/', '2' }, /* 9:  SV_ZOOM_21  */
  { '1', '/', '3' }, /* 10: SV_ZOOM_31  */
  { '1', '/', '4' }  /* 11: SV_ZOOM_41  */
};
#endif
void vOsdShowZoom(BYTE bState) large
{
  BYTE pbStr[4];
  BYTE bIdx;

  if (fgIsIsoPlay())
  {
    vOsdPosClear(OSD_POS_ISO_ZOOM);
  }
  else
  {
    vOsdPosClear(OSD_POS_ZOOM);
  }

#ifdef ENABLE_ZOOM_USER_MODE
  if (bState == SV_ZOOM_USR)
  {
    pbStr[0] = 3;
    pbStr[1] = 'F';
    pbStr[2] = 'I';
    pbStr[3] = 'T';
  }
  else
#endif /* ENABLE_ZOOM_USER_MODE */
  if ((bState == SV_ZOOM_1) || (bState >= SV_ZOOM_MODE_MAX))
  {
    pbStr[0] = 0;
  }
  else
  {
    bState--;

    for (pbStr[0] = 0; pbStr[0] < 3; pbStr[0] += 1)
    {
      pbStr[pbStr[0] + 1] = pbZoomMsg[bState][pbStr[0]];
    }
    
    //pbStr[0] = 3;
  }

  if (pbStr[0] > 0)
  {
    if (fgIsIsoPlay())
    {
      vOsdPosShowArg(OSD_POS_ISO_ZOOM, OSD_MSG_ICON_ZOOM, OSD_TIMEOUT, pbStr);//10/08
    }
    else
    {
      vOsdPosShowArg(OSD_POS_ZOOM, OSD_MSG_ICON_ZOOM, OSD_TIMEOUT, pbStr);//10/08
    }
  }
}

#ifdef PLAYER_ZOOMIN_INDICATOR

#define vZoomRectangle(bWbIdx, bClr, wStartX, wStartY, wEndX, wEndY) \
{ \
  _wStartX = wStartX;  \
  _wStartY = wStartY;  \
  _wEndX = wEndX;  \
  _wEndY = wEndY;  \
  vRectangle(bWbIdx, 1, bClr, 1, bClr); \
}

static code BYTE pbZoomBr[SV_ZOOM_IN_MAX - SV_ZOOM_IN_MIN + 1][2] = {
  {66,40}, /* SV_ZOOM_11 */
  {66,40}, /* SV_ZOOM_12 */
  {66,40}, /* SV_ZOOM_15 */
  {64,42}, /* SV_ZOOM_2  */
  {64,42}, /* SV_ZOOM_25 */
  {52,34}, /* SV_ZOOM_3  */
  {53,34}, /* SV_ZOOM_35 */
  {45,29}  /* SV_ZOOM_4  */
};

// *********************************************************************
// Function : void vZoomBrDraw(void)
// Description :
// Parameter :  
// Return    : 
// *********************************************************************
void vOsdShowZoomBr(BYTE bX, BYTE bY, BYTE bMode) large
{
  BYTE bNewX;

  // outer rectangle
  vZoomRectangle(WB_ZOOM_BR, 3, 0, 0, ZOOM_BR_WIDTH, ZOOM_BR_HEIGHT);

  bMode -= SV_ZOOM_IN_MIN;

  //Bad code style here.
//  if(((bSharedInfo(SI_ASPECT_RATIO) & 0x7f) == SV_4_3_PS) && fgIsDvdPlay() && (bSharedInfo(SI_V_4_3) == SV_V_16_9))
//    bNewX = bX+(pbZoomBr[bMode][0]+3)*3/4;
//  else
    bNewX = bX+pbZoomBr[bMode][0];

  // inner rectangle
  vZoomRectangle(WB_ZOOM_BR, 1, bX, bY,
                 bNewX, bY + pbZoomBr[bMode][1]);
}
#endif /* PLAYER_ZOOMIN_INDICATOR */

#ifdef DDISC_FTYPE_JPEG_SUPPORT
// *********************************************************************
// Function : void vOsdShowZoomPct(BYTE bPercent)
// Description :
// Parameter :  bState
// Return    : None
// *********************************************************************
void vOsdShowZoomPct(BYTE bPercent) large
{
  BYTE pbStr[4];

  if (bPercent <= 100)
  {
    vOsdPosClear(OSD_POS_ERROR);   // clear "PAN xx" message
  }
    
  if (bPercent == 0)
  {
    vOsdPosClear(OSD_POS_ZOOM_PCT);
  }
  else
  {
    pbStr[0] = 3;

    if (bPercent >= 200)
    {
      pbStr[1] = '2';
      bPercent -= 200;
    }
    else if (bPercent >= 100)
    {
      pbStr[1] = '1';
      bPercent -= 100;
    }
    else
    {
      pbStr[1] = ' ';
    }

    bPercent = bHEXToBCD(bPercent);

    pbStr[2] = BCD_HI(bPercent) + '0';
    pbStr[3] = BCD_LO(bPercent) + '0';

⌨️ 快捷键说明

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