📄 paradj.c
字号:
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjGgain(uint8 step, unsigned char color)
{
uint8 i;
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (Color.G_Gain > 100) Color.G_Gain = 100;
if (Option & SHOWONLY) {
AdjDispGgain(color);
return;
}
for (i = 0; i< step; i++) {
if (Option & INC) {
if (Color.G_Gain < 100) Color.G_Gain++;
}
else {
if (Color.G_Gain > 0) Color.G_Gain--;
}
sRGBCon();
ActiveSave_COLOR();
if (Option & SHOW) AdjDispGgain(color);
}
if (!step) sRGBCon();
}
static void AdjDispBgain(uint8 color)
{
#if EN_ACEROSD
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 11, Color.B_Gain);
#else
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 6, Color.B_Gain);
#endif
}
/*
********************************************************************************
* 函 数 名: AdjBgain
* 功能描述: 调节蓝色的对比度, 采用的是sRGB的方式
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjBgain(uint8 step, unsigned char color)
{
uint8 i;
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (Color.B_Gain > 100) Color.B_Gain = 100;
if (Option & SHOWONLY) {
AdjDispBgain(color);
return;
}
for (i = 0; i< step; i++) {
if (Option & INC) {
if (Color.B_Gain < 100) Color.B_Gain++;
}
else {
if (Color.B_Gain > 0) Color.B_Gain--;
}
sRGBCon();
ActiveSave_COLOR();
if (Option & SHOW) AdjDispBgain(color);
}
if (!step) sRGBCon();
}
#undef MINPAR
#undef MAXPAR
#if EN_OSDZOOM
#define MINPAR 0
#define MAXPAR (PanelWidth - OSD_FRAME_WIDTH * OSD_FONT_WIDTH * 2)
#else
#define MINPAR 0
#define MAXPAR (PanelWidth - OSD_FRAME_WIDTH * OSD_FONT_WIDTH)
#endif
#define DEFOSDHPOS MAXPAR/2
static void AdjDispOsdHpos(uint8 color)
{
uint8 val;
val = SysPar.Osd_Hpos;
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 3, val);
#if EN_ACEROSD
OsdShowValScroll(VALROLL_POSX, SubMenuWin.Vs + 3, val);
#endif
}
/*
********************************************************************************
* 函 数 名: AdjOsdHpos
* 功能描述: 调节OSD水平位置
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjOsdHpos(uint8 step, unsigned char color)
{
uint8 i;
uint8 Option;
#if EN_OSDPOS_ADJ
uint16 pos;
#endif
Option = step & 0xF0;
step &= 0x0F;
if (SysPar.Osd_Hpos > 100) SysPar.Osd_Hpos = 100;
if (Option & SHOWONLY) {
AdjDispOsdHpos(color);
return;
}
for (i = 0; i< step; i++) {
if (Option & INC) {
if (SysPar.Osd_Hpos < 100) SysPar.Osd_Hpos++;
}
else {
if (SysPar.Osd_Hpos > 0) SysPar.Osd_Hpos--;
}
#if EN_OSDPOS_ADJ
pos = ((uint32)SysPar.Osd_Hpos * MAXPAR)/100;
OsdHpos(pos);
#else
OsdHpos(DEFOSDHPOS);
#endif
ActiveSave_SYSPAR();
if (Option & SHOW) AdjDispOsdHpos(color);
}
#if EN_OSDPOS_ADJ
if (!step) {
pos = ((uint32)SysPar.Osd_Hpos * MAXPAR)/100;
OsdHpos(pos);
}
#else
if (!step) OsdHpos(DEFOSDHPOS);
#endif
}
#undef MINPAR
#undef MAXPAR
#if EN_OSDZOOM
#define MINPAR 0
#define MAXPAR (PanelHeight - OSD_FRAME_HEIGHT * OSD_FONT_HEIGHT * 2)
#else
#define MINPAR 0
#define MAXPAR (PanelHeight - OSD_FRAME_HEIGHT * OSD_FONT_HEIGHT)
#endif
#define DEFOSDVPOS MAXPAR/2
static void AdjDispOsdVpos(uint8 color)
{
uint8 val;
val = SysPar.Osd_Vpos;
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 5, val);
#if EN_ACEROSD
OsdShowValScroll(VALROLL_POSX, SubMenuWin.Vs + 5, val);
#endif
}
/*
********************************************************************************
* 函 数 名: AdjOsdVpos
* 功能描述: 调节OSD垂直位置
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjOsdVpos(uint8 step, unsigned char color)
{
uint8 i;
uint8 Option;
#if EN_OSDPOS_ADJ
uint16 pos;
#endif
Option = step & 0xF0;
step &= 0x0F;
if (SysPar.Osd_Vpos > 100) SysPar.Osd_Vpos = 100;
if (Option & SHOWONLY) {
AdjDispOsdVpos(color);
return;
}
for (i = 0; i< step; i++) {
if (Option & INC) {
if (SysPar.Osd_Vpos < 100) SysPar.Osd_Vpos++;
}
else {
if (SysPar.Osd_Vpos > 0) SysPar.Osd_Vpos--;
}
#if EN_OSDPOS_ADJ
pos = ((uint32)SysPar.Osd_Vpos * MAXPAR)/100;
OsdVpos(pos);
#else
OsdVpos(DEFOSDVPOS);
#endif
ActiveSave_SYSPAR();
if (Option & SHOW) AdjDispOsdVpos(color);
}
#if EN_OSDPOS_ADJ
if (!step) {
pos = ((uint32)SysPar.Osd_Vpos * MAXPAR)/100;
OsdVpos(pos);
}
#else
if (!step) OsdVpos(DEFOSDVPOS);
#endif
}
#undef MINPAR
#undef MAXPAR
#define MINPAR 5
#define MAXPAR 60
static void AdjDispOsdTime(uint8 color)
{
#if EN_ACEROSD
uint8 val;
val = SysPar.Osd_Timeout;
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 7, val);
OsdShowValScroll(VALROLL_POSX, SubMenuWin.Vs + 7, val);
#else
uint8 val;
val = SysPar.Osd_Timeout;
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 3, val);
#endif
}
/*
********************************************************************************
* 函 数 名: AdjOsdTime
* 功能描述: 调节OSD的显示保持时间
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjOsdTime(uint8 step, unsigned char color)
{
uint8 i;
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (SysPar.Osd_Timeout < MINPAR) SysPar.Osd_Timeout = MINPAR;
if (SysPar.Osd_Timeout > MAXPAR) SysPar.Osd_Timeout = MAXPAR;
if (Option & SHOWONLY) {
AdjDispOsdTime(color);
return;
}
for (i = 0; i< step; i++) {
if (Option & INC) {
if (SysPar.Osd_Timeout < MAXPAR) SysPar.Osd_Timeout++;
else SysPar.Osd_Timeout = MAXPAR;
}
else {
if (SysPar.Osd_Timeout > MINPAR) SysPar.Osd_Timeout--;
else SysPar.Osd_Timeout = MINPAR;
}
ActiveSave_SYSPAR();
if (Option & SHOW) AdjDispOsdTime(color);
}
}
#undef MINPAR
#undef MAXPAR
#define MINPAR 0
#define MAXPAR 60
static void AdjDispPowerSave(uint8 color)
{
#if EN_ACEROSD
uint8 val;
val = SysPar.PowerSaveTime;
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 13, val);
OsdShowValScroll(VALROLL_POSX, SubMenuWin.Vs + 13, val);
#else
uint8 val;
val = SysPar.PowerSaveTime;
OsdAttrib(OSD_1BITFONT, color);
OsdShowPercent(SubMenuWin.He - 3, SubMenuWin.Vs + 4, val);
#endif
}
/*
********************************************************************************
* 函 数 名: AdjOsdVpos
* 功能描述: 调节进入省电的时间间隔
* 输 入: step : 高四位是选项,低四位是调节的步长
* color : 显示的颜色
* 返 回: 无
********************************************************************************
*/
void AdjPowerSave(uint8 step, unsigned char color)
{
uint8 i;
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (SysPar.PowerSaveTime < MINPAR) SysPar.PowerSaveTime = MINPAR;
if (SysPar.PowerSaveTime > MAXPAR) SysPar.PowerSaveTime = MAXPAR;
if (Option & SHOWONLY) {
AdjDispPowerSave(color);
return;
}
for (i = 0; i< step; i++) {
if (Option & INC) {
if (SysPar.PowerSaveTime < MAXPAR) SysPar.PowerSaveTime++;
else SysPar.PowerSaveTime = MAXPAR;
}
else {
if (SysPar.PowerSaveTime > MINPAR) SysPar.PowerSaveTime--;
else SysPar.PowerSaveTime = MINPAR;
}
ActiveSave_SYSPAR();
if (Option & SHOW) AdjDispPowerSave(color);
}
}
#undef MINPAR
#undef MAXPAR
#if EN_ACEROSD
static void AdjDispDDC_CI(uint8 color)
{
Alignment = LEFT;
StringWidth = 6;
OsdAttrib(OSD_1BITFONT, color);
if(SysPar.Flag & FLAG_DDCCI) OsdSpecPrint(VALROLL_POSX + 5, SubMenuWin.Vs + 5, StrON);
else OsdSpecPrint(VALROLL_POSX + 5, SubMenuWin.Vs + 5, StrOFF);
OsdShowStr(VALROLL_POSX + 1, SubMenuWin.Vs + 5, Icon_Move, 1);
OsdShowStr(VALROLL_POSX + 10, SubMenuWin.Vs + 5, Icon_MoveR, 1);
}
void AdjDDC_CI(uint8 step, uint8 color)
{
uint8 Option;
#if EN_DDC_CI
uint8 buf;
#endif
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY)
{
AdjDispDDC_CI(color);
return;
}
#if EN_DDC_CI
if (step)
{
if((Option & INC) || (Option & DEC))
{
SysPar.Flag ^= FLAG_DDCCI;
if(SysPar.Flag & FLAG_DDCCI) SarDDCCI_Enable();
else SarDDCCI_Disable();
ActiveSave_SYSPAR();
}
if (Option & SHOW)
{
buf = FontIndex;
AdjDispDDC_CI(color);
FontIndex = buf;
}
}
else
{
if(SysPar.Flag & FLAG_DDCCI) SarDDCCI_Enable();
else SarDDCCI_Disable();
}
#endif
}
static void AdjDispACM(uint8 color)
{
Alignment = LEFT;
StringWidth = 10;
OsdAttrib(OSD_1BITFONT, color);
#if EN_720MODE
if(SysPar.Flag & FLAG_720MODE) OsdSpecPrint(VALROLL_POSX + 5, SubMenuWin.Vs + 7, StrON);
else OsdSpecPrint(VALROLL_POSX + 5, SubMenuWin.Vs + 7, StrOFF);
#else
OsdSpecPrint(VALROLL_POSX + 5, SubMenuWin.Vs + 7, StrOFF);
#endif
OsdShowStr(VALROLL_POSX + 1, SubMenuWin.Vs + 7, Icon_Move, 1);
OsdShowStr(VALROLL_POSX + 10, SubMenuWin.Vs + 7, Icon_MoveR, 1);
}
void AdjACM(uint8 step, uint8 color)
{
uint8 Option;
#if EN_720MODE
uint8 buf;
#endif
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDispACM(color);
return;
}
#if EN_720MODE //chen 08-05-26
if (step)
{
if((Option & INC) || (Option & DEC))
{
SysPar.Flag ^= FLAG_720MODE;
ActiveSave_SYSPAR();
Flg_SyncInt = 1;
}
if (Option & SHOW)
{
buf = FontIndex;
AdjDispACM(color);
FontIndex = buf;
}
}
else
{
// if(SysPar.Flag & FLAG_720MODE) SarDDCCI_Enable();
// else SarDDCCI_Disable();
}
#endif
}
uint8 code StrVGA[] = {0x03, _V,_G,_A};
uint8 code StrDVI[] = {0x03, _D,_V,_I};
static void AdjDispSource(uint8 color)
{
Alignment = LEFT;
StringWidth = 10;
OsdAttrib(OSD_1BITFONT, color);
OsdSpecPrint(VALROLL_POSX + 5, SubMenuWin.Vs + 9, StrVGA);
OsdShowStr(VALROLL_POSX + 1, SubMenuWin.Vs + 9, Icon_Move, 1);
OsdShowStr(VALROLL_POSX + 10, SubMenuWin.Vs + 9, Icon_MoveR, 1);
}
void AdjSource(uint8 step, uint8 color)
{
uint8 Option;
Option = step & 0xF0;
step &= 0x0F;
if (Option & SHOWONLY) {
AdjDispSource(color);
return;
}
}
#endif
static void AdjDispColor(uint8 color)
{
#if EN_ACEROSD
uint8 cp;
uint8 row;
if(KeyMenuCursor == 0) row = 17;
else
row = 5;
OsdAttrib(OSD_1BITFONT, color);
switch (SysPar.ColorTemp & 0x03) {
case COLOR_9300:
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + row++, Icon_9300, 2);
break;
case COLOR_6500:
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + row++, Icon_6500, 2);
break;
case COLOR_USER:
OsdShowStr(SubMenuWin.He - 2, SubMenuWin.Vs + row++, Icon_User, 2);
break;
}
if(KeyMenuCursor == 0)
{
return; //如果是在第0页的菜单下,则不显示RGB菜单项 08-04-21
}
if (SysPar.ColorTemp == COLOR_USER || Flg_Factory) {
color = SubStrColor;
cp = SubPctColor;
MaxSubMenuItem = row - 1;
}
else {
color = DARKGRAY;
cp = DARKGRAY;
MaxSubMenuItem = row - 4;
}
row++;
FontIndexBackup[2] = FontIndex;
MenuShowStr(SubMenuWin.Hs + 1, SubMenuWin.Vs + row, StrRed, RED);
row += 2;
FontIndexBackup[3] = FontIndex;
MenuShowStr(SubMenuWin.Hs + 1, SubMenuWin.Vs + row, StrGreen, GREEN);
row += 2;
FontIndexBackup[4] = FontIndex;
MenuShowStr(SubMenuWin.Hs + 1, SubMenuWin.Vs + row, StrBlue, BLUE);
AdjRgain(SHOWONLY, cp);
AdjGgain(SHOWONLY, cp);
AdjBgain(SHOWONLY, cp);
MenuShowSysState();
#else
uint8 cp;
uint8 row;
row = 3;
OsdAttrib(OSD_1BITFONT, color);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -