亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? linear.c

?? 觸摸屏校準的思想及源代碼
?? C
字號:
/*
 *  tslib/plugins/linear.c
 *
 *  Copyright (C) 2001 Russell King.
 *
 * This file is placed under the LGPL.  Please see the file
 * COPYING for more details.
 *
 * $Id: linear.c,v 1.6 2002/11/08 23:28:55 dlowder Exp $
 *
 * Linearly scale touchscreen values
 */
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>

#include <stdio.h>

#include "tslib.h"
#include "tslib-filter.h"

struct tslib_linear {
	struct tslib_module_info module;
	int	swap_xy;

// Linear scaling and offset parameters for pressure
	int	p_offset;
	int	p_mult;
	int	p_div;

// Linear scaling and offset parameters for x,y (can include rotation)
	int	a[7];
};

static int
linear_read(struct tslib_module_info *info, struct ts_sample *samp, int nr)
{
	struct tslib_linear *lin = (struct tslib_linear *)info;
	int ret;
	int xtemp,ytemp;

	ret = info->next->ops->read(info->next, samp, nr);
	if (ret >= 0) {
		int nr;

		for (nr = 0; nr < ret; nr++, samp++) {
#ifdef DEBUG
			fprintf(stderr,"BEFORE CALIB--------------------> %d %d %d\n",samp->x, samp->y, samp->pressure);
#endif /*DEBUG*/
			xtemp = samp->x; ytemp = samp->y;
			samp->x = 	( lin->a[2] +
					lin->a[0]*xtemp + 
					lin->a[1]*ytemp ) / lin->a[6];
			samp->y =	( lin->a[5] +
					lin->a[3]*xtemp +
					lin->a[4]*ytemp ) / lin->a[6];

			samp->pressure = ((samp->pressure + lin->p_offset)
						 * lin->p_mult) / lin->p_div;
			if (lin->swap_xy) {
				int tmp = samp->x;
				samp->x = samp->y;
				samp->y = tmp;
			}
		}
	}

	return ret;
}

static int linear_fini(struct tslib_module_info *info)
{
	free(info);
}

static const struct tslib_ops linear_ops =
{
	read:		linear_read,
	fini:		linear_fini,
};

static int linear_xyswap(struct tslib_module_info *inf, char *str, void *data)
{
	struct tslib_linear *lin = (struct tslib_linear *)inf;

	lin->swap_xy = (int)data;
	return 0;
}

static const struct tslib_vars linear_vars[] =
{
	{ "noxyswap",	(void *)0, linear_xyswap },
	{ "xyswap",	(void *)1, linear_xyswap }
};

#define NR_VARS (sizeof(linear_vars) / sizeof(linear_vars[0]))

struct tslib_module_info *mod_init(struct tsdev *dev, const char *params)
{

	struct tslib_linear *lin;
	struct stat sbuf;
	int pcal_fd;
	int a[7];
	char pcalbuf[200];
	int index;
	char *tokptr;
	char *calfile=NULL;
	char *defaultcalfile = "/etc/pointercal";

	lin = malloc(sizeof(struct tslib_linear));
	if (lin == NULL)
		return NULL;

	lin->module.ops = &linear_ops;

// Use default values that leave ts numbers unchanged after transform
	lin->a[0] = 1;
	lin->a[1] = 0;
	lin->a[2] = 0;
	lin->a[3] = 0;
	lin->a[4] = 1;
	lin->a[5] = 0;
	lin->a[6] = 1;
	lin->p_offset = 0;
	lin->p_mult   = 1;
	lin->p_div    = 1;

	/*
	 * Check calibration file
	 */
	if( (calfile = getenv("TSLIB_CALIBFILE")) == NULL) calfile = defaultcalfile;
	if(stat(calfile,&sbuf)==0) {
		pcal_fd = open(calfile,O_RDONLY);
		read(pcal_fd,pcalbuf,200);
		lin->a[0] = atoi(strtok(pcalbuf," "));
		index=1;
		while(index<7) {
			tokptr = strtok(NULL," ");
			if(*tokptr!='\0') {
				lin->a[index] = atoi(tokptr);
				index++;
			}
		}
#ifdef DEBUG
		printf("Linear calibration constants: ");
		for(index=0;index<7;index++) printf("%d ",lin->a[index]);
		printf("\n");
#endif /*DEBUG*/
		close(pcal_fd);
	}
		
		
	/*
	 * Parse the parameters.
	 */
	if (tslib_parse_vars(&lin->module, linear_vars, NR_VARS, params)) {
		free(lin);
		return NULL;
	}

