www.pudn.com > 6027_HD65.rar > mic_rec.c


/**********************************************************************/ 
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/ 
/***************                                       ****************/ 
/***************  $Modtime:: 04/04/19 3:01p    $       ****************/ 
/***************  $Revision:: 1                $       ****************/ 
/***************                                       ****************/ 
/***************   Description : Microphone recoder    ****************/ 
/***************                                       ****************/ 
/***************       Company : MediaTek Inc.         ****************/ 
/***************    Programmer : Peter Huang           ****************/ 
/**********************************************************************/ 
 
#include "general.h" 
 
#pragma NOAREGS 
 
#ifdef KARAOKE_MIC_REC 
 
#define MIC_REC_BAR_OFST      48 
#define MIC_REC_BAR_LEN       128 
#define MIC_REC_BAR_BORDER    4 
 
static xdata BYTE _bRptABMd = MIC_REC_ORG; 
 
/************************************************************************ 
     Function : void vMicRecReset(void) 
  Description : 
    Parameter : 
    Return    : 
************************************************************************/ 
static void vMicRecReset(void) large 
{ 
  _bRptABMd = MIC_REC_ORG; 
 
  _wStartX = VOL_POS_X1; 
  _wStartY = 0; 
  _wEndX = _wStartX + MIC_REC_BAR_OFST + MIC_REC_BAR_LEN + 8 - 1; 
  _wEndY = 31; 
  vRectangle(WB_NORMAL_VOL, MIC_REC_BAR_BORDER, 0, TRUE, 0); 
#ifdef ALL_WB_USE_TRUECOLOR 
  vSetTcPal(WB_NORMAL_VOL, 3, BLEND_3, TRUECOLOR_WHITE); 
#else 
  vSetPal(WB_NORMAL_VOL, 3, BLEND_3, COLOR_WHITE); 
#endif 
  vAdspMicRec(MIC_STOP); 
} 
 
/************************************************************************ 
     Function : void vMicRecCtrl(BYTE bCtrl) 
  Description : 
    Parameter : 
    Return    : 
************************************************************************/ 
void vMicRecCtrl(BYTE bCtrl) large 
{ 
  switch (bCtrl) 
  { 
    case MIC_REC_CTRL_INIT: 
      _bRptABMd = MIC_REC_ORG; 
      break; 
 
    case MIC_REC_CTRL_RESET: 
      vMicRecReset(); 
      break; 
 
    default: 
      break; 
  } 
} 
 
// ********************************************************************* 
// Function : void vMicRecProgressUpdate(void) 
// Description : 
// Parameter : 
// Return    : None 
// ********************************************************************* 
void vMicRecProgressUpdate(void) large 
{ 
  BYTE bTmp1; 
   
  if ((_bRptABMd == MIC_REC_REC) || (_bRptABMd == MIC_REC_PLAY)) 
  { 
    bTmp1 = bAdspMicRecState(_bRptABMd); 
  } 
  else 
  { 
    return; 
  } 
 
  _wStartX = VOL_POS_X1 + MIC_REC_BAR_OFST + MIC_REC_BAR_BORDER; 
  _wStartY = MIC_REC_BAR_BORDER; 
  _wEndX = _wStartX + bTmp1 - 1; 
  _wEndY = 31-MIC_REC_BAR_BORDER; 
 
  vRectangle(WB_NORMAL_VOL, 0, 0, TRUE, (_bRptABMd == MIC_REC_REC) ? 2 : 3); 
} 
 
// ********************************************************************* 
// Function : void vMicRecStateChange(BYTE bState) 
// Description : 
// Parameter : 
// Return    : None 
// ********************************************************************* 
void vMicRecStateChange(BYTE bState) large 
{ 
  vAdspMicRec(MIC_STOP); 
 
  if (bState == SV_AB_A) 
  { 
    if (_bRptABMd == MIC_REC_ORG) 
    { 
      _wStartX = VOL_POS_X1 + MIC_REC_BAR_OFST; 
      _wStartY = 0; 
      _wEndX = _wStartX + MIC_REC_BAR_LEN + 8 - 1; 
      _wEndY = 31; 
      vRectangle(WB_NORMAL_VOL, MIC_REC_BAR_BORDER, 1, TRUE, 0); 
 
      vAdspMicRec(MIC_REC); 
      _bRptABMd = MIC_REC_REC; 
#ifdef ALL_WB_USE_TRUECOLOR 
      vSetTcPal(WB_NORMAL_VOL, 3, BLEND_3, TRUECOLOR_RED); 
#else 
      vSetPal(WB_NORMAL_VOL, 3, BLEND_3, COLOR_RED); 
#endif 
      vOsdPosShow(OSD_POS_AUD_CTRL1, OSD_MSG_ICON_STOP, OSD_NO_DISAPPEAR); 
    } 
    else if (_bRptABMd == MIC_REC_REC) 
    { 
      vAdspMicRec(MIC_PLAY); 
      _bRptABMd = MIC_REC_PLAY; 
      #ifdef ALL_WB_USE_TRUECOLOR 
      vSetTcPal(WB_NORMAL_VOL, 3, BLEND_3, TRUECOLOR_DARK_GREEN); 
      #else 
      vSetPal(WB_NORMAL_VOL, 3, BLEND_3, COLOR_DARK_GREEN); 
      #endif 
      vOsdPosShow(OSD_POS_AUD_CTRL1, OSD_MSG_ICON_PLAY, OSD_NO_DISAPPEAR); 
    } 
    else 
    { 
      _wStartX = VOL_POS_X1 + MIC_REC_BAR_OFST; 
      _wStartY = 0; 
      _wEndX = _wStartX + MIC_REC_BAR_LEN + 8 - 1; 
      _wEndY = 31; 
      vRectangle(WB_NORMAL_VOL, MIC_REC_BAR_BORDER, 1, TRUE, 0); 
 
      _bRptABMd = MIC_REC_ORG; 
      #ifdef ALL_WB_USE_TRUECOLOR 
      vSetTcPal(WB_NORMAL_VOL, 3, BLEND_3, TRUECOLOR_YELLOW); 
      #else      
      vSetPal(WB_NORMAL_VOL, 3, BLEND_3, COLOR_YELLOW); 
      #endif       
      vOsdPosShow(OSD_POS_AUD_CTRL1, OSD_MSG_ICON_REPEAT, OSD_NO_DISAPPEAR); 
    } 
  } /* bState == SV_AB_A */ 
} 
 
#endif /* KARAOKE_MIC_REC */