📄 menufunc.c
字号:
OsdFontColor=0x50;
Osd_DrawStr(10+PositionOffset1, 2, "\x0EF");
}
/******************************PRESET********************************/
#if TV_ENABLE
if(ReDrawSelect&_BIT4)
{
if(IsTVInUse())
{
OsdFontColor=0x02;
if (ItemIndex==4)
OsdFontColor|=0x50;
Osd_DrawStr(12+PositionOffset1, 1, "\x0F0");
OsdFontColor=0x01;
if (ItemIndex==4)
OsdFontColor|=0x50;
Osd_DrawStr(13+PositionOffset1, 1, "\x0F1");
OsdFontColor=0x03;
if (ItemIndex==4)
OsdFontColor=0x50;
Osd_DrawStr(12+PositionOffset1, 2, "\x0F2");
OsdFontColor=0x03;
if (ItemIndex==4)
OsdFontColor=0x50;
Osd_DrawStr(13+PositionOffset1, 2, "\x0F3");
}
}
#endif
/******************************CLOCK********************************/
if(ReDrawSelect&_BIT5)
{
OsdFontColor=0x02;
if (ItemIndex==5)
OsdFontColor|=0x50;
Osd_DrawStr(12+PositionOffset1+PositionOffset, 1, "\x0F4");
OsdFontColor=0x02;
if (ItemIndex==5)
OsdFontColor|=0x50;
Osd_DrawStr(13+PositionOffset1+PositionOffset, 1, "\x0F5");
OsdFontColor=0x03;
if (ItemIndex==5)
OsdFontColor=0x50;
Osd_DrawStr(12+PositionOffset1+PositionOffset, 2, "\x0F6");
OsdFontColor=0x03;
if (ItemIndex==5)
OsdFontColor=0x50;
Osd_DrawStr(13+PositionOffset1+PositionOffset, 2, "\x0F7");
}
Set_DynamiccaptionFlag();
g_ucCaptionPosition=8;
}
BOOL EnterPictureMenuExec(void)
{
DrawTopIcon(0,0xFF);
return TRUE;
}
BOOL EnterAudioMenuExec(void)
{
DrawTopIcon(1,_BIT0|_BIT1);
return TRUE;
}
BOOL EnterFunctionMenuExec(void)
{
DrawTopIcon(2,_BIT1|_BIT2);
return TRUE;
}
BOOL EnterSystemMenuExec(void)
{
DrawTopIcon(3,_BIT2|_BIT3);
#if TV_ENABLE
if(IsTVInUse())
{
Osd_SetTextColor(CP_WhiteColor, CP_GrayColor);
Osd_DrawStr(11, 5, "\x081\x082");
Osd_DrawStr(11, 6, "\x081\x080");
Osd_DrawStr(14, 5, "-");
Osd_DrawStr(14, 6, "-");
}
#endif
return TRUE;
}
void SaveUserPref(void)
{
if (SaveSettingFlag)
{
SaveVideoSetting();
#if VGA_ENABLE
SavePCSetting();
if (IsVGAInUse())
SaveModeSetting();
#endif
Clr_SaveSettingFlag();
printMsg("save setting");
}
}
#if TV_ENABLE
WORD GetChannelNumber(void)
{
return GetCurrentChannelNum();
}
BOOL AdjustSoundMode(MenuItemActionType action)
{
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;
BYTE uctemp;
#if TV_SYSTEM==TV_NTSC
if(g_TVChSetting.ucTVSource==NTSC_ATV)
{
uctemp=g_ucTVChannelSkipInfoBuff[g_TVChSetting.ucCurChannelNO/8];
}
else
{
uctemp=g_ucCATVChannelSkipInfoBuff[g_TVChSetting.ucCurChannelNO/8];
}
#else
uctemp=g_ucTVChannelSkipInfoBuff[g_TVChSetting.ucCurChannelNO/8];
#endif
uctemp&=1<<(g_TVChSetting.ucCurChannelNO%8);
return uctemp?1:0;
}
BOOL AdjustSkip(MenuItemActionType action)
{
BYTE tempSkipvalue;
tempSkipvalue=(BYTE)GetSkipValue();//%2;
if(action==MIA_IncValue)
tempSkipvalue+=1;
else
tempSkipvalue+=(2-1);
tempSkipvalue %=2;
SaveChannelSkipInfo(g_TVChSetting.ucCurChannelNO,(BIT)tempSkipvalue);;
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_ucSleepTime+=1;
else
g_ucSleepTime+=(SleepTime_Nums-1);
g_ucSleepTime%=SleepTime_Nums;
g_uwSleepTimeCounter=g_ucSleepTime*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)
{
BYTE ucBank;
ucBank=msReadByte(BK0_00_REGBK);
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,ucBank);
}
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);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -