📄 menufunc.c
字号:
{
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 + -