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

📄 menufunc.c

📁 MSTARXX.rar
💻 C
📖 第 1 页 / 共 2 页
字号:
{
    BYTE tempSoundModevalue;

    tempSoundModevalue=(g_TVChSetting.TvCurChannelMisc&SoundSysMask);
    g_TVChSetting.TvCurChannelMisc &=~SoundSysMask;
    if(action==MIA_IncValue)
 	    tempSoundModevalue+=1;
    else
	    tempSoundModevalue+=(TV_SOUND_NUMS-1);

    tempSoundModevalue %=TV_SOUND_NUMS;
    devSetSWF(tempSoundModevalue);
    g_TVChSetting.TvCurChannelMisc  |=tempSoundModevalue&SoundSysMask;
    chData.ucChannelMisc = g_TVChSetting.TvCurChannelMisc;
    //////////////////////////////////////
    	msWriteByte(BK0_00_REGBK, REG_BANK3_COMB);
    	msWriteByteMask(BK3_50, 0x07, 0x07);
    	msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
    //////////////////////////////////////
    devTunerWrite(chData.wFreq);

    SaveTVChannelInfo(g_TVChSetting.ucCurChannelNO, TRUE);
    return TRUE;
}

WORD GetSkipValue(void)
{
    return ((g_TVChSetting.TvCurChannelMisc&NotSkipThisNum)>>7);//%2;
}

BOOL AdjustSkip(MenuItemActionType action)
{
	BYTE tempSkipvalue;

 	tempSkipvalue=((g_TVChSetting.TvCurChannelMisc&NotSkipThisNum)>>7);//%2;
 	g_TVChSetting.TvCurChannelMisc &=~NotSkipThisNum;

	if(action==MIA_IncValue)
	 	tempSkipvalue+=1;
	else
		tempSkipvalue+=(2-1);

	  tempSkipvalue %=2;

  	g_TVChSetting.TvCurChannelMisc |=(tempSkipvalue<<7)&NotSkipThisNum;
  	chData.ucChannelMisc = g_TVChSetting.TvCurChannelMisc;
  	SaveTVChannelInfo(g_TVChSetting.ucCurChannelNO, TRUE);
  	return TRUE;
}

BOOL EnterPresetMenuExec(void)
{
    DrawChannelFreqGuage(chData.wFreq,CP_SeaBlueColor);
    DrawTopIcon(4,_BIT3|_BIT4);
    return TRUE;
}
#endif

BOOL EnterClockMenuExec(void)
{
#if TV_ENABLE
    if (IsTVInUse())
  	    DrawTopIcon(5,_BIT4|_BIT5);
    else
#endif
        DrawTopIcon(5,_BIT3|_BIT5);

  	Set_DynamiccaptionFlag();

    return TRUE;
}



BOOL AdjustSleepTime(MenuItemActionType action)
 {
 	if (action==MIA_IncValue)
	 	g_VideoSetting.SleepTime+=1;
   	else
   		g_VideoSetting.SleepTime+=(SleepTime_Nums-1);

   	g_VideoSetting.SleepTime%=SleepTime_Nums;

	g_uwSleepTimeCounter=g_VideoSetting.SleepTime*10;

	g_ucSecond=0;//restart second counter

    return TRUE;
 }

