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

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

?? variance.c

?? tslib-1.3.rar 源碼 觸摸屏 管理
?? C
字號:
/* *  tslib/plugins/variance.c * *  Copyright (C) 2001 Russell King. * * This file is placed under the LGPL.  Please see the file * COPYING for more details. * * $Id: variance.c,v 1.3 2002/11/08 23:28:55 dlowder Exp $ * * Variance filter for touchscreen values */#include <errno.h>#include <stdlib.h>#include <string.h>#include <limits.h>#include <stdio.h>#include "tslib.h"#include "tslib-filter.h"#define NR_LAST	4struct tslib_variance {	struct tslib_module_info	module;	int				nr;	unsigned int			pthreshold;	unsigned int			xlimit;	unsigned int			ylimit;	struct ts_sample		last[NR_LAST];};/* * We have 4 complete samples.  Calculate the variance between each, * treating X and Y values separately.  Then pick the two with the * least variance, and average them. */static intvariance_calculate(struct tslib_variance *var, struct ts_sample *samp,		   struct ts_sample *s){	int i, j;	int diff_x, min_x, i_x, j_x;	int diff_y, min_y, i_y, j_y;	int diff_p, min_p, i_p, j_p;	min_x = INT_MAX;	min_y = INT_MAX;	min_p = INT_MAX;	for (i = 0; i < var->nr - 1; i++) {		for (j = i + 1; j < var->nr; j++) {			/*			 * Calculate the variance between sample 'i'			 * and sample 'j'.  X and Y values are treated			 * separately.			 */			diff_x = var->last[i].x - var->last[j].x;			if (diff_x < 0)				diff_x = -diff_x;			diff_y = var->last[i].y - var->last[j].y;			if (diff_y < 0)				diff_y = -diff_y;			diff_p = var->last[i].pressure - var->last[j].pressure;			if (diff_p < 0)				diff_p = -diff_p;			/*			 * Is the variance between any two samples too large?			 */			if (diff_x > var->xlimit || diff_y > var->ylimit)				return 0;			/*			 * Find the minimum X variance.			 */			if (min_x > diff_x) {				min_x = diff_x;				i_x = i;				j_x = j;			}			/*			 * Find the minimum Y variance.			 */			if (min_y > diff_y) {				min_y = diff_y;				i_y = i;				j_y = j;			}			if (min_p > diff_p) {				min_p = diff_p;				i_p = i;				j_p = j;			}		}	}	samp->x		 = (var->last[i_x].x + var->last[j_x].x) / 2;	samp->y		 = (var->last[i_y].y + var->last[j_y].y) / 2;	samp->pressure   = (var->last[i_p].pressure + var->last[j_p].pressure) / 2;	samp->tv.tv_sec  = s->tv.tv_sec;	samp->tv.tv_usec = s->tv.tv_usec;	return 1;}static int variance_read(struct tslib_module_info *info, struct ts_sample *samp, int nr){	struct tslib_variance *var = (struct tslib_variance *)info;	struct ts_sample *s;	int ret;	ret = info->next->ops->read(info->next, samp, nr);	if (ret >= 0) {		int nr = 0;		for (s = samp; s < samp + ret; s++) {			if (s->pressure < var->pthreshold) {				/*				 * Pen was released.  Reset our state and				 * pass up the release information.				 *///				samp[nr].x = 0;//				samp[nr].y = 0;				samp[nr].pressure = s->pressure;				samp[nr].tv.tv_sec = s->tv.tv_sec;				samp[nr].tv.tv_usec = s->tv.tv_usec;				nr++;				var->nr = 0;				continue;			} else if (var->nr == -1) {				/*				 * Pen was pressed.  Inform upper layers				 * immediately.				 */				samp[nr] = *s;				nr++;			}			if (var->nr >= 0) {				var->last[var->nr].x = s->x;				var->last[var->nr].y = s->y;				var->last[var->nr].pressure = s->pressure;			}			var->nr++;			if (var->nr == NR_LAST) {				if (variance_calculate(var, samp + nr, s))					nr++;				var->nr = 0;			}		}		ret = nr;	}	return ret;}static int variance_fini(struct tslib_module_info *info){	free(info);}static const struct tslib_ops variance_ops ={	read:	variance_read,	fini:	variance_fini,};static int variance_limit(struct tslib_module_info *inf, char *str, void *data){	struct tslib_variance *var = (struct tslib_variance *)inf;	unsigned long v;	int err = errno;	v = strtoul(str, NULL, 0);	if (v == ULONG_MAX && errno == ERANGE)		return -1;	errno = err;	switch ((int)data) {	case 1:		var->xlimit = v;		break;	case 2:		var->ylimit = v;		break;	case 3:		var->pthreshold = v;		break;	default:		return -1;	}	return 0;}static const struct tslib_vars variance_vars[] ={	{ "xlimit",	(void *)1, variance_limit },	{ "ylimit",	(void *)2, variance_limit },	{ "pthreshold",	(void *)3, variance_limit }};#define NR_VARS (sizeof(variance_vars) / sizeof(variance_vars[0]))struct tslib_module_info *mod_init(struct tsdev *dev, const char *params){	struct tslib_variance *var;	var = malloc(sizeof(struct tslib_variance));	if (var == NULL)		return NULL;	var->module.ops = &variance_ops;	var->nr = -1;	var->xlimit = 160;	var->ylimit = 160;	var->pthreshold = 100;	if (tslib_parse_vars(&var->module, variance_vars, NR_VARS, params)) {		free(var);		return NULL;	}	return &var->module;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品专区在线影院重磅| 7777精品伊人久久久大香线蕉最新版 | 日韩精品一区二区在线| 国产日韩v精品一区二区| 视频在线观看一区| 色国产综合视频| 国产欧美日韩不卡免费| 久久精品国产精品亚洲综合| 91精品福利在线| 中文字幕一区免费在线观看 | 亚洲另类在线一区| 国产凹凸在线观看一区二区| 欧美一级搡bbbb搡bbbb| 一级女性全黄久久生活片免费| 国产激情一区二区三区四区 | 一本大道av伊人久久综合| 国产亚洲欧洲一区高清在线观看| 日韩成人一区二区三区在线观看| 色婷婷综合久色| 中文字幕在线不卡视频| 国产成人激情av| 精品成人一区二区三区| 蜜臀av亚洲一区中文字幕| 欧美日韩精品欧美日韩精品一 | 国产一区二区主播在线| 91精品在线观看入口| 亚洲国产精品影院| 在线看不卡av| 伊人一区二区三区| 91免费观看国产| 亚洲乱码国产乱码精品精可以看 | 国产精品18久久久久| 精品久久久久久久久久久久包黑料 | 欧美肥妇bbw| 亚洲第一综合色| 欧日韩精品视频| 一区二区欧美视频| 在线观看www91| 一区二区高清在线| 在线观看免费成人| 亚洲成人精品影院| 777欧美精品| 美女诱惑一区二区| 日韩精品在线一区二区| 精品一区二区免费视频| 久久蜜桃av一区二区天堂| 国产精品乡下勾搭老头1| 久久女同精品一区二区| 国产成人午夜99999| 中文在线一区二区| 成人av网站大全| 亚洲色图视频免费播放| 欧美亚洲综合一区| 天天色综合天天| 精品国一区二区三区| 国产精品亚洲人在线观看| 国产精品麻豆一区二区| 91在线你懂得| 亚洲国产欧美日韩另类综合| 555www色欧美视频| 极品少妇xxxx精品少妇| 亚洲国产精品传媒在线观看| 91老师片黄在线观看| 香蕉乱码成人久久天堂爱免费| 欧美一区二区三区四区在线观看 | 天堂va蜜桃一区二区三区| 欧美一卡二卡三卡| 国产成人超碰人人澡人人澡| 中文字幕在线视频一区| 在线观看亚洲精品视频| 爽好久久久欧美精品| 久久综合视频网| 99精品在线免费| 亚洲gay无套男同| 久久一二三国产| 色综合久久久久综合| 日本欧美在线看| 国产丝袜美腿一区二区三区| 日本韩国精品在线| 免费人成网站在线观看欧美高清| 国产欧美日本一区视频| 欧洲激情一区二区| 激情偷乱视频一区二区三区| 中文字幕制服丝袜一区二区三区| 欧美日韩精品一区二区三区| 韩国一区二区视频| 亚洲男女一区二区三区| 欧美一区二区免费视频| 成人视屏免费看| 天堂影院一区二区| 国产日韩一级二级三级| 欧美日韩一区小说| 国产成都精品91一区二区三| 亚洲成人一区二区在线观看| 国产日韩欧美精品一区| 欧美无乱码久久久免费午夜一区 | 久久国产麻豆精品| 亚洲图片欧美激情| 日韩欧美高清dvd碟片| 91网上在线视频| 国产原创一区二区三区| 亚洲成人在线观看视频| 国产精品久久久久久久久快鸭| 日韩一区二区免费在线观看| 91色视频在线| 黑人巨大精品欧美一区| 亚洲成人高清在线| 国产精品视频你懂的| 日韩欧美三级在线| 在线观看av一区| 国产不卡视频一区| 免费观看日韩av| 亚洲成人av中文| 亚洲色图19p| 亚洲国产精品二十页| 日韩欧美另类在线| 欧美中文字幕久久| 99久久婷婷国产综合精品电影 | 人人超碰91尤物精品国产| 亚洲精品亚洲人成人网在线播放| 久久精品一级爱片| 欧美一三区三区四区免费在线看| 在线欧美一区二区| 波波电影院一区二区三区| 久久99国产精品久久99| 日韩电影在线观看一区| 亚洲国产成人va在线观看天堂| 国产精品美女久久久久久久网站| 精品欧美一区二区久久| 4hu四虎永久在线影院成人| 色中色一区二区| voyeur盗摄精品| 国产成人免费视频网站| 久久疯狂做爰流白浆xx| 日韩黄色免费电影| 五月天激情小说综合| 亚洲女厕所小便bbb| 中文字幕一区二区三区不卡在线| 久久久久国产精品麻豆| 26uuu精品一区二区在线观看| 日韩视频免费观看高清完整版在线观看 | 日韩精品一二三四| 亚洲成国产人片在线观看| 亚洲久本草在线中文字幕| 亚洲欧美日韩小说| 自拍偷拍欧美激情| 成人免费在线观看入口| 日韩久久一区二区| 亚洲视频 欧洲视频| 中文字幕在线观看不卡视频| 中文字幕一区二区三区精华液 | 日韩美女视频19| 亚洲乱码国产乱码精品精小说 | 亚洲成人午夜影院| 亚洲第一电影网| 日韩电影免费一区| 免费看日韩精品| 加勒比av一区二区| 国产一区二区三区| 国产成人免费高清| 成人一区二区三区视频在线观看| 国产69精品久久久久毛片| 成人午夜在线视频| 成人黄色软件下载| 99热99精品| 在线视频国内自拍亚洲视频| 欧美日韩高清在线| 欧美一级黄色大片| 久久亚洲一区二区三区明星换脸 | 555www色欧美视频| 日韩精品一区二区三区中文精品| 久久久99精品久久| 综合精品久久久| 五月婷婷激情综合| 麻豆精品国产传媒mv男同| 国产成人午夜99999| 91日韩在线专区| 欧美乱妇23p| 久久香蕉国产线看观看99| 国产精品久久看| 亚洲成人手机在线| 久久99精品久久久久| 东方aⅴ免费观看久久av| 91网站黄www| 日韩一区二区免费在线观看| 国产欧美一区二区精品性| 亚洲精品免费在线| 日本亚洲视频在线| 成人一级片在线观看| 欧美性做爰猛烈叫床潮| 欧美成人激情免费网| ...xxx性欧美| 亚洲成人精品影院| 国产精品一区二区黑丝| 色女孩综合影院| 欧美成人精品高清在线播放| 一区在线观看视频| 日本午夜精品视频在线观看| 成人永久看片免费视频天堂| 欧美日本免费一区二区三区|