tslib-maemo: die, die, die
authorRichard Purdie <richard@openedhand.com>
Tue, 26 Sep 2006 09:51:17 +0000 (09:51 +0000)
committerRichard Purdie <richard@openedhand.com>
Tue, 26 Sep 2006 09:51:17 +0000 (09:51 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@764 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/tslib/tslib-maemo/multievent.patch [deleted file]
meta/packages/tslib/tslib-maemo/nokia770/ts.conf [deleted file]
meta/packages/tslib/tslib-maemo/nokia770/tslib.sh [deleted file]
meta/packages/tslib/tslib-maemo/ts.conf [deleted file]
meta/packages/tslib/tslib-maemo_0.0.1-15.bb [deleted file]

diff --git a/meta/packages/tslib/tslib-maemo/multievent.patch b/meta/packages/tslib/tslib-maemo/multievent.patch
deleted file mode 100644 (file)
index 854e7af..0000000
+++ /dev/null
@@ -1,843 +0,0 @@
---- tslib/plugins/linear.c~multievent
-+++ tslib/plugins/linear.c
-@@ -39,14 +39,12 @@
- linear_read(struct tslib_module_info *info, struct ts_sample *samp, int nr)
- {
-       struct tslib_linear *lin = (struct tslib_linear *)info;
--      int ret;
-+      int ret, i = 0;
-       int xtemp,ytemp;
-       ret = info->next->ops->read(info->next, samp, nr);
-       if (ret >= 0) {
--              int nr;
--
--              for (nr = 0; nr < ret; nr++, samp++) {
-+              for (i = 0; i < ret; i++, samp++) {
- #ifdef DEBUG
-                       fprintf(stderr,"BEFORE CALIB--------------------> %d %d %d\n",samp->x, samp->y, samp->pressure);
- #endif /*DEBUG*/
-@@ -66,6 +64,7 @@
-                               samp->y = tmp;
-                       }
-               }
-+              ret = i;
-       }
-       return ret;
---- tslib/plugins/dejitter.c~multievent
-+++ tslib/plugins/dejitter.c
-@@ -24,7 +24,6 @@
- struct tslib_threshold {
-       struct tslib_module_info        module;
--      int                     pthreshold;
-       int                     xdelta;
-       int                     ydelta;
-       int                     delta2;
-@@ -36,40 +35,28 @@
- static int threshold_read(struct tslib_module_info *info, struct ts_sample *samp, int nr)
- {
-       struct tslib_threshold *thr = (struct tslib_threshold *)info;
--      struct ts_sample *s;
--      int ret;
-+      struct ts_sample *src = samp, *dest = samp;
-+      int ret, i = 0;
-       ret = info->next->ops->read(info->next, samp, nr);
-       if (ret >= 0) {
--              int nr = 0;
--
--              for (s = samp; s < samp + ret; s++) {
-+              for (i = 0; i < ret; i++, samp++) {
-                       int dr2;
- #ifdef DEBUG
--                      fprintf(stderr,"BEFORE DEJITTER---------------> %d %d %d\n",s->x,s->y,s->pressure);
-+                      fprintf(stderr,"BEFORE DEJITTER---------------> %d %d %d\n", samp->x, samp->y, samp->pressure);
- #endif /*DEBUG*/
--                      thr->down = (s->pressure >= thr->pthreshold);
--                      if (thr->down) {
--                              dr2 = (thr->x - s->x)*(thr->x - s->x) 
--                                      + (thr->y - s->y)*(thr->y - s->y);
--                              if(dr2 < thr->delta2) {
--                                      s->x = thr->x;
--                                      s->y = thr->y;
--                              } else {
--                                      thr->x = s->x;
--                                      thr->y = s->y;
--                              }
--
-+                      dr2 = (thr->x - samp->x)*(thr->x - samp->x) 
-+                              + (thr->y - samp->y)*(thr->y - samp->y);
-+                      if(dr2 < thr->delta2) {
-+                              samp->x = thr->x;
-+                              samp->y = thr->y;
-                       } else {
--                              s->x = thr->x;
--                              s->y = thr->y;
-+                              thr->x = samp->x;
-+                              thr->y = samp->y;
-                       }
--
--
--                      samp[nr++] = *s;
-               }
--              ret = nr;
-+              ret = i;
-       }
-       return ret;
- }
-@@ -106,10 +93,6 @@
-               thr->ydelta = v;
-               break;
--      case 3:
--              thr->pthreshold = v;
--              break;
--
-       default:
-               return -1;
-       }
-@@ -120,7 +103,6 @@
- {
-       { "xdelta",     (void *)1, threshold_limit },
-       { "ydelta",     (void *)2, threshold_limit },
--      { "pthreshold", (void *)3, threshold_limit }
- };
- //#define NR_VARS (sizeof(threshold_vars) / sizeof(threshold_vars[0]))
-@@ -138,7 +120,6 @@
-       thr->xdelta = 10;
-       thr->ydelta = 10;
--      thr->pthreshold = 100;
-       if (tslib_parse_vars(&thr->module, threshold_vars, NR_VARS, params)) {
-               free(thr);
---- tslib/plugins/variance.c~multievent
-+++ tslib/plugins/variance.c
-@@ -9,25 +9,36 @@
-  * $Id: variance.c,v 1.3 2002/11/08 23:28:55 dlowder Exp $
-  *
-  * Variance filter for touchscreen values
-+ *
-+ * Policy question (applies to all tslib modules that consume events):
-+ *    1) User requests a read of 5 events using nr.
-+ *    2) Lower layers return us 4 events.
-+ *    3) Perform variance calculation, we now only have _1_ event.
-+ *    4) Do we, a) duplicate this data across the user requested 4 events,
-+ *              b) push up the single event
-+ *              c) loop on the read from the lower layers to obtain
-+ *                 the user's requested number of events, unless we hit
-+ *                 a pen_up.
-  */
-+
- #include <errno.h>
- #include <stdlib.h>
- #include <string.h>
- #include <limits.h>
--
- #include <stdio.h>
- #include "tslib.h"
- #include "tslib-filter.h"
-+#define NR_INIT -1
- #define NR_LAST       4
- struct tslib_variance {
-       struct tslib_module_info        module;
-       int                             nr;
--      unsigned int                    pthreshold;
-       unsigned int                    xlimit;
-       unsigned int                    ylimit;
-+      unsigned int                    pthreshold;
-       struct ts_sample                last[NR_LAST];
- };
-@@ -37,8 +48,7 @@
-  * least variance, and average them.
-  */
- static int
--variance_calculate(struct tslib_variance *var, struct ts_sample *samp,
--                 struct ts_sample *s)
-+variance_calculate(struct tslib_variance *var, struct ts_sample *dest, struct ts_sample *src)
- {
-       int i, j;
-       int diff_x, min_x, i_x, j_x;
-@@ -100,11 +110,11 @@
-               }
-       }
--      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;
-+      dest->x          = (var->last[i_x].x + var->last[j_x].x) / 2;
-+      dest->y          = (var->last[i_y].y + var->last[j_y].y) / 2;
-+      dest->pressure   = (var->last[i_p].pressure + var->last[j_p].pressure) / 2;
-+      dest->tv.tv_sec  = src->tv.tv_sec;
-+      dest->tv.tv_usec = src->tv.tv_usec;
-       return 1;
- }
-@@ -112,55 +122,57 @@
- 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++;
-+      struct ts_sample *src = samp, *dest = samp;
-+      int ret, i = 0;
--                      if (var->nr == NR_LAST) {
--                              if (variance_calculate(var, samp + nr, s))
--                                      nr++;
--                              var->nr = 0;
-+      /*
-+       * NOTES:
-+       *
-+       * Loop on read, collecting events until we hit nr, unless
-+       * we hit a pen up or encounter a failure.
-+       */
-+      while ((i < nr) && (ret != -1)) {
-+              ret = info->next->ops->read(info->next, dest + i, nr - i);
-+              if (ret >= 0) {
-+                      for (src = dest + i; src < dest + ret; src++) {
-+                              if (src->pressure < var->pthreshold) {
-+                                      /* pen released, reset var->nr,
-+                                       * do a calc based on what we have so
-+                                       * far, and let this event flow up */
-+                                      if (variance_calculate(var, dest + i, src))
-+                                              i++;
-+                                      var->nr = NR_INIT;
-+                                      ret = -1; /* break outer loop, push up event */
-+                                      break;
-+                              } else if (var->nr == NR_INIT) {
-+                                      /*
-+                                       * First pen down event. Inform upper layers
-+                                       * immediately for responsiveness.
-+                                       */
-+                                      var->nr = 0;
-+                                      i++;
-+                                      ret = -1; /* break outer loop */
-+                                      break;
-+                              }
-+      
-+                              if (var->nr >= 0) {
-+                                      var->last[var->nr].x = src->x;
-+                                      var->last[var->nr].y = src->y;
-+                                      var->last[var->nr].pressure = src->pressure;
-+                              }
-+      
-+                              var->nr++;
-+      
-+                              if (var->nr == NR_LAST) {
-+                                      if (variance_calculate(var, dest + i, src))
-+                                              i++;
-+                                      var->nr = 0;
-+                              }
-                       }
-               }
--
--              ret = nr;
-       }
-+      /* if we've collected at least one event, send it up */
-+      if (i != 0) ret = i;
-       return ret;
- }
-@@ -196,10 +208,6 @@
-               var->ylimit = v;
-               break;
--      case 3:
--              var->pthreshold = v;
--              break;
--
-       default:
-               return -1;
-       }
-@@ -210,7 +218,6 @@
- {
-       { "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]))
-@@ -218,6 +225,7 @@
- struct tslib_module_info *mod_init(struct tsdev *dev, const char *params)
- {
-       struct tslib_variance *var;
-+      char *pthresvar;
-       var = malloc(sizeof(struct tslib_variance));
-       if (var == NULL)
-@@ -225,10 +233,15 @@
-       var->module.ops = &variance_ops;
--      var->nr = -1;
-+      var->nr = NR_INIT;
-       var->xlimit = 160;
-       var->ylimit = 160;
-       var->pthreshold = 100;
-+      pthresvar = getenv("TSLIB_PTHRES");
-+      if (pthresvar != NULL) {
-+              int p = strtol(pthresvar, (char **)NULL, 10);
-+              if (p != -1) var->pthreshold = p;
-+      }
-       if (tslib_parse_vars(&var->module, variance_vars, NR_VARS, params)) {
-               free(var);
---- tslib/README~multievent
-+++ tslib/README
-@@ -36,6 +36,19 @@
- usages.  They are by no means exhaustive, nor probably even good examples.
- They are basically the programs I used to test this library.
-+Module Creation Notes
-+=====================
-+
-+For those creating tslib modules, it is important to note a couple things with
-+regard to handling of the ability for a user to request more than one ts event
-+at a time.  The first thing to note is that the lower layers may send up less
-+events than the user requested, but only if that was a result of a pen release.
-+Next, your module should send up just as many events as the user requested in
-+nr.  If your module is one that consumes events, such as variance, then you
-+loop on the read from the lower layers, and only send the events up when
-+1) you have the number of events requested by the user, or 2) one of the events
-+from the lower layers was a pen release.
-+
- Module Parameters
- =================
---- tslib/src/ts_read_raw.c~multievent
-+++ tslib/src/ts_read_raw.c
-@@ -14,10 +14,10 @@
-  *
-  * Read raw pressure, x, y, and timestamp from a touchscreen device.
-  */
-+
- #include "config.h"
- #include <stdio.h>
--
- #include <stdlib.h>
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
-@@ -25,79 +25,27 @@
- #include <sys/time.h>
- #include <sys/types.h>
--#ifdef USE_INPUT_API
--#include <linux/input.h>
--#else
--struct ts_event  {   /* Used in UCB1x00 style touchscreens (the default) */
--      unsigned short pressure;
--      unsigned short x;
--      unsigned short y;
--      unsigned short pad;
--      struct timeval stamp;
--};
--struct h3600_ts_event { /* Used in the Compaq IPAQ */
--      unsigned short pressure;
--      unsigned short x;
--      unsigned short y;
--      unsigned short pad;
--};
--struct mk712_ts_event { /* Used in the Hitachi Webpad */
--      unsigned int header;
--      unsigned int x;
--      unsigned int y;
--      unsigned int reserved;
--};
--struct arctic2_ts_event { /* Used in the IBM Arctic II */
--      signed short pressure;
--      signed int x;
--      signed int y;
--      int millisecs;
--      int flags;
--};
--struct collie_ts_event { /* Used in the Sharp Zaurus SL-5000d and SL-5500 */
--      long y;
--      long x;
--      long pressure;
--      long long millisecs;
--};
--struct corgi_ts_event { /* Used in the Sharp Zaurus SL-C700 */
--      short pressure;
--      short x;
--      short y;
--      short millisecs;
--};
--#endif /* USE_INPUT_API */
--
- #include "tslib-private.h"
--int ts_read_raw(struct tsdev *ts, struct ts_sample *samp, int nr)
--{
- #ifdef USE_INPUT_API
-+#include <linux/input.h>
-+
-+static inline int get_input_event(struct tsdev *ts, struct ts_sample *samp) {
-       struct input_event ev;
--#else
--      struct ts_event *evt;
--      struct h3600_ts_event *hevt;
--      struct mk712_ts_event *mevt;
--      struct arctic2_ts_event *aevt;
--      struct collie_ts_event *collie_evt;
--      struct corgi_ts_event *corgi_evt;
--#endif /* USE_INPUT_API */
--      int ret;
--      int total = 0;
-+      struct timeval tv = {0, 0};
-+      fd_set fdset;
-+      int ret = 0;
--      char *tseventtype=NULL;
--      char *defaulttseventtype="UCB1x00";
-+      /* event vars */
-+      static int curr_x = 0, curr_y = 0;
-+      int curr_p = 0, next_x = 0, next_y = 0;
--#ifdef USE_INPUT_API
--      /* warning: maybe those static vars should be part of the tsdev struct? */
--      static int curr_x = 0, curr_y = 0, curr_p = 0;
--      static int got_curr_x = 0, got_curr_y = 0;
--      int got_curr_p = 0;
--      int next_x, next_y;
-+      /* state variables */
-+      int got_curr_x = 0, got_curr_y = 0, got_curr_p = 0;
-       int got_next_x = 0, got_next_y = 0;
-       int got_tstamp = 0;
--      while (total < nr) {
-+      while (1) {
-               ret = read(ts->fd, &ev, sizeof(struct input_event));
-               if (ret < sizeof(struct input_event)) break;
-@@ -146,177 +94,231 @@
-                       samp->tv = ev.time;
-               }
--              if ( (!got_curr_x || !got_curr_y) && !got_curr_p &&
--                   !got_next_x && !got_next_y ) {
--                      /*
--                       * The current event is not complete yet.
--                       * Give the kernel a chance to feed us more.
--                       */
--                      struct timeval tv = {0, 0};
--                      fd_set fdset;
--                      FD_ZERO(&fdset);
--                      FD_SET(ts->fd, &fdset);
--                      ret = select(ts->fd+1, &fdset, NULL, NULL, &tv);
--                      if (ret == 1) continue;
--                      if (ret == -1) break;
-+              if (got_curr_x && got_curr_y && got_curr_p) {
-+                      /* we have a complete event */
-+                      samp->x = curr_x;
-+                      samp->y = curr_y;
-+                      samp->pressure = curr_p;
-+                      ret = 0; /* indicate success */
-+                      if (got_next_x) curr_x = next_x;
-+                      if (got_next_y) curr_y = next_y;
-+                      break;
-               }
--              /* We consider having a complete ts event */
--              samp->x = curr_x;
--              samp->y = curr_y;
--              samp->pressure = curr_p;
--#ifdef DEBUG
--        fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
--#endif /*DEBUG*/
--              samp++;
--              total++;
--        
--              /* get ready for next event */
--              if (got_next_x) curr_x = next_x; else got_curr_x = 0;
--              if (got_next_y) curr_y = next_y; else got_curr_y = 0;
--              got_next_x = got_next_y = got_tstamp = 0;
-+              /*
-+               * The current event is not complete yet.
-+               * Give the kernel a chance to feed us more.
-+               */
-+              FD_ZERO(&fdset);
-+              FD_SET(ts->fd, &fdset);
-+              ret = select(ts->fd+1, &fdset, NULL, NULL, &tv);
-+              if (ret == 1) continue;
-+              if (ret == -1) break;
-       }
--      if (ret) ret = -1;
--      if (total) ret = total;
-+//    fprintf(stdout, "%s: returning %d\n", __FUNCTION__, ret);
-+      if (ret != 0) ret = -1;
-+      return ret;
-+}
-+
- #else
-+
-+struct ucb1x00_ts_event  {   /* Used in UCB1x00 style touchscreens (the default) */
-+      unsigned short pressure;
-+      unsigned short x;
-+      unsigned short y;
-+      unsigned short pad;
-+      struct timeval stamp;
-+};
-+struct h3600_ts_event { /* Used in the Compaq IPAQ */
-+      unsigned short pressure;
-+      unsigned short x;
-+      unsigned short y;
-+      unsigned short pad;
-+};
-+struct mk712_ts_event { /* Used in the Hitachi Webpad */
-+      unsigned int header;
-+      unsigned int x;
-+      unsigned int y;
-+      unsigned int reserved;
-+};
-+struct arctic2_ts_event { /* Used in the IBM Arctic II */
-+      signed short pressure;
-+      signed int x;
-+      signed int y;
-+      int millisecs;
-+      int flags;
-+};
-+struct collie_ts_event { /* Used in the Sharp Zaurus SL-5000d and SL-5500 */
-+      long y;
-+      long x;
-+      long pressure;
-+      long long millisecs;
-+};
-+struct corgi_ts_event { /* Used in the Sharp Zaurus SL-C700 */
-+      short pressure;
-+      short x;
-+      short y;
-+      short millisecs;
-+};
-+
-+static inline int get_ucb1x00_event(struct tsdev *ts, struct ts_sample *samp) {
-+      struct ucb1x00_ts_event evt;
-+      int ret = read(ts->fd, &evt, sizeof(struct ucb1x00_ts_event));
-+      if (ret > 0) {
-+              samp->x = evt.x;
-+              samp->y = evt.y;
-+              samp->pressure = evt.pressure;
-+              samp->tv.tv_usec = evt.stamp.tv_usec;
-+              samp->tv.tv_sec = evt.stamp.tv_sec;
-+              ret = 0; /* success */
-+      }
-+      return ret;
-+}
-+
-+static inline int get_h3600_event(struct tsdev *ts, struct ts_sample *samp) {
-+      struct h3600_ts_event evt;
-+      int ret = read(ts->fd, &evt, sizeof(struct h3600_ts_event));
-+      if (ret > 0) {
-+              samp->x = evt.x;
-+              samp->y = evt.y;
-+              samp->pressure = evt.pressure;
-+              gettimeofday(&samp->tv, NULL);
-+              ret = 0; /* success */
-+      }
-+      return ret;
-+}
-+
-+static inline int get_mk712_event(struct tsdev *ts, struct ts_sample *samp) {
-+      struct mk712_ts_event evt;
-+      int ret = read(ts->fd, &evt, sizeof(struct mk712_ts_event));
-+      if (ret > 0) {
-+              samp->x = (short)evt.x;
-+              samp->y = (short)evt.y;
-+              if(evt.header==0)
-+                      samp->pressure=1;
-+              else
-+                      samp->pressure=0;
-+              gettimeofday(&samp->tv, NULL);
-+              ret = 0; /* success */
-+      }
-+      return ret;
-+}
-+
-+static inline int get_arctic2_event(struct tsdev *ts, struct ts_sample *samp) {
-+      struct arctic2_ts_event evt;
-+      int ret = read(ts->fd, &evt, sizeof(struct arctic2_ts_event));
-+      if (ret > 0) {
-+              samp->x = (short)evt.x;
-+              samp->y = (short)evt.y;
-+              samp->pressure = evt.pressure;
-+              gettimeofday(&samp->tv, NULL);
-+              ret = 0; /* success */
-+      }
-+      return ret;
-+}
-+
-+static inline int get_collie_event(struct tsdev *ts, struct ts_sample *samp) {
-+      struct collie_ts_event evt;
-+      int ret = read(ts->fd, &evt, sizeof(struct collie_ts_event));
-+      if (ret > 0) {
-+              samp->x = evt.x;
-+              samp->y = evt.y;
-+              samp->pressure = evt.pressure;
-+              samp->tv.tv_usec = evt.millisecs % 1000;
-+              samp->tv.tv_sec = evt.millisecs / 1000;
-+              ret = 0; /* success */
-+      }
-+      return ret;
-+}
-+
-+static inline int get_corgi_event(struct tsdev *ts, struct ts_sample *samp) {
-+      struct corgi_ts_event evt;
-+      int ret = read(ts->fd, &evt, sizeof(struct corgi_ts_event));
-+      if (ret > 0) {
-+              samp->x = evt.x;
-+              samp->y = evt.y;
-+              samp->pressure = evt.pressure;
-+              samp->tv.tv_usec = evt.millisecs % 1000;
-+              samp->tv.tv_sec = evt.millisecs / 1000;
-+              ret = 0; /* success */
-+      }
-+      return ret;
-+}
-+
-+#endif
-+
-+int ts_read_raw(struct tsdev *ts, struct ts_sample *samp, int nr)
-+{
-+      int ret;
-+      int total = 0;
-+      int pen_down = 1;
-+      static short x_save = 0, y_save = 0;
-+      static int pthres = -1;
-+
-+#ifndef USE_INPUT_API
-+      char *tseventtype=NULL;
-+      char *defaulttseventtype="UCB1x00";
-       tseventtype = getenv("TSLIB_TSEVENTTYPE");
-       if(tseventtype==NULL) tseventtype=defaulttseventtype;
-+#endif
--      if( strcmp(tseventtype,"H3600") == 0) { /* iPAQ style h3600 touchscreen events */
--              hevt = alloca(sizeof(*hevt) * nr);
--              ret = read(ts->fd, hevt, sizeof(*hevt) * nr);
--              if(ret > 0) {
--                      int nr = ret / sizeof(*hevt);
--                      while(ret >= sizeof(*hevt)) {
--                              samp->x = hevt->x;
--                              samp->y = hevt->y;
--                              samp->pressure = hevt->pressure;
--#ifdef DEBUG
--        fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
--#endif /*DEBUG*/
--                              gettimeofday(&samp->tv,NULL);
--                              samp++;
--                              hevt++;
--                              ret -= sizeof(*hevt);
--                      }
--              } else {
--                      return -1;
--              }
--      } else if( strcmp(tseventtype,"MK712") == 0) { /* Hitachi Webpad events */
--              mevt = alloca(sizeof(*mevt) * nr);
--              ret = read(ts->fd, mevt, sizeof(*mevt) * nr);
--              if(ret > 0) {
--                      int nr = ret / sizeof(*mevt);
--                      while(ret >= sizeof(*mevt)) {
--                              samp->x = (short)mevt->x;
--                              samp->y = (short)mevt->y;
--                              if(mevt->header==0)
--                                      samp->pressure=1;
--                              else
--                                      samp->pressure=0;
--#ifdef DEBUG
--        fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
--#endif /*DEBUG*/
--                              gettimeofday(&samp->tv,NULL);
--                              samp++;
--                              mevt++;
--                              ret -= sizeof(*mevt);
--                      }
--              } else {
--                      return -1;
--              }
--
--      } else if( strcmp(tseventtype,"ARCTIC2") == 0) { /* IBM Arctic II events */
--              aevt = alloca(sizeof(*aevt) * nr);
--              ret = read(ts->fd, aevt, sizeof(*aevt) * nr);
--              if(ret > 0) {
--                      int nr = ret / sizeof(*aevt);
--                      while(ret >= sizeof(*aevt)) {
--                              samp->x = (short)aevt->x;
--                              samp->y = (short)aevt->y;
--                              samp->pressure = aevt->pressure;
--#ifdef DEBUG
--        fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
--#endif /*DEBUG*/
--                              gettimeofday(&samp->tv,NULL);
--                              samp++;
--                              aevt++;
--                              ret -= sizeof(*aevt);
--                      }
-+      while ((total < nr) && pen_down) {
-+//            fprintf(stdout, "total: %d, nr: %d\n", total, nr);
-+#ifdef USE_INPUT_API
-+              ret = get_input_event(ts, samp);
-+#else
-+              if (strcmp(tseventtype, "H3600") == 0) {
-+                      /* iPAQ style h3600 touchscreen events */
-+                      ret = get_h3600_event(ts, samp);
-+              } else if (strcmp(tseventtype, "MK712") == 0) {
-+                      /* Hitachi Webpad events */
-+                      ret = get_mk712_event(ts, samp);
-+              } else if (strcmp(tseventtype, "ARCTIC2") == 0) {
-+                      /* IBM Arctic II events */
-+                      ret = get_arctic2_event(ts, samp);
-+              } else if (strcmp(tseventtype, "COLLIE") == 0) {
-+                      /* Sharp Zaurus SL-5000d/5500 events */
-+                      ret = get_collie_event(ts, samp);
-+              } else if (strcmp(tseventtype,"CORGI") == 0) {
-+                      /* Sharp Zaurus SL-C700 events */
-+                      ret = get_corgi_event(ts, samp);
-               } else {
--                      return -1;
-+                      /* Use normal UCB1x00 type events */
-+                      ret = get_ucb1x00_event(ts, samp);
-               }
-+#endif
-+              if (ret != 0) break;
--      } else if( strcmp(tseventtype,"COLLIE") == 0) { /* Sharp Zaurus SL-5000d/5500 events */
--              collie_evt = alloca(sizeof(*collie_evt) * nr);
--              ret = read(ts->fd, collie_evt, sizeof(*collie_evt) * nr);
--              if(ret > 0) {
--                      int nr = ret / sizeof(*collie_evt);
--                      while(ret >= sizeof(*collie_evt)) {
--                              samp->x = collie_evt->x;
--                              samp->y = collie_evt->y;
--                              samp->pressure = collie_evt->pressure;
--#ifdef DEBUG
--        fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
--#endif /*DEBUG*/
--                              samp->tv.tv_usec = collie_evt->millisecs % 1000;
--                              samp->tv.tv_sec = collie_evt->millisecs / 1000;
--                              samp++;
--                              collie_evt++;
--                              ret -= sizeof(*collie_evt);
-+              if (pthres == -1) {
-+                      char *pthresvar = getenv("TSLIB_PTHRES");
-+                      pthres = 100;
-+                      if (pthresvar != NULL) {
-+                              int p = strtol(pthresvar, (char **)NULL, 10);
-+                              if (p != -1) pthres = p;
-                       }
--              } else {
--                      return -1;
-               }
--      } else if( strcmp(tseventtype,"CORGI") == 0) { /* Sharp Zaurus SL-C700 events */
--              corgi_evt = alloca(sizeof(*corgi_evt) * nr);
--              ret = read(ts->fd, corgi_evt, sizeof(*corgi_evt) * nr);
--              if(ret > 0) {
--                      int nr = ret / sizeof(*corgi_evt);
--                      while(ret >= sizeof(*corgi_evt)) {
--                              samp->x = corgi_evt->x;
--                              samp->y = corgi_evt->y;
--                              samp->pressure = corgi_evt->pressure;
--#ifdef DEBUG
--        fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
--#endif /*DEBUG*/
--                              samp->tv.tv_usec = corgi_evt->millisecs % 1000;
--                              samp->tv.tv_sec = corgi_evt->millisecs / 1000;
--                              samp++;
--                              corgi_evt++;
--                              ret -= sizeof(*corgi_evt);
--                      }
-+              if (samp->pressure < pthres) {
-+                      /* pen released, send events up */
-+                      pen_down = 0;
-+                      /* set x and y to previous values */
-+                      samp->x = x_save;
-+                      samp->y = y_save;
-               } else {
--                      return -1;
-+                      pen_down = 1;
-+                      x_save = samp->x;
-+                      y_save = samp->y;
-               }
--
--      } else { /* Use normal UCB1x00 type events */
--              evt = alloca(sizeof(*evt) * nr);
--              ret = read(ts->fd, evt, sizeof(*evt) * nr);
--              if(ret > 0) {
--                      int nr = ret / sizeof(*evt);
--                      while(ret >= sizeof(*evt)) {
--                              samp->x = evt->x;
--                              samp->y = evt->y;
--                              samp->pressure = evt->pressure;
- #ifdef DEBUG
--        fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x,samp->y,samp->pressure);
-+              fprintf(stderr,"RAW---------------------------> %d %d %d\n",samp->x, samp->y, samp->pressure);
- #endif /*DEBUG*/
--                              samp->tv.tv_usec = evt->stamp.tv_usec;
--                              samp->tv.tv_sec = evt->stamp.tv_sec;
--                              samp++;
--                              evt++;
--                              ret -= sizeof(*evt);
--                      }
--              } else {
--                      return -1;
--              }
-+              samp++;
-+              total++;
-       }
--      ret = nr;
--#endif /* USE_INPUT_API */
-+      if (ret != 0) ret = -1;
-+      if (total) ret = total;
-       return ret;
- }
diff --git a/meta/packages/tslib/tslib-maemo/nokia770/ts.conf b/meta/packages/tslib/tslib-maemo/nokia770/ts.conf
deleted file mode 100644 (file)
index 8eed62f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-module pressure
-module linear
diff --git a/meta/packages/tslib/tslib-maemo/nokia770/tslib.sh b/meta/packages/tslib/tslib-maemo/nokia770/tslib.sh
deleted file mode 100644 (file)
index b7acc27..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-TSLIB_TSDEVICE=/dev/input/touchscreen0
-
-export TSLIB_TSDEVICE
diff --git a/meta/packages/tslib/tslib-maemo/ts.conf b/meta/packages/tslib/tslib-maemo/ts.conf
deleted file mode 100644 (file)
index dc5c4de..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# Uncomment if you wish to use the linux input layer event interface
-# module_raw input
-
-# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
-# module_raw collie
-
-# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
-# module_raw corgi
-
-# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
-# module_raw ucb1x00
-
-# Uncomment if you're using an HP iPaq h3600 or similar
-# module_raw h3600
-
-# Uncomment if you're using a Hitachi Webpad
-# module_raw mk712
-
-# Uncomment if you're using an IBM Arctic II
-# module_raw arctic2
-
-module pthres pmin=1
-module variance delta=30
-module dejitter delta=100
-module linear
diff --git a/meta/packages/tslib/tslib-maemo_0.0.1-15.bb b/meta/packages/tslib/tslib-maemo_0.0.1-15.bb
deleted file mode 100644 (file)
index e797f5b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-DEFAULT_PREFERENCE = "-1"
-SECTION = "base"
-DESCRIPTION = "tslib is a touchscreen access library (maemo patched version)."
-PR = "r2"
-PROVIDES = "tslib"
-
-SRC_URI_OVERRIDES_PACKAGE_ARCH = "0"
-PACKAGE_ARCH_tslib-conf = "${MACHINE_ARCH}"
-
-SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/t/tslib/tslib_${PV}.tar.gz \
-          file://ts.conf \
-          file://tslib.sh"
-
-S = "${WORKDIR}/tslib"
-LICENSE = "LGPL"
-CONFFILES_${PN} = "${sysconfdir}/ts.conf"
-
-inherit autotools
-
-PACKAGES = "tslib-maemo-conf libts-maemo libts-maemo-dev tslib-maemo-tests tslib-maemo-calibrate"
-EXTRA_OECONF = "--enable-shared"
-
-do_stage () {
-       autotools_stage_all
-}
-
-
-do_install_prepend () {
-       install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
-}
-
-do_install_append() {
-       install -d ${D}${sysconfdir}/profile.d/
-       install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
-}
-
-RDEPENDS_libts-maemo = "tslib-maemo-conf"
-
-RPROVIDES_tslib-maemo-conf = "tslib-conf"
-RPROVIDES_libts-maemo = "libts"
-RPROVIDES_libts-maemo-dev = "libts-dev"
-RPROVIDES_tslib-maemo-calibrate = "tslib-calibrate"
-RPROVIDES_tslib-maemo-tests = "tslib-tests"
-
-FILES_tslib-maemo-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
-FILES_libts-maemo = "${libdir}/*.so.* ${datadir}/ts/plugins/*.so*"
-FILES_libts-maemo-dev = "${FILES_tslib-maemo-dev}"
-FILES_tslib-maemo-calibrate += "${bindir}/ts_calibrate"
-FILES_tslib-maemo-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_test"