WORD GetSleepTimeValue(void)
{
    return g_uwSleepTimeCounter;
}

 BOOL AdjustTime(MenuItemActionType action)
{
	 if(EnableTimeFlag)
	 {
	  	if (action==MIA_IncValue)
	        g_ucTimeMinute+=1;
	   	else
	   	{
	   		if(g_ucTimeHour==23)
	   		{
	   			Set_ReDrawCurrentOSDFlag();
	   		 	Clr_EnableTimeFlag();
		        g_ucTimeMinute=0;
			 	g_ucTimeHour=0;
	   		}
		else
		      g_ucTimeHour+=1;
	   	}
	   	g_ucTimeHour%=24;
	   	g_ucTimeMinute%=60;

		g_ucSecond=0;
	 }
	 else
	 {
	 	Set_ReDrawCurrentOSDFlag();
	 	Set_EnableTimeFlag();
	 }

	return TRUE;
}

 BOOL AdjustONTime(MenuItemActionType action)
{
	 if(EnableONTimeFlag)
	 {
	  	if (action==MIA_IncValue)
	        g_ucONTimeMinute+=1;
	   	else
	   	{
	   		if(g_ucONTimeHour==23)
	   		{
	   		 Clr_EnableONTimeFlag();
		        g_ucONTimeMinute=0;
			 g_ucONTimeHour=0;
	   		}
			else
		      g_ucONTimeHour+=1;
	   	}
	   	g_ucONTimeHour%=25;
	   	g_ucONTimeMinute%=60;
	 }
	 else
	 	Set_EnableONTimeFlag();

	 if(((g_ucTimeHour==g_ucONTimeHour)&&(g_ucTimeMinute==g_ucONTimeMinute)))
	 	Set_PowerONTimeEnableFlag();
	 else
	 	Clr_PowerONTimeEnableFlag();

	return TRUE;
}

 BOOL AdjustOFFTime(MenuItemActionType action)
{
	 if(EnableOFFTimeFlag)
	 {
	  	if (action==MIA_IncValue)
	        g_ucOFFTimeMinute+=1;
	   	else
	   	{
	   	if(g_ucOFFTimeHour==23)
	   		{
	   		 Clr_EnableOFFTimeFlag();
		        g_ucOFFTimeMinute=0;
			 g_ucOFFTimeHour=0;
	   		}
		else
		      g_ucOFFTimeHour+=1;
	   	}
	   	g_ucOFFTimeHour%=25;
	   	g_ucOFFTimeMinute%=60;
	 }
	 else
	 	Set_EnableOFFTimeFlag();

	 if(((g_ucTimeHour==g_ucOFFTimeHour)&&(g_ucTimeMinute==g_ucOFFTimeMinute)))
	 	Set_PowerOFFTimeEnableFlag();
	 else
	 	Clr_PowerOFFTimeEnableFlag();

	return TRUE;
}

void PanelReversal(BYTE Position)
{
	msWriteByte(BK0_00_REGBK,REG_BANK1_ADC_ACE_MCU);

 	if (Position)
 		msWriteByte(BK1_D1_PTC_MODE2, SET_PTC_MODE2_INV);
 	else
 		msWriteByte(BK1_D1_PTC_MODE2, SET_PTC_MODE2_NOR);

 	msWriteByte(BK0_00_REGBK,REG_BANK_SCALER);
}


BOOL AdjustDOWN(MenuItemActionType action)
{
	action=action;
    g_VideoSetting.DOWN++;
   	g_VideoSetting.DOWN%=2;
	PanelReversal(g_VideoSetting.DOWN);
    return TRUE;
}



BOOL AdjustScaling(MenuItemActionType action)
{
	action=action;
    g_VideoSetting.Scaling+=1;
   	g_VideoSetting.Scaling%=Scaling_NUMS;
	msSetScaler();

    return TRUE;
}

//-----------------------------------------------------------------------

