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

📄 touchadjust.c

📁 在优龙fs2410开发板上做的电子琴
💻 C
字号:
/*
*********************************************************************************************************
*                                   Samsung ARM S3C2410 Software Frame
*
*                          			(c) Copyright 2008-2010, LastRitter
*                                           All Rights Reserved
*
* File : 
* By   : LastRitter
*********************************************************************************************************
*/
#include "SystemTool.h"	   

#define SW_ADJUST_NUM		4
#define SW_ADJUST_FRONT		(EG_GREEN|EG_RED)
#define SW_ADJUST_BACK		(EG_GREEN|EG_BLUE)
#define SW_ADJUST_POINT		(EG_RED)

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define SW_ADJUST_DISABLE	100

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uint8 uc_Adjust=SW_ADJUST_DISABLE;

static uint16 ui_AdjustBuf[SW_ADJUST_NUM][2];

static uint16 ui_Kx,ui_Ky;

/*
*********************************************************************************************************
*                                               
*
* Description:
* 
* Arguments  : 
*
* Returns    : 
*
* Note(s)    :  
*               
*********************************************************************************************************
*/
static uint16 SW_AdjustCal(colour stFront,colour stBack)
{
	ui_Kx=ui_AdjustBuf[0][0]+ui_AdjustBuf[3][0]-ui_AdjustBuf[1][0]-ui_AdjustBuf[2][0];
	ui_Ky=ui_AdjustBuf[0][1]+ui_AdjustBuf[3][1]-ui_AdjustBuf[1][1]-ui_AdjustBuf[2][1];
	ui_Kx/=52;
	ui_Ky/=36;

	return 0;
}

/*
*********************************************************************************************************
*                                               
*
* Description:
* 
* Arguments  : 
*
* Returns    : 
*
* Note(s)    :  
*               
*********************************************************************************************************
*/
uint16 SW_ConvertCoord(uint16 *puiX,uint16 *puiY)
{
	*puiX=30+((882-*puiX)*10)/29;
	*puiY=30+((840-*puiY)*10)/37;
	
	if(*puiX>=SW_XMAX)
		*puiX=SW_XMAX-1;
	if(*puiY>=SW_YMAX)
		*puiX=SW_YMAX-1;
	return 0;
}

/*
*********************************************************************************************************
*                                               
*
* Description:
* 
* Arguments  : 
*
* Returns    : 
*
* Note(s)    :  
*               
*********************************************************************************************************
*/
static void SI_AdjustDraw(uint8 ucPos,colour stFront,colour stBack)
{
	switch(ucPos)
	{
		case 0:
			EG_SetFontColour(stFront);
			EG_TextOutEx(90,100,"Touch Screen Adjust");
			EG_CrossPoint(30,30,8,3,SW_ADJUST_POINT);
			break;
		case 1:
			EG_CrossPoint(30,30,8,3,stBack);
			EG_CrossPoint(290,30,8,3,SW_ADJUST_POINT);
			break;
		case 2:
			EG_CrossPoint(290,30,8,3,stBack);
			EG_CrossPoint(290,210,8,3,SW_ADJUST_POINT);
			break;
		case 3:
			EG_CrossPoint(290,210,8,3,stBack);
			EG_CrossPoint(30,210,8,3,SW_ADJUST_POINT);
			break;
		case 4:
			EG_CrossPoint(30,210,8,3,stBack);
			EG_SetFontColour(stBack);
			EG_TextOutEx(90,100,"Touch Screen Adjust");
			EG_SetFontColour(stFront);
			EG_TextOutEx(40,100,"Touch Screen Adjust Finished");
			break;
		default:break;
	}
}

/*
*********************************************************************************************************
*                                               
*
* Description:
* 
* Arguments  : 
*
* Returns    : 
*
* Note(s)    :  
*               
*********************************************************************************************************
*/
static void SW_AdjustCB(uint16 uiHandle,uint16 uiX,uint16 uiY,uint16 uiState)
{
	if(uiState!=SI_TS_DOWN)
		return;
	
	if(uc_Adjust<SW_ADJUST_NUM)
	{
		UART_TextOut("%d (x,y)=(%d,%d)\n",uc_Adjust,uiX,uiY);
		ui_AdjustBuf[uc_Adjust][0]=uiX;
		ui_AdjustBuf[uc_Adjust][1]=uiY;
		SI_AdjustDraw(++uc_Adjust,SW_ADJUST_FRONT,SW_ADJUST_BACK);
		if(uc_Adjust==SW_ADJUST_NUM)
		{
			if(SW_AdjustCal(SW_ADJUST_FRONT,SW_ADJUST_BACK))
			{
				uc_Adjust=0;
				SI_AdjustDraw(0,SW_ADJUST_FRONT,SW_ADJUST_BACK);
			}
		}
	}
	else
	{
		uc_Adjust=SW_ADJUST_DISABLE;
		SW_DeleteWindow(uiHandle);
	}
}

/*
*********************************************************************************************************
*                                               
*
* Description:
* 
* Arguments  : 
*
* Returns    : 
*
* Note(s)    :  
*               
*********************************************************************************************************
*/
void SW_AdjustWindow(void)
{
	uint16 uiHandle;	
	window stWindow;
	
	SW_StructInit(&stWindow);
	
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	stWindow.uiX=0;
	stWindow.uiY=0;
	stWindow.uiWidth=SW_XMAX;
	stWindow.uiHigh=SW_YMAX;

	stWindow.scTitle="Touch Adjust";
	stWindow.uiStyple=SW_STYPLE_ADJUST;
	stWindow.stFront=SW_ADJUST_FRONT;
	stWindow.stBack=SW_ADJUST_BACK;
	
	stWindow.CallBack=SW_AdjustCB;
	
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	uiHandle=SW_CreateWindow(&stWindow);

	UART_TextOut("Test2\n");

	SW_ShowWindow(uiHandle);

	uc_Adjust=0;
	
	SI_AdjustDraw(0,SW_ADJUST_FRONT,SW_ADJUST_BACK);	
}

⌨️ 快捷键说明

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