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

📄 osdcore.c

📁 mtk1389L latest sourcecode enjoy
💻 C
📖 第 1 页 / 共 3 页
字号:
      vShowPbcState(bSharedInfo(SI_PBC_STATE));
    }
  }

  /* for audio status show */
  if (_rOsdStateCtx.fgAudioStatusRecall == TRUE)
  {
    if (bSharedInfo(SH_OSD_TIMER_AUDIO_CTRL) == 0)
    {
      _rOsdStateCtx.fgAudioStatusRecall = FALSE;

      if (_rOsdStateCtx.bAudioStatus == OSD_AUDIO_SHOW_MUTE)
      {
        vOsdShowMute(OSD_MUTE_ON);
      }
    }
  }
}

// *********************************************************************
// Function : void vOsdCoreLayer2Refresh(void)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
void vOsdCoreLayer2Refresh(void) large
{
  uOsdLayer1Status uTmp1;
  uOsdLayer2Status uTmp2;
  BYTE bCnt, bIdx;
  BYTE bChanged;
  BYTE bWbMode;

  uTmp1.Byte = bSharedInfo(SH_OSD_LAYER1_STATUS);
  uTmp2.Byte = bSharedInfo(SH_OSD_LAYER2_STATUS);

  bWbMode = bSharedInfo(SH_OSD_WB_MODE);

  /* LINE 1 */
  bChanged = 0;
  bCnt = bSharedInfo(SH_OSD_TIMER_LAYER2_1);
  if (uTmp2.Bit.Line1)
  {
    if (bCnt == 0)
    {
      uTmp2.Bit.Line1 = FALSE;
      bChanged = 1;
    }
  }
  else
  {
    if (bCnt > 0)
    {
      uTmp2.Bit.Line1 = TRUE;
      bChanged = 1;
    }
  }

  if (bChanged)
  {
    if (uTmp2.Bit.Line1)
    {
      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt &= (~(0x01 << 0x00));
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
      vDisableWB(pbWbLayer1[0x00]);

      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt |= (0x01 << 0x00);
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
     #ifdef SUPPORT_DRM
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	   && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
	 )
     #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
	  )
     #endif
      {
        vEnableWB(pbWbLayer2[0x00]);
        /* for input state */
        if (uTmp2.Bit.Wb1Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer2[0x00]);
        }
        else
        {
          vInMsgColDis(pbWbLayer2[0x00]);
        }
      }
    }
    else
    {
      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt &= (~(0x01 << 0x00));
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
      uTmp2.Bit.Wb1Hili = FALSE;
      vDisableWB(pbWbLayer2[0x00]);

      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt |= (0x01 << 0x00);
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
      #ifdef SUPPORT_DRM
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	&& (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
	  )
      #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow()) 
     #endif
	  )
      	#endif
      {
        vEnableWB(pbWbLayer1[0x00]);
        /* for input state */
        if (uTmp1.Bit.Wb1Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer1[0x00]);
        }
        else
        {
          vInMsgColDis(pbWbLayer1[0x00]);
        }
      }
    }
  }

  /* LINE 2 */
  bChanged = 0;
  bCnt = bSharedInfo(SH_OSD_TIMER_LAYER2_2);
  if (uTmp2.Bit.Line2)
  {
    if (bCnt == 0)
    {
      uTmp2.Bit.Line2 = FALSE;
      bChanged = 1;
    }
  }
  else
  {
    if (bCnt > 0)
    {
      uTmp2.Bit.Line2 = TRUE;
      bChanged = 1;
    }
  }

  if (bChanged)
  {
    if (uTmp2.Bit.Line2)
    {
      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt &= (~(0x01 << 0x01));
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
      vDisableWB(pbWbLayer1[0x01]);

      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt |= (0x01 << 0x01);
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
      #ifdef SUPPORT_DRM
        if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	&& (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
		)

      #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
)
      	#endif
      {
        vEnableWB(pbWbLayer2[0x01]);
        /* for input state */
        if (uTmp2.Bit.Wb2Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer2[0x01]);
        }
        else
        {
          vInMsgColDis(pbWbLayer2[0x01]);
        }
      }
    }
    else
    {
      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt &= (~(0x01 << 0x01));
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
      uTmp2.Bit.Wb2Hili = FALSE;
      vDisableWB(pbWbLayer2[0x01]);

      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt |= (0x01 << 0x01);
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
       #ifdef SUPPORT_DRM
        if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	&& (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
         )
      #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
        )
      #endif
      {
        vEnableWB(pbWbLayer1[0x01]);
        /* for input state */
        if (uTmp1.Bit.Wb2Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer1[0x01]);
        }
        else
        {
          vInMsgColDis(pbWbLayer1[0x01]);
        }
      }
    }
  }

  /* LINE 3 */
  bChanged = 0;
  bCnt = bSharedInfo(SH_OSD_TIMER_LAYER2_3);
  if (uTmp2.Bit.Line3)
  {
    if (bCnt == 0)
    {
      uTmp2.Bit.Line3 = FALSE;
      bChanged = 1;
    }
  }
  else
  {
    if (bCnt > 0)
    {
      uTmp2.Bit.Line3 = TRUE;
      bChanged = 1;
    }
  }

  if (bChanged)
  {
    if (uTmp2.Bit.Line3)
    {
      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt &= (~(0x01 << 0x02));
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
      vDisableWB(pbWbLayer1[0x02]);

      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt |= (0x01 << 0x02);
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
      #ifdef SUPPORT_DRM
        if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	&& (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
     )
      #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
        )
      #endif
      {
        vEnableWB(pbWbLayer2[0x02]);
        /* for input state */
        if (uTmp2.Bit.Wb3Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer2[0x02]);
        }
        else
        {
          vInMsgColDis(pbWbLayer2[0x02]);
        }
      }
    }
    else
    {
      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt &= (~(0x01 << 0x02));
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
      uTmp2.Bit.Wb3Hili = FALSE;
      vDisableWB(pbWbLayer2[0x02]);

      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt |= (0x01 << 0x02);
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
      #ifdef SUPPORT_DRM
        if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	&& (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
		)
      #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
	  )
     	#endif
      {
        vEnableWB(pbWbLayer1[0x02]);
        /* for input state */
        if (uTmp1.Bit.Wb3Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer1[0x02]);
        }
        else
        {
          vInMsgColDis(pbWbLayer1[0x02]);
        }
      }
    }
  }

  /* LINE 4 */
  bChanged = 0;
  bCnt = bSharedInfo(SH_OSD_TIMER_LAYER2_4);
  if (uTmp2.Bit.Line4)
  {
    if (bCnt == 0)
    {
      uTmp2.Bit.Line4 = FALSE;
      bChanged = 1;
    }
  }
  else
  {
    if (bCnt > 0)
    {
      uTmp2.Bit.Line4 = TRUE;
      bChanged = 1;
    }
  }

  if (bChanged)
  {
    if (uTmp2.Bit.Line4)
    {
      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt &= (~(0x01 << 0x03));
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
      vDisableWB(pbWbLayer1[0x03]);

      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt |= (0x01 << 0x03);
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
      #ifdef SUPPORT_DRM
        if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	&& (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
		)
      #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
	  )
      	#endif
      {
        vEnableWB(pbWbLayer2[0x03]);
        /* for input state */
        if (uTmp2.Bit.Wb4Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer2[0x03]);
        }
        else
        {
          vInMsgColDis(pbWbLayer2[0x03]);
        }
      }
    }
    else
    {
      bCnt = bSharedInfo(SH_OSD_LAYER2_WB);
      bCnt &= (~(0x01 << 0x03));
      vSetSharedInfo(SH_OSD_LAYER2_WB, bCnt);
      uTmp2.Bit.Wb4Hili = FALSE;
      vDisableWB(pbWbLayer2[0x03]);

      bCnt = bSharedInfo(SH_OSD_LAYER1_WB);
      bCnt |= (0x01 << 0x03);
      vSetSharedInfo(SH_OSD_LAYER1_WB, bCnt);
      #ifdef SUPPORT_DRM
        if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) &&(!fgIsInDRMShow())
      	&& (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif
		)
      #else
      if ((!fgIsInSetupMenu()) && (!fgIsScrSaverOn()) && (bWbMode != OSD_WB_FULL_SCR)
     #ifdef SUPPORT_MODE_SWITCH_MENU //yan 070409
         && (!fgIsInSmsMenuShow())
     #endif

	  )
      	#endif
      {
        vEnableWB(pbWbLayer1[0x03]);
        /* for input state */
        if (uTmp1.Bit.Wb4Hili == TRUE)
        {
          vInMsgColEn(pbWbLayer1[0x03]);
        }
        else
        {
          vInMsgColDis(pbWbLayer1[0x03]);
        }
      }
    }
  }

  vSetSharedInfo(SH_OSD_LAYER1_STATUS, uTmp1.Byte);
  vSetSharedInfo(SH_OSD_LAYER2_STATUS, uTmp2.Byte);
}

// *********************************************************************
// Function : void vOsdCoreRefresh(void)
// Description : called every seconds
// Parameter :
// Return    : None
// *********************************************************************
void vOsdCoreRefresh(BOOL fgIsTimer) large
{
  BYTE bIdx;
  BYTE bTmp;

  /* if is timer beep, count down OSD timer */
  if (fgIsTimer == TRUE)
  {
    for (bIdx = 0; bIdx < OSD_TIMER_MAX; bIdx++)
    {
      bTmp = bSharedInfo(SH_OSD_TIMER_START + bIdx);
      if ((bTmp != OSD_NO_DISAPPEAR) && (bTmp != 0))
      {
        bTmp--;
        vSetSharedInfo(SH_OSD_TIMER_START + bIdx, bTmp);
      }
    }
  } /* fgIsTimer == TRUE */

  /* for error message in the layer 2 */
  if (OSD_POS_ERROR >= OSD_POS_LAYER2_LINE1)
  {
    bTmp = bSharedInfo(SH_OSD_TIMER_START + (OSD_POS_ERROR - OSD_POS_LAYER2_LINE1));
    bIdx = bSharedInfo(SH_OSD_TIMER_ERR_MSG);
    if (bTmp > bIdx)
    {
      vSetSharedInfo(SH_OSD_TIMER_ERR_MSG, 0);
    }
  }

  vOsdCoreLayer2Refresh();
  vOsdCoreLayer1Refresh();
}

