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

📄 osd1menu.c

📁 Terawins的芯片T128点3.5"屏的源程序。
💻 C
字号:
#include "OSD1MENU.h"
#include "ICControl.h"	
#include "OSD1_Define.h"
#include "OSD1CSL.h"

#ifdef OSD1Page
void kyMENUEvent(void)
{

	if((++m_cOSDMenu)>2)
	m_cOSDMenu=0;

	m_cItem=0;

	if(m_cOSDMenu>=2)
	{
		OSD1Disable();
	}
	else
	{
		OSD1ClearMenu(BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT);  
		OSD1ShowPage();
	}
//		Timer0Start();
}


void OSD1ShowPage(void)
{
	uCHAR y;
	uCHAR item_num=ALL_MENU[m_cOSDMenu]->Item_Num;

	for(y=0;y<item_num;y++)
	{
		OSD1CleanLine(0,y+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT,OSD_LENGTH);
		OSD1ShowLine(ALL_MENU[m_cOSDMenu]->str[y],TXT_STAT,y+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);

		if(ALL_MENU[m_cOSDMenu]->Par[y].cDataAttr&OSD1_VALUE)
			OSD1DrawNum(ALL_MENU[m_cOSDMenu]->EEProm[y],ALL_MENU[m_cOSDMenu]->Par[y].ucValMAX,NUM_STAT,y+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,DRAW_ZERO);

		if((ALL_MENU[m_cOSDMenu]->Par[y].cDataAttr&OSD1_ITEM)&&(((uCHAR *)ALL_MENU[m_cOSDMenu]->Par[y].Item)!=NULL))
			OSD1ShowLine(ALL_MENU[m_cOSDMenu]->Par[y].Item[(ALL_MENU[m_cOSDMenu]->EEProm[y])],ITEM_STAT,y+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);

	}
	
	OSD1MoveCursor();
	OSD1Enable();
}


void OSD1MoveCursor(void)
{
	uCHAR Max=ALL_MENU[m_cOSDMenu]->Par[m_cItem].ucValMAX;
	uCHAR Val=ALL_MENU[m_cOSDMenu]->EEProm[m_cItem];

	OSD1ShowLine(ALL_MENU[m_cOSDMenu]->str[m_cItem],TXT_STAT,m_cItem+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_RED,OSD_LENGTH,0);
	OSD1CleanLine(0,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+1,BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT,OSD_LENGTH);
	OSD1CleanLine(0,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+2,BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT,OSD_LENGTH);

	if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_GUAGE)
		OSD1DrawGauge(Val,Max,OSD1PageOriginX,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+2, BGND_COLOR_GREEN|FGND_COLOR_RED);

	if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_VALUE)
		OSD1DrawNum(Val,Max,NUM_STAT,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+2,BGND_COLOR_TRANSPERANT|FGND_COLOR_RED,DRAW_ZERO);

    if((ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_ITEM)&&(((uCHAR *)ALL_MENU[m_cOSDMenu]->Par[m_cItem].Item)!=NULL))
	   OSD1ShowLine(ALL_MENU[m_cOSDMenu]->Par[m_cItem].Item[(ALL_MENU[m_cOSDMenu]->EEProm[m_cItem])],ITEM_STAT,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+2,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
	return;
}

