QT_BEGIN_NAMESPACE QTsLibMouseHandler::QTsLibMouseHandler(const QString &key, const QString &specification) : m_notify(0), m_x(0), m_y(0), m_pressed(0), m_rawMode(false) { qDebug() << "QTsLibMouseHandler" << key << specification; setObjectName(QLatin1String("TSLib Mouse Handler")); QByteArray device = "/dev/input/event1"; if (specification.startsWith("/dev/")) device = specification.toLocal8Bit(); m_dev = ts_open(device.constData(), 1); if (!m_dev) { qErrnoWarning(errno, "ts_open() failed"); return; } if (ts_config(m_dev)) { perror("Error configuring\n"); } m_rawMode = !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive); int fd = ts_fd(m_dev); if (fd >= 0) { m_notify = new QSocketNotifier(fd, QSocketNotifier::Read, this); connect(m_notify, SIGNAL(activated(int)), this, SLOT(readMouseData())); } else {
static int TSInputDeviceInit(void) { char *pcTSName = NULL; int iError = 0; if((pcTSName = getenv("TSLIB_TSDEVICE"))){ g_ptTouchScreenFd = ts_open(pcTSName, 0); }else{ g_ptTouchScreenFd = ts_open("/dev/event0", 0); } if(NULL == g_ptTouchScreenFd){ DebugPrint(DEBUG_NOTICE"Open ts device error\n"); return -1; } iError = ts_config(g_ptTouchScreenFd); if(iError){ DebugPrint(DEBUG_NOTICE"Config ts device error\n"); return -1; } g_tTSInputOpr.iInputDeviceFd = ts_fd(g_ptTouchScreenFd); /* g_iBpp 在这里并没有用到 */ return GetDisDeviceSize(&g_iTSXres, &g_iTSYres, &g_iBpp); }
static int PD_Open(MOUSEDEVICE *pmd) { char *tsdevice = NULL; if ((tsdevice = getenv("TSLIB_TSDEVICE")) != NULL) { ts = ts_open(tsdevice, 1); } else { ts = ts_open("/dev/input/event0", 1); } if (!ts) { EPRINTF("Error opening touchscreen device [%s]: %s\n", tsdevice, strerror(errno)); return -1; } if (ts_config(ts)) { EPRINTF("Error configuring touchscreen device: %s\n", strerror(errno)); ts_close(ts); return -1; } GdHideCursor(&scrdev); return ts_fd(ts); }
void ts_flush(struct tsdev *ts) { /* Read all unread touchscreen data, * so that we are sure that the next data that we read * have been input after this flushing. */ #define TS_BUFFER_MAX 32768 static char buffer [TS_BUFFER_MAX]; read (ts_fd (ts), buffer, TS_BUFFER_MAX); }
EAPI int ecore_fb_ts_init(void) { #ifdef HAVE_TSLIB char *tslib_tsdevice = NULL; if ( (tslib_tsdevice = getenv("TSLIB_TSDEVICE")) ) { 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) { _ecore_fb_ts_fd_handler_handle = ecore_main_fd_handler_add(_ecore_fb_ts_fd, ECORE_FD_READ, _ecore_fb_ts_fd_handler, NULL, NULL, NULL); if (!_ecore_fb_ts_fd_handler_handle) { close(_ecore_fb_ts_fd); return 0; } // FIXME _ecore_fb_kbd_fd = open("/dev/touchscreen/key", O_RDONLY); return 1; } return 0; }
int TslibInit (void) { int i; KdMouseInfo *mi, *next; int fd= 0; int n = 0; if (!TsInputType) TsInputType = KdAllocInputType (); for (mi = kdMouseInfo; mi; mi = next) { next = mi->next; if (mi->inputType) continue; if (!mi->name) { for (i = 0; i < NUM_TS_NAMES; i++) { if(!(tsDev = ts_open(TsNames[i],0))) continue; ts_config(tsDev); fd=ts_fd(tsDev); if (fd >= 0) { mi->name = KdSaveString (TsNames[i]); break; } } } if (fd > 0 && tsDev != 0) { mi->driver = (void *) fd; mi->inputType = TsInputType; if (KdRegisterFd (TsInputType, fd, TsRead, (void *) mi)) n++; } else if (fd > 0) close(fd); } }