Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_fb


Modified Files:
        ecore_fb.c 


Log Message:


simon's tscal stuff

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_fb/ecore_fb.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ecore_fb.c  2 Mar 2005 07:06:40 -0000       1.9
+++ ecore_fb.c  31 May 2005 22:30:47 -0000      1.10
@@ -128,6 +128,9 @@
                                          
 static double _ecore_fb_double_click_time = 0.25;
 
+static struct _Ecore_Fb_Ts_Calibrate _ecore_fb_ts_cal = {1,1,0,0,0};
+static int _ecore_fb_ts_apply_cal = 0;
+
 static const char *_ecore_fb_kbd_syms[128 * 6] =
 {
 #include "ecore_fb_keytab.h"
@@ -513,7 +516,10 @@
    cal.yscale = yscale;
    cal.ytrans = ytrans;
    cal.xyswap = xyswap;
-   ioctl(_ecore_fb_ts_fd, TS_SET_CAL, (void *)&cal);
+   if (ioctl(_ecore_fb_ts_fd, TS_SET_CAL, (void *)&cal)) {
+     _ecore_fb_ts_cal = cal;
+     _ecore_fb_ts_apply_cal = 1;
+   }
 }
 
 /**
@@ -532,7 +538,14 @@
    Ecore_Fb_Ts_Calibrate cal;
    
    if (_ecore_fb_ts_fd < 0) return;
-   ioctl(_ecore_fb_ts_fd, TS_GET_CAL, (void *)&cal);
+   if (!_ecore_fb_ts_apply_cal) {
+     if (ioctl(_ecore_fb_ts_fd, TS_GET_CAL, (void *)&cal)) {
+        _ecore_fb_ts_cal = cal;
+     }
+   }
+   if (_ecore_fb_ts_apply_cal) {
+     cal = _ecore_fb_ts_cal;
+   }
    if (xscale) *xscale = cal.xscale;
    if (xtrans) *xtrans = cal.xtrans;
    if (yscale) *yscale = cal.yscale;
@@ -787,8 +800,13 @@
        if (v < num) return 1;
        t = ecore_time_get();
        _ecore_fb_ts_event_byte_count = 0;
-       x = _ecore_fb_ts_event.x;
-       y = _ecore_fb_ts_event.y;
+       if (_ecore_fb_ts_apply_cal) {
+         x = ((_ecore_fb_ts_cal.xscale * _ecore_fb_ts_event.x) >> 8) + 
_ecore_fb_ts_cal.xtrans;
+         y = ((_ecore_fb_ts_cal.yscale * _ecore_fb_ts_event.y) >> 8) + 
_ecore_fb_ts_cal.ytrans;
+       } else {
+         x = _ecore_fb_ts_event.x;
+         y = _ecore_fb_ts_event.y;
+       }
        pressure = _ecore_fb_ts_event.pressure;
        /* add event to queue */
        /* always add a move event */




-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to