void IRUpDownKeyCtrl(uCHAR x)
{

	if(m_bOSDEnable)
	{
		if(m_cOSDMenu !=2)
		{
			OSD1ShowLine(ALL_MENU[m_cOSDMenu]->str[m_cItem],TXT_STAT,m_cItem+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
			if(x)
			{
 				m_cItem--;
				if(m_cItem == 0xff)
					m_cItem=ALL_MENU[m_cOSDMenu]->Item_Num-1;           
			}
			else
			{
				m_cItem++;
				if(m_cItem>=ALL_MENU[m_cOSDMenu]->Item_Num)
					m_cItem=0;				
			}
			OSD1MoveCursor();		
		}
	}
}

void OSD1ItemAdj(uCHAR cAdj)
{
	uCHAR Val=ALL_MENU[m_cOSDMenu]->EEProm[m_cItem];
	uCHAR Max=ALL_MENU[m_cOSDMenu]->Par[m_cItem].ucValMAX;
	uCHAR Min=ALL_MENU[m_cOSDMenu]->Par[m_cItem].ucValMIN;
	uCHAR dev_addr,dev_reg;
    if(m_bOSDEnable&&(m_cOSDMenu !=2))
	{
		if(cAdj)
	    {
	       if(Val<Max)
			 Val++;
		   else if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_CYCLE)
			Val=Min;
	  	}
		else
		{
		   if(Val>Min)
			Val--;
	       else if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_CYCLE)
			 Val=Max;
	  	}
	
		if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].Def!=NULL)
		{
			dev_addr=ALL_MENU[m_cOSDMenu]->Par[m_cItem].Def->ucDevVal;
			dev_reg=ALL_MENU[m_cOSDMenu]->Par[m_cItem].Def->ucRegAdr;
	
			if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].Def->ucDatalen==2)
			{
				IC_WritByte(dev_addr,dev_reg,Val>>8);
				IC_WritByte(dev_addr,dev_reg+1,Val&0xFF);
			}
	        else
				IC_WritByte(dev_addr,dev_reg,Val);
		}
	
		if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_GUAGE)
			OSD1DrawGauge(Val,Max,OSD1PageOriginX,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+2, BGND_COLOR_GREEN|FGND_COLOR_RED);
	
		if(ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_VALUE)
		{
			OSD1CleanLine(NUM_STAT,m_cItem+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT,OSD_LENGTH);
			OSD1DrawNum(Val,Max,NUM_STAT,m_cItem+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_RED,DRAW_ZERO);
			OSD1CleanLine(NUM_STAT,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+2,BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT,OSD_LENGTH);
			OSD1DrawNum(Val,Max,NUM_STAT,ALL_MENU[m_cOSDMenu]->Item_Num+OSD1PageOriginY+2,BGND_COLOR_TRANSPERANT|FGND_COLOR_RED,DRAW_ZERO);
		}
		if((ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_ITEM)&&(((uCHAR *)ALL_MENU[m_cOSDMenu]->Par[m_cItem].Item)!=NULL))
			OSD1ShowLine(ALL_MENU[m_cOSDMenu]->Par[m_cItem].Item[(ALL_MENU[m_cOSDMenu]->EEProm[m_cItem])],ITEM_STAT,m_cItem+OSD1PageOriginY,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
	
	  	ALL_MENU[m_cOSDMenu]->EEProm[m_cItem]=Val;
	
		if((ALL_MENU[m_cOSDMenu]->Par[m_cItem].cDataAttr&OSD1_FUNC)&&((ALL_MENU[m_cOSDMenu]->Par[m_cItem].func)!=NULL))
		{
			ALL_MENU[m_cOSDMenu]->Par[m_cItem].func();
		}
	}
}

//	void OSD1ShowNTSC_PAL(void)
//	{
//		uCHAR i;
//	
//	    OSD1Disable();
//		OSD1ClearMenu(BGND_COLOR_TRANSPERANT|FGND_COLOR_TRANSPERANT);  
//		if(m_cChroma==S_NTSC)
//			OSD1ShowLine(iNTSC_E,30,1,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
//		else if(m_cChroma==S_PAL)
//			OSD1ShowLine(iPAL_E,30,1,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
//		else if(m_cChroma==S_SECAM) 
//			OSD1ShowLine(iSECAM_E,30,1,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
//		else if(m_cChroma==S_NTSC_4) 
//			OSD1ShowLine(iNTSC_4_E,30,1,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
//		else if(m_cChroma==S_PAL_M)
//			OSD1ShowLine(iPAL_M_E,30,1,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
//		else if(m_cChroma==S_PAL_CN) 	
//			OSD1ShowLine(iPAL_CN_E,30,1,BGND_COLOR_TRANSPERANT|FGND_COLOR_GREEN,OSD_LENGTH,0);
//	
//		OSD1Enable();
//	}





#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -