Root/target/linux/s3c24xx/files-2.6.30/include/linux/touchscreen/ts_filter_chain.h

1#ifndef __TS_FILTER_CHAIN_H__
2#define __TS_FILTER_CHAIN_H__
3
4/*
5 * Touchscreen filter chains.
6 *
7 * (c) 2008,2009 Andy Green <andy@openmoko.com>
8 */
9
10#include "ts_filter.h"
11
12#include <linux/err.h>
13
14struct ts_filter_chain_configuration {
15    /* API to use. */
16    const struct ts_filter_api *api;
17    /* Generic filter configuration. Different for each filter. */
18    const struct ts_filter_configuration *config;
19};
20
21struct ts_filter_chain;
22
23#ifdef CONFIG_TOUCHSCREEN_FILTER
24
25/*
26 * Create a filter chain. It will allocate an array of
27 * null-terminated pointers to filters. On error it will return
28 * an error you can check with IS_ERR.
29 */
30extern struct ts_filter_chain *ts_filter_chain_create(
31    struct platform_device *pdev,
32    const struct ts_filter_chain_configuration conf[],
33    int count_coords);
34
35/* Destroy the chain. */
36extern void ts_filter_chain_destroy(struct ts_filter_chain *c);
37
38/* Clear the filter chain. */
39extern void ts_filter_chain_clear(struct ts_filter_chain *c);
40
41/*
42 * Try to get one point. Returns 0 if no points are available.
43 * coords will be used as temporal space, thus you supply a point
44 * using coords but you shouldn't rely on its value on return unless
45 * it returns a nonzero value that is not -1.
46 * If one of the filters find an error then this function will
47 * return -1.
48 */
49int ts_filter_chain_feed(struct ts_filter_chain *c, int *coords);
50
51#else /* !CONFIG_TOUCHSCREEN_FILTER */
52#define ts_filter_chain_create(pdev, config, count_coords) (NULL)
53#define ts_filter_chain_destroy(c) do { } while (0)
54#define ts_filter_chain_clear(c) do { } while (0)
55#define ts_filter_chain_feed(c, coords) (1)
56#endif
57
58#endif
59

Archive Download this file



interactive