Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

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


Modified Files:
        Makefile.am ecore_fb.c 


Log Message:


tslib patch :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_fb/Makefile.am,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- Makefile.am 10 Mar 2005 15:19:39 -0000      1.7
+++ Makefile.am 15 Sep 2005 04:19:45 -0000      1.8
@@ -19,6 +19,7 @@
 ecore_fb_keytab.h
 
 libecore_fb_la_LIBADD = \
[EMAIL PROTECTED]@ \
 $(top_builddir)/src/lib/ecore/libecore.la
 
 libecore_fb_la_DEPENDENCIES = \
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_fb/ecore_fb.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- ecore_fb.c  7 Sep 2005 09:16:48 -0000       1.12
+++ ecore_fb.c  15 Sep 2005 04:19:45 -0000      1.13
@@ -1,9 +1,13 @@
-
 #include "ecore_private.h"
 #include "Ecore.h"
 #include "ecore_fb_private.h"
 #include "Ecore_Fb.h"
 
+#ifdef HAVE_TSLIB
+#include <tslib.h>
+#include <errno.h>
+#endif
+
 #include <termios.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -73,6 +77,11 @@
    unsigned char z;
 };
 
+#ifdef HAVE_TSLIB
+struct tsdev *_ecore_fb_tslib_tsdev = NULL;
+struct ts_sample _ecore_fb_tslib_event;
+#endif
+
 static void _ecore_fb_size_get(int *w, int *h);
 static int _ecore_fb_ts_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
 static int _ecore_fb_kbd_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
@@ -265,10 +274,39 @@
 ecore_fb_init(const char *name __UNUSED__)
 {
    int prev_flags;
+#ifdef HAVE_TSLIB
+   char *tslib_tsdevice = NULL;
+#endif
 
    _ecore_fb_init_count++;
    if (_ecore_fb_init_count > 1) return _ecore_fb_init_count;
+#ifdef HAVE_TSLIB
+    if ( ( tslib_tsdevice = getenv("TSLIB_TSDEVICE") ) != NULL )
+    {
+        printf( "ECORE_FB: TSLIB_TSDEVICE = '%s'\n", tslib_tsdevice );
+        _ecore_fb_tslib_tsdev = ts_open( tslib_tsdevice, 1 ); /* 1 = 
nonblocking, 0 = blocking */
+
+        if ( !_ecore_fb_tslib_tsdev )
+        {
+            printf( "ECORE_FB: Can't ts_open (%s)\n", strerror( errno ) );
+            return 0;
+        }
+
+        if ( ts_config( _ecore_fb_tslib_tsdev ) )
+        {
+            printf( "ECORE_FB: Can't ts_config (%s)\n", strerror( errno ) );
+            return 0;
+        }
+        _ecore_fb_ts_fd = ts_fd( _ecore_fb_tslib_tsdev );
+        if ( _ecore_fb_ts_fd < 0 )
+        {
+            printf( "ECORE_FB: Can't open touchscreen (%s)\n", strerror( errno 
) );
+            return 0;
+        }
+    }
+#else
    _ecore_fb_ts_fd = open("/dev/touchscreen/0", O_RDONLY);
+#endif
    if (_ecore_fb_ts_fd >= 0)
      {
        prev_flags = fcntl(_ecore_fb_ts_fd, F_GETFL);
@@ -786,7 +824,21 @@
        char *ptr;
        double t;
        int did_triple = 0;
-       
+
+#ifdef HAVE_TSLIB
+    if ( _ecore_fb_ts_apply_cal )
+        num = ts_read_raw( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 );
+    else
+        num = ts_read( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 );
+    if ( num != 1 )
+    {
+        return 1; /* no more samples at this time */
+    }
+    x = _ecore_fb_tslib_event.x;
+    y = _ecore_fb_tslib_event.y;
+    pressure = _ecore_fb_tslib_event.pressure;
+    v = 1; /* loop, there might be more samples */
+#else
        ptr = (char *)&(_ecore_fb_ts_event);
        ptr += _ecore_fb_ts_event_byte_count;
        num = sizeof(Ecore_Fb_Ts_Event) - _ecore_fb_ts_event_byte_count;
@@ -807,6 +859,7 @@
             y = _ecore_fb_ts_event.y;
          }
        pressure = _ecore_fb_ts_event.pressure;
+#endif   
        /* add event to queue */
        /* always add a move event */
        if ((pressure) || (prev_pressure))




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to