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

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

?? variance.c

?? 觸摸屏校驗
?? 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.6 2005/02/26 01:47:23 kergoth Exp $ * * Variance filter for touchscreen values. * * Problem: some touchscreens are sampled very roughly, thus even if * you hold the pen still, the samples can differ, sometimes substantially. * The worst happens when electric noise during sampling causes the result * to be substantially different from the real pen position; this causes * the mouse cursor to suddenly "jump" and then return back. * * Solution: delay sampled data by one timeslot. If we see that the last * sample read differs too much, we mark it as "suspicious". If next sample * read is close to the sample before the "suspicious", the suspicious sample * is dropped, otherwise we consider that a quick pen movement is in progress * and pass through both the "suspicious" sample and the sample after it. */#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <limits.h>#include "tslib.h"#include "tslib-filter.h"struct tslib_variance {	struct tslib_module_info module;	int delta;        struct ts_sample last;        struct ts_sample noise;	unsigned int flags;#define VAR_PENDOWN		0x00000001#define VAR_LASTVALID		0x00000002#define VAR_NOISEVALID		0x00000004#define VAR_SUBMITNOISE		0x00000008};static int sqr (int x){	return x * x;}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 cur;	int count = 0, dist;	while (count < nr) {		if (var->flags & VAR_SUBMITNOISE) {			cur = var->noise;			var->flags &= ~VAR_SUBMITNOISE;		} else {			if (info->next->ops->read(info->next, &cur, 1) < 1)				return count;		}		if (cur.pressure == 0) {			/* Flush the queue immediately when the pen is just			 * released, otherwise the previous layer will			 * get the pen up notification too late. This 			 * will happen if info->next->ops->read() blocks.			 */			if (var->flags & VAR_PENDOWN) {				var->flags |= VAR_SUBMITNOISE;				var->noise = cur;			}			/* Reset the state machine on pen up events. */			var->flags &= ~(VAR_PENDOWN | VAR_NOISEVALID | VAR_LASTVALID);			goto acceptsample;		} else			var->flags |= VAR_PENDOWN;		if (!(var->flags & VAR_LASTVALID)) {			var->last = cur;			var->flags |= VAR_LASTVALID;			continue;		}		if (var->flags & VAR_PENDOWN) {			/* Compute the distance between last sample and current */			dist = sqr (cur.x - var->last.x) +			       sqr (cur.y - var->last.y);			if (dist > var->delta) {				/* Do we suspect the previous sample was a noise? */				if (var->flags & VAR_NOISEVALID) {					/* Two "noises": it's just a quick pen movement */					samp [count++] = var->last = var->noise;					var->flags = (var->flags & ~VAR_NOISEVALID) |						VAR_SUBMITNOISE;				} else					var->flags |= VAR_NOISEVALID;				/* The pen jumped too far, maybe it's a noise ... */				var->noise = cur;				continue;			} else				var->flags &= ~VAR_NOISEVALID;		}acceptsample:#ifdef DEBUG		fprintf(stderr,"VARIANCE----------------> %d %d %d\n",			var->last.x, var->last.y, var->last.pressure);#endif		samp [count++] = var->last;		var->last = cur;	}	return count;}static int variance_fini(struct tslib_module_info *info){	free(info);        return 0;}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->delta = v;		break;	default:		return -1;	}	return 0;}static const struct tslib_vars variance_vars[] ={	{ "delta",	(void *)1, variance_limit },};#define NR_VARS (sizeof(variance_vars) / sizeof(variance_vars[0]))TSAPI 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->delta = 30;	var->flags = 0;	if (tslib_parse_vars(&var->module, variance_vars, NR_VARS, params)) {		free(var);		return NULL;	}        var->delta = sqr (var->delta);	return &var->module;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉久久夜色精品国产使用方法 | 欧美亚一区二区| 国产不卡免费视频| 国产一区二区福利视频| 国产一区二区剧情av在线| 韩国成人在线视频| 丁香啪啪综合成人亚洲小说 | 久久久久99精品一区| 精品国产第一区二区三区观看体验| 欧美一区二区网站| 亚洲精品在线一区二区| 久久美女艺术照精彩视频福利播放| 精品少妇一区二区三区在线播放| 精品国产乱码久久久久久1区2区| 久久精品一二三| 国产精品乱码一区二区三区软件 | 日韩免费福利电影在线观看| 日韩欧美亚洲一区二区| 国产日本亚洲高清| 亚洲精品视频观看| 奇米精品一区二区三区在线观看 | 亚洲国产日韩综合久久精品| 亚洲三级在线免费| 亚洲黄网站在线观看| 日韩电影在线免费观看| 一区二区三区四区视频精品免费| 综合久久久久综合| 免费日韩伦理电影| 成人高清在线视频| 欧美一区二区三区四区久久| 久久色中文字幕| 一区二区高清视频在线观看| 捆绑变态av一区二区三区| 丰满岳乱妇一区二区三区| 91福利精品第一导航| 精品卡一卡二卡三卡四在线| 亚洲欧美怡红院| 久久精品国产澳门| 欧美在线免费视屏| 日本一区二区视频在线| 丝袜诱惑制服诱惑色一区在线观看| 精品系列免费在线观看| 欧美无乱码久久久免费午夜一区 | 国产东北露脸精品视频| 欧美亚洲国产怡红院影院| 久久久久国产精品厨房| 男女视频一区二区| 在线观看三级视频欧美| 欧美国产日韩一二三区| 日韩精品一二区| 欧美自拍偷拍午夜视频| 久久蜜桃av一区精品变态类天堂| 无吗不卡中文字幕| 99久久精品国产一区| 精品理论电影在线| 日本不卡不码高清免费观看| 色综合欧美在线视频区| 欧美国产一区二区| 国产另类ts人妖一区二区| 欧美一区二区三区视频| 亚洲国产人成综合网站| 成人免费高清在线| 国产欧美一区二区三区在线看蜜臀 | 在线视频一区二区免费| 久久嫩草精品久久久精品| 日韩电影免费一区| 欧美日韩情趣电影| 一区二区高清在线| 在线观看区一区二| 亚洲一线二线三线视频| 色素色在线综合| 亚洲欧美国产高清| 色美美综合视频| 一区二区成人在线| 欧美精品免费视频| 日韩在线一区二区| 91精品在线观看入口| 三级影片在线观看欧美日韩一区二区 | 粉嫩av一区二区三区在线播放| 日韩免费成人网| 国产老女人精品毛片久久| 久久精品人人爽人人爽| 成人免费视频一区二区| 1000部国产精品成人观看| 91在线porny国产在线看| 亚洲在线中文字幕| 欧美日韩视频不卡| 狠狠色狠狠色综合系列| 国产欧美日韩不卡免费| 99久久免费精品| 亚洲伊人色欲综合网| 91精品国产综合久久福利| 久久精品噜噜噜成人av农村| 久久久久亚洲综合| 91日韩精品一区| 日韩精彩视频在线观看| 精品av久久707| av网站免费线看精品| 午夜免费久久看| 26uuuu精品一区二区| 91在线看国产| 久久精品国产亚洲a| 国产精品欧美一级免费| 欧美中文字幕一区二区三区亚洲| 日韩av在线播放中文字幕| 国产日产欧美一区二区三区| 欧美午夜不卡视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲免费av网站| 91精品国产乱| 91欧美激情一区二区三区成人| 午夜a成v人精品| 久久久久一区二区三区四区| 在线观看不卡一区| 国产福利一区二区三区在线视频| 一区二区三区四区蜜桃| 国产欧美一区二区在线| 91精品国产综合久久久久久 | 欧美tk—视频vk| 在线一区二区视频| 粉嫩一区二区三区在线看| 日韩av中文在线观看| 亚洲人成在线观看一区二区| 日韩一二在线观看| 在线欧美日韩精品| 不卡免费追剧大全电视剧网站| 视频一区视频二区在线观看| 最新国产成人在线观看| 久久综合99re88久久爱| 不卡一区二区中文字幕| 久久er精品视频| 五月激情丁香一区二区三区| 一区二区三区中文字幕精品精品| 久久久久青草大香线综合精品| 日韩一区二区三区视频在线| 欧美区在线观看| 欧美色图激情小说| 91麻豆免费观看| 99re视频这里只有精品| 国产成人精品在线看| 精品在线视频一区| 麻豆高清免费国产一区| 肉色丝袜一区二区| 亚洲成av人片| 视频一区欧美精品| 免费在线观看视频一区| 日韩av成人高清| 日本网站在线观看一区二区三区 | 久久99精品一区二区三区| 三级欧美在线一区| 美女国产一区二区| 久久精品国产网站| 黄页网站大全一区二区| 国产在线视视频有精品| 韩国女主播成人在线观看| 国产一区二区电影| 丁香桃色午夜亚洲一区二区三区| 国产成人精品亚洲777人妖 | 免费观看在线色综合| 久久99久久久欧美国产| 国产在线乱码一区二区三区| 国产专区欧美精品| 99国产精品视频免费观看| 91免费看视频| 6080yy午夜一二三区久久| 精品国产乱码久久久久久夜甘婷婷 | 免费成人在线观看视频| 久久国产欧美日韩精品| 国产尤物一区二区在线| www.久久久久久久久| 在线欧美小视频| 91精品国产综合久久久久久| 久久免费偷拍视频| 亚洲色图视频免费播放| 亚洲一级片在线观看| 免费人成精品欧美精品| 国产精品一区二区在线播放 | 国产精品久99| 亚洲国产另类精品专区| 激情综合色播激情啊| 91丨porny丨中文| 欧美一二三四在线| 中文字幕乱码日本亚洲一区二区 | 日韩欧美一级片| 中文字幕精品—区二区四季| 亚洲理论在线观看| 久久精品国产第一区二区三区| www.欧美亚洲| 日韩一区二区在线观看视频| 中文av一区二区| 日本不卡一区二区| 成人国产一区二区三区精品| 91精品国产一区二区| 中文字幕中文乱码欧美一区二区| 亚洲国产一区在线观看| 成人av在线观| 欧美mv日韩mv国产网站| 亚洲高清免费视频| 99re这里都是精品| 国产亲近乱来精品视频|