BYTE usrNonLinearCalculate(NonLinearCurveType NoLinear,BYTE AdjustValue)
{
    //dual direction
    BYTE rValue,ucXVStart,ucXVEnd,ucXStar,ucXEnd,ucStartPoint;
    WORD wDistance;
    BYTE temData = AdjustValue;
    if (AdjustValue < NON_LINEAR_POINT_X1)
    {
          ucXVStart = NoLinear.X0;
          ucXVEnd   = NoLinear.X1;
          ucXStar   = NON_LINEAR_POINT_X0;
          ucXEnd    = NON_LINEAR_POINT_X1;
    }
    else if (AdjustValue < NON_LINEAR_POINT_X2)
    {
          ucXVStart = NoLinear.X1;
          ucXVEnd   = NoLinear.X2;
          ucXStar   = NON_LINEAR_POINT_X1;
          ucXEnd    = NON_LINEAR_POINT_X2;
    }
    else if (AdjustValue < NON_LINEAR_POINT_X3)
    {
          ucXVStart = NoLinear.X2;
          ucXVEnd   = NoLinear.X3;
          ucXStar   = NON_LINEAR_POINT_X2;
          ucXEnd    = NON_LINEAR_POINT_X3;
    }
    else
    {
          ucXVStart = NoLinear.X3;
          ucXVEnd   = NoLinear.X4;
          ucXStar   = NON_LINEAR_POINT_X3;
          ucXEnd    = NON_LINEAR_POINT_X4;
    }

    if (ucXVEnd > ucXVStart)
    {
	        wDistance = ucXVEnd - ucXVStart;
	        ucStartPoint = ucXVStart;
            temData  = AdjustValue - ucXStar;
    }
    else
    {
	        wDistance = ucXVStart - ucXVEnd;
	        ucStartPoint = ucXVEnd;
            temData  = ucXEnd - AdjustValue;
    }
    rValue = ((WORD)wDistance*temData/(ucXEnd - ucXStar)) + ucStartPoint;

    return rValue;
}

void msNLCCurveInit(void)
{
	g_NLCVideoContrast.X0    = INIT_VIDEO_CONTRAST_X0;
	g_NLCVideoContrast.X1    = INIT_VIDEO_CONTRAST_X1;
	g_NLCVideoContrast.X2    = INIT_VIDEO_CONTRAST_X2;
	g_NLCVideoContrast.X3    = INIT_VIDEO_CONTRAST_X3;
	g_NLCVideoContrast.X4    = INIT_VIDEO_CONTRAST_X4;

	g_NLCVideoBrightness.X0    = INIT_VIDEO_BRIGHTNESS_X0;
	g_NLCVideoBrightness.X1    = INIT_VIDEO_BRIGHTNESS_X1;
	g_NLCVideoBrightness.X2    = INIT_VIDEO_BRIGHTNESS_X2;
	g_NLCVideoBrightness.X3    = INIT_VIDEO_BRIGHTNESS_X3;
	g_NLCVideoBrightness.X4    = INIT_VIDEO_BRIGHTNESS_X4;

	g_NLCVideoSaturation.X0    = INIT_VIDEO_SATURATION_X0;
	g_NLCVideoSaturation.X1    = INIT_VIDEO_SATURATION_X1;
	g_NLCVideoSaturation.X2    = INIT_VIDEO_SATURATION_X2;
	g_NLCVideoSaturation.X3    = INIT_VIDEO_SATURATION_X3;
	g_NLCVideoSaturation.X4    = INIT_VIDEO_SATURATION_X4;

	g_NLCAudioVolume.X0         = INIT_AudioVolume_X0;
	g_NLCAudioVolume.X1         = INIT_AudioVolume_X1;
	g_NLCAudioVolume.X2         = INIT_AudioVolume_X2;
	g_NLCAudioVolume.X3         = INIT_AudioVolume_X3;
	g_NLCAudioVolume.X4         = INIT_AudioVolume_X4;
}

#if CCFL_FUNCTION
void msSetCCFLBrightness(void)
{
	msWriteByte(BK0_00_REGBK, REG_BANK4_LVDS_CCFL);
	msWriteByte(BK4_6B, 0x80);

#if CCFL_BURST_MODE
	msWriteByte(BK4_91, 0x00);
	msWriteByte(BK4_90, 0xAE);//tony for SZ demo 0xAE);
#else
	msWriteByte(BK4_82, 0xAA);
#endif

	msWriteByte(BK4_6B, 0x00);
	msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
}
#endif


#if VGA_ENABLE

BOOL EnablePowerDownCounter(void)
{
	g_ucPowerDownCounter=0;//  3  , no sync blue BK0_5E_PATTERN always on  zwtan 20050528
  	return TRUE;
}