// *********************************************************************
// Function : BOOL fgOsdCoreChgColEn(WORD wPosIndex, BYTE bWB)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BOOL fgOsdCoreChgColEn(WORD wPosIndex, BYTE bWB) large
{
  BOOL fgChange;
  uOsdLayer1Status uTmp1;
  uOsdLayer2Status uTmp2;

  fgChange = FALSE;
  uTmp1.Byte = bSharedInfo(SH_OSD_LAYER1_STATUS);
  uTmp2.Byte = bSharedInfo(SH_OSD_LAYER2_STATUS);

  if (fgIsLayer2(wPosIndex))
  {
    if (!fgIsInSetupMenu())
    {
      fgChange = TRUE;
    }

    if (bWB == pbWbLayer2[0])
    {
      uTmp2.Bit.Wb1Hili = TRUE;
    }
    else if (bWB == pbWbLayer2[1])
    {
      uTmp2.Bit.Wb2Hili = TRUE;
    }
    else if (bWB == pbWbLayer2[2])
    {
      uTmp2.Bit.Wb3Hili = TRUE;
    }
    else if (bWB == pbWbLayer2[3])
    {
      uTmp2.Bit.Wb4Hili = TRUE;
    }

    vSetSharedInfo(SH_OSD_LAYER2_STATUS, uTmp2.Byte);
  }
  else if (fgIsLayer1(wPosIndex))
  {
    /* the hili enable is done in layer refresh */
    if (bWB == pbWbLayer1[0])
    {
      uTmp1.Bit.Wb1Hili = TRUE;
      if (!(uTmp2.Bit.Line1 || fgIsInSetupMenu()))
      {
        fgChange = TRUE;
      }
    }
    else if (bWB == pbWbLayer1[1])
    {
      uTmp1.Bit.Wb2Hili = TRUE;
      if (!(uTmp2.Bit.Line2 || fgIsInSetupMenu()))
      {
        fgChange = TRUE;
      }
    }
    else if (bWB == pbWbLayer1[2])
    {
      uTmp1.Bit.Wb3Hili = TRUE;
      if (!(uTmp2.Bit.Line3 || fgIsInSetupMenu()))
      {
        fgChange = TRUE;
      }
    }
    else if (bWB == pbWbLayer1[3])
    {
      uTmp1.Bit.Wb4Hili = TRUE;
      if (!(uTmp2.Bit.Line4 || fgIsInSetupMenu()))
      {
        fgChange = TRUE;
      }
    }

    vSetSharedInfo(SH_OSD_LAYER1_STATUS, uTmp1.Byte);
  }
  else
  {
    fgChange = TRUE;
  }

  return (fgChange);
}

// *********************************************************************
// Function : BOOL fgOsdCoreChgColDis(WORD wPosIndex, BYTE bWB)
// Description :
// Parameter :
// Return    : None
// *********************************************************************
BOOL fgOsdCoreChgColDis(WORD wPosIndex, BYTE bWB) large
{
  BOOL fgChange;

⌨️ 快捷键说明

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