summaryrefslogtreecommitdiff
path: root/qte/qte-2.3.8-snapshot/tslib.patch
diff options
context:
space:
mode:
Diffstat (limited to 'qte/qte-2.3.8-snapshot/tslib.patch')
-rw-r--r--qte/qte-2.3.8-snapshot/tslib.patch349
1 files changed, 0 insertions, 349 deletions
diff --git a/qte/qte-2.3.8-snapshot/tslib.patch b/qte/qte-2.3.8-snapshot/tslib.patch
deleted file mode 100644
index 27f8cb05f4..0000000000
--- a/qte/qte-2.3.8-snapshot/tslib.patch
+++ /dev/null
@@ -1,349 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
---- qt-2.3.7/src/kernel/qwsmouse_qws.cpp~tslib.patch
-+++ qt-2.3.7/src/kernel/qwsmouse_qws.cpp
-@@ -7,6 +7,10 @@
- **
- ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
- **
-+** Portions Copyright (C) 2003 Texas Instruments, Inc.
-+** Rights to said portions for use under the GPL and QPL licenses
-+** are hereby granted to Trolltech AS.
-+**
- ** This file is part of the kernel module of the Qt GUI Toolkit.
- **
- ** This file may be distributed and/or modified under the terms of the
-@@ -59,6 +63,9 @@
- #ifdef QT_QWS_CASSIOPEIA
- #include <linux/tpanel.h>
- #endif
-+#if QWS_TSLIB
-+#include <tslib.h>
-+#endif
-
- #if defined(QT_QWS_IPAQ)
- #define QT_QWS_IPAQ_RAW
-@@ -110,7 +117,7 @@
-
- #ifndef QT_QWS_TP_JITTER_LIMIT
- #define QT_QWS_TP_JITTER_LIMIT 2
--#endif
-+#endif
-
- //#define QWS_CUSTOMTOUCHPANEL
-
-@@ -1093,6 +1100,220 @@
- return sent;
- }
-
-+
-+class QTSLibHandler : public QCalibratedMouseHandler
-+{
-+ Q_OBJECT
-+public:
-+ QTSLibHandler();
-+ ~QTSLibHandler();
-+
-+ virtual void clearCalibration();
-+ virtual void calibrate( QWSPointerCalibrationData * );
-+
-+ static int sortByX( const void*, const void* );
-+ static int sortByY( const void*, const void* );
-+private:
-+ void openTs();
-+ void closeTs();
-+ void interpolateSample();
-+
-+private:
-+ bool raw;
-+#ifdef QWS_TSLIB
-+ struct tsdev *ts;
-+#endif
-+ QSocketNotifier *m_notify;
-+
-+private slots:
-+ void readMouseData();
-+};
-+
-+QTSLibHandler::QTSLibHandler()
-+ : raw(false), m_notify(0l)
-+{
-+ openTs();
-+}
-+
-+QTSLibHandler::~QTSLibHandler()
-+{
-+ closeTs();
-+}
-+
-+void QTSLibHandler::openTs()
-+{
-+#ifdef QWS_TSLIB
-+ char *tsdevice;
-+
-+ if( ( tsdevice = getenv( "TSLIB_TSDEVICE" ) ) != NULL ) {
-+ ts = ts_open( tsdevice, 1 );
-+ } else {
-+ ts = ts_open( "/dev/ts", 1 );
-+ }
-+
-+ if (!ts) {
-+ qWarning( "Cannot open touchscreen (%s)", strerror( errno ) );
-+ return;
-+ }
-+
-+ if (ts_config( ts )) {
-+ qWarning( "Cannot configure touchscreen (%s)", strerror( errno ) );
-+ return;
-+ }
-+
-+
-+ m_notify = new QSocketNotifier( ts_fd(ts), QSocketNotifier::Read, this );
-+ connect( m_notify, SIGNAL( activated( int ) ), this, SLOT( readMouseData() ) );
-+#endif
-+}
-+
-+void QTSLibHandler::closeTs()
-+{
-+#ifdef QWS_TSLIB
-+ if (ts)
-+ ts_close(ts);
-+
-+ delete m_notify;
-+ m_notify = 0; ts = 0;
-+#endif
-+
-+}
-+
-+void QTSLibHandler::clearCalibration()
-+{
-+ raw = true;
-+}
-+
-+
-+void QTSLibHandler::calibrate( QWSPointerCalibrationData *cd )
-+{
-+ QPoint dev_tl = cd->devPoints[ QWSPointerCalibrationData::TopLeft ];
-+ QPoint dev_br = cd->devPoints[ QWSPointerCalibrationData::BottomRight ];
-+ QPoint screen_tl = cd->screenPoints[ QWSPointerCalibrationData::TopLeft ];
-+ QPoint screen_br = cd->screenPoints[ QWSPointerCalibrationData::BottomRight ];
-+ int a, b, c, d, e, f, s;
-+
-+ s = 1 << 16;
-+
-+ a = s * (screen_tl.x() - screen_br.x() ) / (dev_tl.x() - dev_br.x());
-+ b = 0;
-+ c = s * screen_tl.x() - a * dev_tl.x();
-+
-+ d = 0;
-+ e = s * (screen_tl.y() - screen_br.y() ) / (dev_tl.y() - dev_br.y());
-+ f = s * screen_tl.y() - e * dev_tl.y();
-+
-+ QString calFile = "/etc/pointercal";
-+#ifndef QT_NO_TEXTSTREAM
-+ QFile file( calFile );
-+ if ( file.open( IO_WriteOnly ) ) {
-+ QTextStream t( &file );
-+ t << a << " " << b << " " << c << " ";
-+ t << d << " " << e << " " << f << " " << s;
-+ file.flush(); closeTs();
-+ openTs();
-+ } else
-+#endif
-+ {
-+ qDebug( "Could not save calibration: %s", calFile.latin1() );
-+ }
-+ raw = false;
-+}
-+
-+void QTSLibHandler::readMouseData()
-+{
-+#ifdef QWS_TSLIB
-+ if(!qt_screen)
-+ return;
-+
-+ /*
-+ * After clear Calibration
-+ * we're in raw mode and do some easy median
-+ * search.
-+ */
-+ if (raw )
-+ return interpolateSample();
-+
-+ static struct ts_sample sample;
-+ static int ret;
-+
-+ /*
-+ * Ok. We need to see if we can read more than one event
-+ * We do this not to lose an update.
-+ */
-+ while ( true ) {
-+ if ((ret = ts_read(ts, &sample, 1)) != 1 )
-+ return;
-+
-+
-+ QPoint pos( sample.x, sample.y );
-+ emit mouseChanged( pos, sample.pressure != 0 ? 1 : 0 );
-+ }
-+#endif
-+}
-+
-+
-+/*
-+ * Lets take all down events and then sort them
-+ * and take the event in the middle.
-+ *
-+ * inspired by testutils.c
-+ */
-+void QTSLibHandler::interpolateSample() {
-+ static struct ts_sample samples[25];
-+ int index = -1;
-+ int ret;
-+
-+ do {
-+ index++;
-+ /* fill only the last sample again */
-+ if ( index >= 25 )
-+ index = 24;
-+
-+ /* we're opened non-blocking */
-+ if((ret= ts_read_raw(ts, &samples[index], 1 ) ) != 1 ) {
-+ /* no event yet, so try again */
-+ if (ret==-1 ) {
-+ index--;
-+ continue;
-+ }
-+ }
-+ }while (samples[index].pressure != 0);
-+
-+ /*
-+ * index is maximal 25 and we at least one sample
-+ */
-+ int x, y;
-+
-+ /*
-+ * now let us use the median value
-+ * even index does not have an item in the middle
-+ * so let us take the average of n/2 and (n/2)-1 as the middle
-+ */
-+ int m = index/2;
-+ ::qsort(samples, index, sizeof(ts_sample), QTSLibHandler::sortByX);
-+ x = (index % 2 ) ? samples[m].x :
-+ ( samples[m-1].x + samples[m].x )/2;
-+
-+ ::qsort(samples, index, sizeof(ts_sample), QTSLibHandler::sortByY);
-+ y = (index % 2 ) ? samples[m].y :
-+ ( samples[m-1].y + samples[m].y )/2;
-+
-+ emit mouseChanged( QPoint(x, y), 1 );
-+ emit mouseChanged( QPoint(0, 0), 0 );
-+}
-+
-+int QTSLibHandler::sortByX( const void* one, const void* two) {
-+ return reinterpret_cast<const struct ts_sample*>(one)->x -
-+ reinterpret_cast<const struct ts_sample*>(two)->x;
-+}
-+
-+int QTSLibHandler::sortByY( const void* one, const void* two) {
-+ return reinterpret_cast<const struct ts_sample*>(one)->y -
-+ reinterpret_cast<const struct ts_sample*>(two)->y;
-+}
-+
-+
- /*
- * Handler for /dev/tpanel Linux kernel driver
- */
-@@ -1235,7 +1456,7 @@
-
-
- QTPanelHandlerPrivate::QTPanelHandlerPrivate( MouseProtocol, QString dev )
-- : samples(QT_QWS_TP_SAMPLE_SIZE), currSample(0), lastSample(0),
-+ : samples(QT_QWS_TP_SAMPLE_SIZE), currSample(0), lastSample(0),
- numSamples(0), skipCount(0)
- {
- #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
-@@ -1315,7 +1536,7 @@
- mousePos = QPoint( 0, 0 );
- QPoint totalMousePos = oldTotalMousePos;
- totalMousePos += samples[currSample];
-- if(numSamples >= samples.count())
-+ if(numSamples >= samples.count())
- totalMousePos -= samples[lastSample];
-
- mousePos = totalMousePos / (sampleCount - 1);
-@@ -1345,7 +1566,7 @@
-
- // save recuring information
- currSample++;
-- if (numSamples >= samples.count())
-+ if (numSamples >= samples.count())
- lastSample++;
- oldTotalMousePos = totalMousePos;
- } else {
-@@ -1658,7 +1879,7 @@
-
- if ( mouseProto == "USB" && mouseDev.isEmpty() )
- mouseDev = "/dev/input/mice";
--
-+
- MouseProtocol mouseProtocol = Unknown;
-
- int idx = 0;
-@@ -1689,12 +1910,14 @@
- break;
-
- case TPanel:
--#if defined(QWS_CUSTOMTOUCHPANEL)
-- handler = new QCustomTPanelHandlerPrivate(mouseProtocol,mouseDev);
-+#if defined(QWS_TSLIB)
-+ handler = new QTSLibHandler( );
-+#elif defined(QWS_CUSTOMTOUCHPANEL)
-+ handler = new QCustomTPanelHandlerPrivate( mouseProtocol, mouseDev );
- #elif defined(QT_QWS_YOPY)
-- handler = new QYopyTPanelHandlerPrivate(mouseProtocol,mouseDev);
-+ handler = new QYopyTPanelHandlerPrivate( mouseProtocol, mouseDev );
- #elif defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
-- handler = new QTPanelHandlerPrivate(mouseProtocol,mouseDev);
-+ handler = new QTPanelHandlerPrivate( mouseProtocol, mouseDev );
- #elif defined(QT_QWS_CASSIOPEIA)
- handler = new QVrTPanelHandlerPrivate( mouseProtocol, mouseDev );
- #endif
---- qt-2.3.7/configure~tslib.patch
-+++ qt-2.3.7/configure
-@@ -399,6 +399,9 @@
- -kde)
- KDE=yes
- ;;
-+ -tslib)
-+ TSLIB=yes
-+ ;;
- -no-g++-exceptions)
- GPLUSPLUS_EXCEPTIONS=no
- ;;
-@@ -1255,6 +1258,9 @@
- set to point to a KDE 2 installation.
- See http://www.kde.org
-
-+ -tslib ............. Use the TSLib (touchscreen access library) mouse handler
-+ by default, instead of the normal device default.
-+
- -no-g++-exceptions . Disable exceptions on platforms using the GNU C++
- compiler by using the -fno-exceptions flag.
-
-@@ -1314,6 +1320,13 @@
- [ "x$SM" = "xno" ] && QT_CXX="${QT_CXX} -DQT_NO_SM_SUPPORT"
- [ "x$XFT" = "xyes" ] && QT_CXX="${QT_CXX} -DQT_XFT"
- [ "x$XFT" = "xno" ] && QT_CXX="${QT_CXX} -DQT_NO_XKB"
-+
-+if [ "x$TSLIB" = "xyes" ]
-+then
-+ QT_CXX="${QT_CXX} -DQWS_TSLIB"
-+ QT_LIBS="${QT_LIBS} -lts"
-+fi
-+
- if [ "x$THREAD" = "xyes" ]
- then
- cat >src-mt.mk <<EOF