#define MaxHStart	g_ModeSetting.AutoHStart+50
#define MinHStart	       g_ModeSetting.AutoHStart-50
BOOL AdjustHPosition(MenuItemActionType action)
{
    WORD tempValue;

    tempValue=DecIncValue(action, g_ModeSetting.HStart, MinHStart, MaxHStart, 1);
    if (tempValue==g_ModeSetting.HStart)
        return FALSE;
    g_ModeSetting.HStart=tempValue;
    msAdjustHPosition(g_ModeSetting.HStart);

    return TRUE;
}

WORD GetHPositionValue(void)
{
	return 100-GetScale100Value(g_ModeSetting.HStart, MinHStart, MaxHStart);//, 0);
}

//====================================================
BOOL AdjustVPosition(MenuItemActionType action)
{
    WORD tempValue;

    tempValue=DecIncValue(action, g_ModeSetting.VStart, 0, 2*StandardModeVStart, 1);
    if (tempValue==g_ModeSetting.VStart)
        return FALSE;
    g_ModeSetting.VStart=tempValue;
    msAdjustVPosition(g_ModeSetting.VStart);

    return TRUE;
}

WORD GetVPositionValue(void)
{
    return GetScale100Value(g_ModeSetting.VStart, 0, 2*StandardModeVStart);
}

BOOL AutoConfig(void)
{
	  BOOL result;
	  result=msAutoGeometry(AUTO_TUNE_BASIC);
	  g_ModeSetting.AutoHStart=g_ModeSetting.HStart;
	  g_ModeSetting.AutoVStart=g_ModeSetting.VStart;
	  if (result)
        {
	    g_ModeSetting.AutoTimes=1;
	    #if RM_EEPROM_TYPE<RM_TYPE_SST512
	    SaveModeSetting();
	    #endif
        }
	  return result;
}
//=======================================================================================
#endif

#if TV_ENABLE
WORD GetAGCValue(void)
{
    return g_VideoSetting.TunerAGC;
}

BOOL AdjustAGC(MenuItemActionType action)
{
    if (action==MIA_IncValue)
        g_VideoSetting.TunerAGC+=1;
    else
	    g_VideoSetting.TunerAGC+=(0x20-1);

   	g_VideoSetting.TunerAGC%=0x20;
	devTunerSetAGCValue(g_VideoSetting.TunerAGC);
    return TRUE;
}

BOOL AdjustSWAPLeftSerNum(MenuItemActionType action)
{
    if(action==MIA_IncValue)
 	    g_ucSwapLeftSerNum+=1;
    else
	    g_ucSwapLeftSerNum+=(MAX_CHANNEL_NUM-1);
    g_ucSwapLeftSerNum%=MAX_CHANNEL_NUM;
    return TRUE;
}

BOOL AdjustSWAPChannel(MenuItemActionType action)
{
    Osd_SetTextColor(CP_RedColor, CP_GrayColor);
    Osd_DrawStr(11, 5, "\x081\x082");
    action=action;

    ChannelSwap(g_ucSwapLeftSerNum,g_TVChSetting.ucCurChannelNO);

    Osd_SetTextColor(CP_WhiteColor, CP_GrayColor);
    Osd_DrawStr(11, 5, "\x081\x082");

    return TRUE;
}

WORD GetSWAPLeftSerNumValue(void)
{
    return (g_ucSwapLeftSerNum%=MAX_CHANNEL_NUM);
}

BOOL AdjustCOPYLeftSerNum(MenuItemActionType action)
{
    if(action==MIA_IncValue)
 	    g_ucCopyLeftSerNum+=1;
    else
	    g_ucCopyLeftSerNum+=(MAX_CHANNEL_NUM-1);
    g_ucCopyLeftSerNum%=MAX_CHANNEL_NUM;

    return TRUE;
}

BOOL AdjustCopyChannel(MenuItemActionType action)
{
	Osd_SetTextColor(CP_RedColor, CP_GrayColor);
    Osd_DrawStr(11, 6, "\x081\x080");

 	action=action;
 	SaveTVChannelInfo(g_ucCopyLeftSerNum,TRUE);
 	Delay1ms(10);
 	Osd_SetTextColor(CP_WhiteColor, CP_GrayColor);
  	Osd_DrawStr(11, 6, "\x081\x080");

    return TRUE;
}