	return &lin->module;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91综合久久蜜臀| 亚洲成在线观看| 色悠久久久久综合欧美99| 亚洲男人电影天堂| 欧美在线一区二区| www.亚洲激情.com| 国产在线精品一区二区| 亚洲大尺度视频在线观看| 精品国产免费久久| 67194成人在线观看| 一本大道av伊人久久综合| 日韩精品色哟哟| 午夜视黄欧洲亚洲| 亚洲一二三四在线| 伊人色综合久久天天| 国产精品国产三级国产aⅴ入口 | 国产福利91精品一区| 青青草91视频| 天堂午夜影视日韩欧美一区二区| 亚洲日本中文字幕区| 国产日韩一级二级三级| 日韩一区二区视频| 日韩一级高清毛片| 欧美探花视频资源| 欧美色区777第一页| 欧美在线播放高清精品| 91麻豆国产精品久久| 99久久精品国产精品久久| 成人激情小说乱人伦| 成人免费视频视频| 成人免费毛片高清视频| 国产宾馆实践打屁股91| 成人激情免费视频| 国产成人免费xxxxxxxx| 国产精品一区二区黑丝| 国产成人午夜精品影院观看视频| 国产成人午夜精品影院观看视频| 国产一区二区三区在线观看免费| 亚洲成人资源在线| 日本 国产 欧美色综合| 秋霞国产午夜精品免费视频| 蜜桃传媒麻豆第一区在线观看| 中文字幕中文字幕在线一区| 国产午夜精品久久| 亚洲综合色网站| 蜜桃精品在线观看| 成人a免费在线看| av在线不卡电影| 欧美日韩精品高清| 中文字幕一区二区5566日韩| 日韩一区二区麻豆国产| 欧美国产日产图区| 亚洲一区二区三区免费视频| 久久99精品国产麻豆不卡| 国产激情视频一区二区三区欧美| 麻豆成人av在线| 天堂蜜桃一区二区三区| 激情久久五月天| 国产在线看一区| 福利91精品一区二区三区| 精品1区2区3区| 国产午夜精品一区二区三区视频 | 亚洲一级片在线观看| 久久国产人妖系列| 一本到不卡精品视频在线观看| 色哟哟亚洲精品| 精品区一区二区| 亚洲精品成a人| 亚洲最新在线观看| 国产一区亚洲一区| 欧美三电影在线| 欧美激情中文不卡| 日本系列欧美系列| 99久久99精品久久久久久 | 成人美女视频在线观看| 欧美精品xxxxbbbb| 日韩一区中文字幕| 午夜精品国产更新| 99久久久久免费精品国产 | 风间由美一区二区av101| 99视频一区二区| 精品国产乱码久久久久久闺蜜| 一区二区在线观看av| 国产成人av资源| 精品88久久久久88久久久| 偷偷要91色婷婷| 国产综合色精品一区二区三区| 国产一区二区免费看| 成人污污视频在线观看| 久久久噜噜噜久噜久久综合| 首页亚洲欧美制服丝腿| 欧美主播一区二区三区| 亚洲精品国产a| 视频一区欧美日韩| www.亚洲色图| 精东粉嫩av免费一区二区三区| 久久99精品国产91久久来源| 肉肉av福利一精品导航| 日韩一级二级三级| 国产成人自拍在线| 午夜免费久久看| 国产拍揄自揄精品视频麻豆| 色天使久久综合网天天| 精品一区二区在线视频| 一区二区视频免费在线观看| 精品久久人人做人人爽| 91福利在线看| 国产麻豆精品theporn| 亚洲精品国产高清久久伦理二区| 精品盗摄一区二区三区| 91成人免费网站| 国产风韵犹存在线视精品| 亚洲摸摸操操av| 91精品国产91久久久久久最新毛片| 成人美女视频在线观看18| 精久久久久久久久久久| 一区二区在线观看视频| 国产亚洲综合在线| 欧美一区二区三区在线看| 粉嫩aⅴ一区二区三区四区五区 | 色哟哟一区二区在线观看| 国产一区二区精品久久91| 一区二区免费视频| 成人欧美一区二区三区黑人麻豆| 久久久国产一区二区三区四区小说 | 精品精品国产高清a毛片牛牛| 国产91露脸合集magnet| 久久99久久99| 老司机精品视频导航| 免费在线观看一区| 丝袜亚洲另类欧美| 亚洲一级二级三级在线免费观看| ...中文天堂在线一区| 91精品国产综合久久香蕉的特点 | 视频一区在线播放| 亚洲欧美欧美一区二区三区| 中文字幕日韩精品一区| 国产精品嫩草久久久久| 国产精品色一区二区三区| 国产情人综合久久777777| 日韩精品一区二区三区中文不卡 | 午夜电影网一区| 日韩**一区毛片| 日本亚洲三级在线| 美女看a上一区| 国产一区二区中文字幕| 日韩电影免费一区| 日本视频免费一区| 天天综合天天综合色| 日本三级韩国三级欧美三级| 蜜桃av噜噜一区| 毛片基地黄久久久久久天堂| 狠狠色丁香久久婷婷综合_中| 国产精品影视网| 成人免费av网站| 日本韩国欧美一区| 欧美一区二区三区在线观看视频 | 国产精品日韩成人| 最新国产精品久久精品| 一区二区在线免费| 日韩主播视频在线| 国产一本一道久久香蕉| www.亚洲在线| 欧美片网站yy| www激情久久| 国产亚洲综合在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 曰韩精品一区二区| 国内外精品视频| 欧美日韩免费高清一区色橹橹| 久久久不卡网国产精品二区| 亚洲二区在线视频| av爱爱亚洲一区| www成人在线观看| 日日夜夜精品视频天天综合网| 国产一区不卡在线| 欧美日韩精品欧美日韩精品一 | 青青草97国产精品免费观看无弹窗版| 激情五月激情综合网| av高清不卡在线| 日韩小视频在线观看专区| 国产精品情趣视频| 琪琪久久久久日韩精品| 91在线观看污| 精品国内二区三区| 艳妇臀荡乳欲伦亚洲一区| 国产一区二区美女| 8x福利精品第一导航| 中文av一区二区| 日韩综合小视频| 久久99久久久久| 日韩黄色小视频| 亚洲国产cao| 欧美影院精品一区| 亚洲伊人色欲综合网| 成人永久看片免费视频天堂| 欧美精品一区二区三区蜜臀| 免费观看在线综合| 欧美成人a∨高清免费观看| 蜜臀久久99精品久久久久久9|