X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fpl_gun_ts.c;h=2c022513c812f46774066b934731e6da08f4bfc4;hp=63cf33f9b89126f6de75dcfeb5f88a2a44f26a41;hb=33400707ded1b72c10c7ed70f925066aeae86f45;hpb=4c08b9e7dd350a48fc3e0515913d6ccc8b15e5ae diff --git a/frontend/pl_gun_ts.c b/frontend/pl_gun_ts.c index 63cf33f9..2c022513 100644 --- a/frontend/pl_gun_ts.c +++ b/frontend/pl_gun_ts.c @@ -19,7 +19,8 @@ static int gun_x, gun_y, gun_in; static int ts_multiplier_x, ts_multiplier_y, ts_offs_x, ts_offs_y; -static int (*pts_read)(struct tsdev *dev, struct ts_sample *sample, int nr); +int (*pts_read)(struct tsdev *dev, struct ts_sample *sample, int nr); +int (*pts_fd)(struct tsdev *dev); #define limit(v, min, max) \ if (v < min) v = min; \ @@ -77,9 +78,9 @@ struct tsdev *pl_gun_ts_init(void) tsdevname = "/dev/input/touchscreen0"; // avoid hard dep on tslib - ltsh = dlopen("/usr/lib/libts-1.0.so.0", RTLD_LAZY); + ltsh = dlopen("/usr/lib/libts-1.0.so.0", RTLD_NOW|RTLD_GLOBAL); if (ltsh == NULL) - ltsh = dlopen("/usr/lib/libts-0.0.so.0", RTLD_LAZY); + ltsh = dlopen("/usr/lib/libts-0.0.so.0", RTLD_NOW|RTLD_GLOBAL); if (ltsh == NULL) { fprintf(stderr, "%s\n", dlerror()); goto fail; @@ -88,8 +89,10 @@ struct tsdev *pl_gun_ts_init(void) pts_open = dlsym(ltsh, "ts_open"); pts_config = dlsym(ltsh, "ts_config"); pts_read = dlsym(ltsh, "ts_read"); + pts_fd = dlsym(ltsh, "ts_fd"); pts_close = dlsym(ltsh, "ts_close"); - if (pts_open == NULL || pts_config == NULL || pts_read == NULL || pts_close == NULL) { + if (pts_open == NULL || pts_config == NULL || pts_read == NULL + || pts_fd == NULL || pts_close == NULL) { fprintf(stderr, "%s\n", dlerror()); goto fail_dlsym; } @@ -102,11 +105,15 @@ struct tsdev *pl_gun_ts_init(void) // FIXME: we should be able to get this somewhere // the problem is this doesn't always match resolution due to different display modes +#ifdef __ARM_ARCH_7A__ pl_set_gun_rect(0, 0, 800, 480); +#else + pl_set_gun_rect(0, 0, 320, 240); +#endif return ts; fail_config: - pts_close(ltsh); + pts_close(ts); fail_open: fail_dlsym: dlclose(ltsh);