WORD GetCOPYLeftSerNumValue(void)
{
 	return (g_ucCopyLeftSerNum%=MAX_CHANNEL_NUM);
}

WORD GetBandValue(void)
{
    if(chData.wFreq< TN_LOWBAND_END)
	return 0;
    else  if(chData.wFreq < TN_MIDBAND_END)
	return 1;
    else
	return 2;
}

BOOL AdjustBandValue(MenuItemActionType action)
{
	WORD tempvalue;
	tempvalue= GetBandValue();
 	if(action==MIA_IncValue)
 		tempvalue++;
 	else
		tempvalue+=(3-1);

 	tempvalue%=3;
 	switch(tempvalue)
 	{
 	case 0:
		chData.wFreq=TN_FREQMIN;
		break;
	case 1:
		chData.wFreq=TN_LOWBAND_END;
		break;
	case 2:
		chData.wFreq=TN_MIDBAND_END;
		break;
 	}
 	ResetTuner();
 	return TRUE;
}

BOOL AdjustProgram(MenuItemActionType action)
{
    BYTE tempvalue;
    tempvalue= GetChannelNumber();
    if(action==MIA_IncValue)
 	    tempvalue+=1;
    else
	    tempvalue+=(MAX_CHANNEL_NUM-1);
    tempvalue%=MAX_CHANNEL_NUM;

    TV_SelectChannel(tempvalue);
    DrawChannelFreqGuage( chData.wFreq,CP_SeaBlueColor);
    tempvalue=GetSkipValue();
    Osd_SetTextColor(CP_WhiteColor, CP_GrayColor);
    if (tempvalue==0)
        Osd_DrawStr(14, 8, " ON");
	else
        Osd_DrawStr(14, 8, "OFF");
    return TRUE;
}


//===============================for MenuFunc=======================================
BYTE GetCurrentChannelNum(void)
{
    return g_TVChSetting.ucCurChannelNO%MAX_CHANNEL_NUM;
}

void ChannelUp(void)
{
    BYTE TempChannel=SearchTVNoSkipChannel(g_TVChSetting.ucCurChannelNO,1);
    TV_SelectChannel(TempChannel);
}


void ChannelDown(void)
{
    BYTE TempChannel=SearchTVNoSkipChannel(g_TVChSetting.ucCurChannelNO,0);
    TV_SelectChannel(TempChannel);
}

BOOL FineTuneAdjust(MenuItemActionType action)
{
    DrawChannelFreqGuage( chData.wFreq ,CP_RedColor);
    if(action==MIA_IncValue)
        chData.wFreq++;
    else
    chData.wFreq--;

    if(chData.wFreq>TN_FREQMAX)
    	chData.wFreq=TN_FREQMIN;
    else if(chData.wFreq<TN_FREQMIN)
    	chData.wFreq=TN_FREQMAX;

    chData.ucChannelMisc=chData.ucChannelMisc&(~DoAFCFlag);
    DrawScanProgress(chData.wFreq);
    ResetTuner();
    SaveTVChannelInfo(g_TVChSetting.ucCurChannelNO, TRUE);
    DrawChannelFreqGuage( chData.wFreq ,CP_SeaBlueColor);
    GetAFCValue(10);
    return TRUE;
}

#endif

#ifdef Multi_language
BOOL AdjustLanguage(MenuItemActionType action)
{
	if (action==MIA_IncValue)
	{
		if(g_VideoSetting.Language==LANG_Nums-1)
			g_VideoSetting.Language = 0;
		else
			g_VideoSetting.Language+=1;
	}	
	else if(action == MIA_DecValue)
	{	
		if(g_VideoSetting.Language==0)
			g_VideoSetting.Language = LANG_Nums-1;
		else
			g_VideoSetting.Language-=1;
	}
 
	Osd_LoadDymaticFont();
	Osd_Hide();
	Delay1ms(10);

	Set_RedrawSystemMenuFlag();
    Set_SaveSettingFlag();
	  
	return TRUE;
}
#endif

⌨️ 快捷键说明

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