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