1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
/*
* tslib/tests/ts_print.c
*
* Copyright (C) 2002 Douglas Lowder
* Just prints touchscreen events -- does not paint them on framebuffer
*
* This file is placed under the GPL. Please see the file
* COPYING for more details.
*
* SPDX-License-Identifier: GPL-2.0+
*
*
* Basic test program for touchscreen library.
*/
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <errno.h>
#include "tslib.h"
static void usage(char **argv)
{
ts_print_ascii_logo(16);
printf("%s", tslib_version());
printf("\n");
printf("Usage: %s [--raw]\n", argv[0]);
printf("\n");
printf("-r --raw\n");
printf(" don't apply filter modules. use what module_raw\n");
printf(" delivers directly. This is equivalent to\n");
printf(" running the ts_print_raw program\n");
printf("-h --help\n");
printf(" print this help text\n");
printf("-v --version\n");
printf(" print version information only\n");
}
int main(int argc, char **argv)
{
struct tsdev *ts;
short raw = 0;
while (1) {
const struct option long_options[] = {
{ "version", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
{ "raw", no_argument, NULL, 'r' },
};
int option_index = 0;
int c = getopt_long(argc, argv, "vrh", long_options, &option_index);
errno = 0;
if (c == -1)
break;
switch (c) {
case 'r':
raw = 1;
break;
case 'v':
printf("%s", tslib_version());
return 0;
case 'h':
usage(argv);
return 0;
default:
usage(argv);
return 0;
}
if (errno) {
char str[9];
sprintf(str, "option ?");
str[7] = c & 0xff;
perror(str);
}
}
ts = ts_setup(NULL, 0);
if (!ts) {
perror("ts_setup");
exit(1);
}
while (1) {
struct ts_sample samp;
int ret;
if (raw)
ret = ts_read_raw(ts, &samp, 1);
else
ret = ts_read(ts, &samp, 1);
if (ret < 0) {
perror("ts_read");
ts_close(ts);
exit(1);
}
if (ret != 1)
continue;
printf("%ld.%06ld: %6d %6d %6d\n", samp.tv.tv_sec, samp.tv.tv_usec, samp.x, samp.y, samp.pressure);
}
ts_close(ts);
}
|