📄 userpref.c
字号:
#include <math.h>
#include "types.h"
#include "global.h"
#include "board.h"
#include "nvram.h"
#include "debug.h"
#include "menudef.h"
#include "menufunc.h"
void CheckBoard(void);
void ReadBlacklitTime(void);
void SaveBlacklitTime(void);
void Init_MonitorSetting(void)
{ UserPrefBrightness=DefBrightness;
UserPrefContrast=DefContrast;
UserPrefAdcRedGain=0x80;
UserPrefAdcGreenGain=0x80;
UserPrefAdcBlueGain=0x80;
UserPrefAdcRedOffset=0x80;
UserPrefAdcGreenOffset=0x80;
UserPrefAdcBlueOffset=0x80;
UserPrefRedColor=DefRedColor;
UserPrefGreenColor=DefGreenColor;
UserPrefBlueColor=DefBlueColor;
UserPrefRedColor9300K=DefRedColor9300K;
UserPrefGreenColor9300K=DefGreenColor9300K;
UserPrefBlueColor9300K=DefBlueColor9300K;
UserPrefRedColor6500K=DefRedColor6500K;
UserPrefGreenColor6500K=DefGreenColor6500K;
UserPrefBlueColor6500K=DefBlueColor6500K;
UserPrefRedColorOffset=DefRedColorOffset;
UserPrefGreenColorOffset=DefGreenColorOffset;
UserPrefBlueColorOffset=DefBlueColorOffset;
UserPrefColorTemp=DefColorTemp;
UserPrefSharpness=2;
UserPrefSpread=DefSpread;
UserPrefLanguage=0;
UserPrefOsdHStart=2;//=50;
UserPrefOsdVStart=50;
UserPrefOsdTime=10;
UserPrefInputType=Input_Analog1;
UserPrefVolume=(MaxVolumeValue-MinVolumeValue)/2 + MinVolumeValue;
MonitorFlags=bPowerOnBit|bBurninModeBit;
MonitorSetting.checksum=ChecksumValue;
}
void Init_ModeSetting(void)
{ UserPrefHTotal=StandardModeHTotal;
UserPrefHStart=StandardModeHStart;
UserPrefVStart=StandardModeVStart;
UserPrefPhase=0x1F;
UserPrefAutoTimes=0;
ModeSetting.checksum=ChecksumValue;
}
void CheckColorValueRange(void)
{ if (UserPrefContrast>MaxContrastValue || UserPrefContrast<MinContrastValue)
UserPrefContrast=DefContrast;
#if 0
if (UserPrefRedColor>MaxColorValue)
UserPrefRedColor=DefRedColor;
if (UserPrefGreenColor>MaxColorValue)
UserPrefGreenColor=DefGreenColor;
if (UserPrefBlueColor>MaxColorValue)
UserPrefBlueColor=DefBlueColor;
#endif
}
void CheckMonitorSettingRange(void)
{ CheckColorValueRange();
MSBankNo%=3;
UserPrefBrightness%=101;
UserPrefColorTemp%=CTEMP_Nums;
UserPrefSharpness%=4;
UserPrefLanguage%=LANG_Nums;
UserPrefOsdHStart%=5;
UserPrefInputType%=Input_Nums;
}
void CheckModeSettingRange(void)
{ if (abs(UserPrefHTotal-StandardModeHTotal)>60)
UserPrefHTotal=StandardModeHTotal;
if (UserPrefHStart>2*StandardModeHStart)
UserPrefHStart=StandardModeHStart;
if (UserPrefVStart>2*StandardModeVStart)
UserPrefVStart=StandardModeVStart;
UserPrefPhase&=0x3F;
if (UserPrefAutoTimes==0 || abs(UserPrefHStart-UserPrefAutoHStart)>50)
UserPrefAutoHStart=UserPrefHStart;
UserPrefAutoVStart=UserPrefVStart;// byerwin
}
void SaveMonitorSetting(void)
{ NVRam_WriteTbl(MonitorSettingAddr, (BYTE*)&MonitorSetting, MonitorSettingSize);
}
void SaveModeSetting(void)
{
//NVRam_WriteTbl(nvrModeBaseAddr(SrcModeIndex), (BYTE*)&ModeSetting, ModeSettingSize);
NVRam_WriteTbl(nvrModeBaseAddr(SaveIndex), (BYTE*)&ModeSetting, ModeSettingSize);
}
void ReadMonitorSetting(void)
{
BYTE tempValue;
//printMsg("Start : Read Monitor Stting");
CheckBoard();
NVRam_ReadByte(nvrMonitorAddr(checksum), &tempValue);
//printData("monitor size %d", MonitorSettingSize);
//printData("contrast %x", nvrMonitorAddr(Contrast));
if (tempValue==ChecksumValue)
{
NVRam_ReadTbl(MonitorSettingAddr, (BYTE*)&MonitorSetting, MonitorSettingSize);
//printMsg("monitor setting found");
}
else
{
Init_MonitorSetting();
SaveMonitorSetting();
}
//UserPrefRedColor=UserPrefRedColor9300K;//barry1111
//UserPrefGreenColor=UserPrefGreenColor9300K;
//UserPrefBlueColor=UserPrefBlueColor9300K;
//UserPrefColorTemp=CTEMP_9300K;
//Read9300KSetting();
CheckMonitorSettingRange();
SrcInputType=UserPrefInputType;
//printMsg("End : Read Monitor Stting");
}
void GetModeSaveIndex(void)
{ ModeInfoType modeInfo;
BYTE i;
WORD hFreq, vFreq;
if (!UserModeFlag) //barry1111
{
SaveIndex=SrcModeIndex;
printData("stand mode Index %d",SaveIndex);
return;
}
hFreq=HFreq(SrcHPeriod);
vFreq=VFreq(hFreq, SrcVTotal);
for (i=0; i<ModeNumber; i++)
{ NVRam_ReadTbl(nvrModeInfoAddr(i) , (BYTE*)&modeInfo, ModeInfoSize);
if (abs(hFreq-modeInfo.HorFreq)<16 && abs(vFreq-modeInfo.VerFreq)<8 &&
(SrcFlags&0x13)==modeInfo.Flags)
break;
}
if (i>=ModeNumber)
{ MaxSavedModeIndex=(MaxSavedModeIndex+1)%ModeNumber;
SaveIndex=MaxSavedModeIndex;
modeInfo.HorFreq=hFreq;
modeInfo.VerFreq=vFreq;
modeInfo.Flags=SrcFlags&0x13;
NVRam_WriteTbl(nvrModeInfoAddr(SaveIndex), (BYTE*)&modeInfo, ModeInfoSize);
NVRam_WriteByte(nvrModeAddr(checksum), 0);
}
else
SaveIndex=i;
}
void ReadModeSetting(void)
{ BYTE tempValue;
GetModeSaveIndex();
NVRam_ReadByte(nvrModeAddr(checksum), &tempValue);
printData("checksum = %d", tempValue);
if (tempValue==ChecksumValue)
{
//NVRam_ReadTbl(nvrModeBaseAddr(SrcModeIndex), (BYTE*)&ModeSetting, ModeSettingSize);
NVRam_ReadTbl(nvrModeBaseAddr(SaveIndex), (BYTE*)&ModeSetting, ModeSettingSize);
printMsg("mode setting found");
UserPrefAutoTimes=1; //Barry1111 mode auto just at first time
}
else
{ Init_ModeSetting();
SaveModeSetting();
printMsg("mode setting found fail");
}
CheckModeSettingRange();
}
void EraseEEPROM(void)
{
NVRam_WriteByte(nvrMonitorAddr(checksum), 0);
for (SrcModeIndex=0; SrcModeIndex<NumberOfMode; SrcModeIndex++)
{ NVRam_WriteByte(nvrModeAddr(checksum), 0);
}
SrcFlags|=bUserMode;
for (SrcModeIndex=0; SrcModeIndex<NumberOfMode; SrcModeIndex++)
{ NVRam_WriteByte(nvrModeAddr(checksum), 0);
}
SrcFlags&=~bUserMode;
NVRam_WriteByte(Factory9300KBrightnessAddr, DefBrightness);
NVRam_WriteByte(Factory6500KBrightnessAddr, DefBrightness);
NVRam_WriteByte(Factory9300KContrastAddr, DefContrast);
NVRam_WriteByte(Factory6500KContrastAddr, DefContrast);
//printMsg("erase board");
}
void CheckBoard(void)
{ BYTE tempValue;
//printMsg("Start : Check Board" );
NVRam_ReadByte(CheckBoardAddr, &tempValue);
if (tempValue!=BoardChecksum)
{ EraseEEPROM();
BlacklitTime=0;
SaveBlacklitTime();
NVRam_WriteByte(CheckBoardAddr, BoardChecksum);
}
else
ReadBlacklitTime();
//printMsg("End : Check Board");
}
void ReadBlacklitTime(void)
{ NVRam_ReadTbl(BlacklitTimeAddr, (BYTE*)(&BlacklitTime), 4);
}
void SaveBlacklitTime(void)
{ NVRam_WriteTbl(BlacklitTimeAddr, (BYTE*)(&BlacklitTime), 4);
}
void Clear_NVRam_All_ModeSetting(void)
{
BYTE modeIndex;
modeIndex=SaveIndex;
for (SaveIndex=0; SaveIndex<NumberOfMode; SaveIndex++)
{ NVRam_WriteByte(nvrModeAddr(checksum), 0);
}
SaveIndex=modeIndex;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -