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

📄 paradj.c

📁 NT68617源程序代码集合
💻 C
📖 第 1 页 / 共 3 页
字号:
*             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 + -