diff options
Diffstat (limited to 'packages/qte/qte-2.3.10/deprecated')
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/c700-hardware.patch | 27 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/devfs.patch | 161 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/ipaq-keyboard.patch | 27 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/mnci-touchscreen.patch | 1987 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/mnci.patch | 125 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.cpp | 584 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.h | 56 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/simpad-defaultkbd.patch | 11 | ||||
-rw-r--r-- | packages/qte/qte-2.3.10/deprecated/simpad.patch | 340 |
9 files changed, 0 insertions, 3318 deletions
diff --git a/packages/qte/qte-2.3.10/deprecated/c700-hardware.patch b/packages/qte/qte-2.3.10/deprecated/c700-hardware.patch deleted file mode 100644 index fa4bd25f37..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/c700-hardware.patch +++ /dev/null @@ -1,27 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- qt-2.3.9-snapshot-20050114/src/kernel/qwsmouse_qws.cpp~c700-hardware -+++ qt-2.3.9-snapshot-20050114/src/kernel/qwsmouse_qws.cpp -@@ -87,6 +87,19 @@ - #define QT_QWS_TP_PRESSURE_THRESHOLD 500 - #define QT_QWS_TP_MOVE_LIMIT 50 - #define QT_QWS_TP_JITTER_LIMIT 2 -+#elif defined(QT_QWS_SLC700) -+#define QT_QWS_SLC700_RAW -+typedef struct { -+ unsigned short pressure; -+ unsigned short x; -+ unsigned short y; -+ unsigned short millisecs; -+} TS_EVENT; -+#define QT_QWS_TP_SAMPLE_SIZE 10 -+#define QT_QWS_TP_MINIMUM_SAMPLES 4 -+#define QT_QWS_TP_PRESSURE_THRESHOLD 500 -+#define QT_QWS_TP_MOVE_LIMIT 50 -+#define QT_QWS_TP_JITTER_LIMIT 2 - #endif - - #ifndef QT_QWS_TP_SAMPLE_SIZE diff --git a/packages/qte/qte-2.3.10/deprecated/devfs.patch b/packages/qte/qte-2.3.10/deprecated/devfs.patch deleted file mode 100644 index dd46d516ff..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/devfs.patch +++ /dev/null @@ -1,161 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - -Index: qt-2.3.10/configure -=================================================================== ---- qt-2.3.10.orig/configure 2005-07-03 12:26:10.000000000 +0200 -+++ qt-2.3.10/configure 2005-07-03 12:30:36.000000000 +0200 -@@ -412,6 +412,9 @@ - -visibility-hidden) - VISIBILITY=YES - ;; -+ -devfs) -+ DEVFS=yes -+ ;; - -no-g++-exceptions) - GPLUSPLUS_EXCEPTIONS=no - ;; -@@ -1302,6 +1305,8 @@ - -visibility-hidden . Use -fvisibility=hidden as default. This requires GCC 4.0 - or a special patched GCC to support the visibility attribute - -+ -devfs ............. Use devfs /dev paths. -+ - -no-g++-exceptions . Disable exceptions on platforms using the GNU C++ - compiler by using the -fno-exceptions flag. - -@@ -1374,6 +1379,10 @@ - then - QT_CXX="${QT_CXX} -DGCC_SUPPORTS_VISIBILITY -fvisibility=hidden" - fi -+if [ "x$DEVFS" = "xyes" ] -+then -+ QT_CXX="${QT_CXX} -DQT_QWS_DEVFS" -+fi - if [ "x$THREAD" = "xyes" ] - then - cat >src-mt.mk <<EOF -Index: qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp -=================================================================== ---- qt-2.3.10.orig/src/kernel/qgfxlinuxfb_qws.cpp 2005-07-03 12:26:13.000000000 +0200 -+++ qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp 2005-07-03 12:30:36.000000000 +0200 -@@ -101,11 +101,19 @@ - bool QLinuxFbScreen::connect( const QString &displaySpec ) - { - // Check for explicitly specified device -+#ifdef QT_QWS_DEVFS -+ QRegExp r( "/dev/fb/[0-9]+" ); -+#else - QRegExp r( "/dev/fb[0-9]+" ); -+#endif - int len; - int m = r.match( displaySpec, 0, &len ); - -+#ifdef QT_QWS_DEVFS -+ QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb/0"); -+#else - QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb0"); -+#endif - - fd=open( dev.latin1(), O_RDWR ); - if (fd<0) { -@@ -121,14 +129,22 @@ - - /* Get fixed screen information */ - if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) { -+#ifdef QT_QWS_DEVFS -+ perror("reading /dev/fb/0"); -+#else - perror("reading /dev/fb0"); -+#endif - qWarning("Error reading fixed information"); - return FALSE; - } - - /* Get variable screen information */ - if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) { -+#ifdef QT_QWS_DEVFS -+ perror("reading /dev/fb/0"); -+#else - perror("reading /dev/fb0"); -+#endif - qWarning("Error reading variable information"); - return FALSE; - } -@@ -165,7 +181,11 @@ - data += dataoffset; - - if ((int)data == -1) { -- perror("mapping /dev/fb0"); -+#ifdef QT_QWS_DEVFS -+ perror("reading /dev/fb/0"); -+#else -+ perror("reading /dev/fb0"); -+#endif - qWarning("Error: failed to map framebuffer device to memory."); - return FALSE; - } -@@ -229,7 +249,11 @@ - - static void writeTerm(const char* termctl, int sizeof_termctl) - { -+#ifdef QT_QWS_DEVFS -+ const char* tt[]={"/dev/vc/1","/dev/console","/dev/tty",0}; -+#else - const char* tt[]={"/dev/console","/dev/tty","/dev/tty0",0}; -+#endif - const char** dev=tt; - while (*dev) { - int tty=::open(*dev,O_WRONLY); -Index: qt-2.3.10/src/kernel/qkeyboard_qws.cpp -=================================================================== ---- qt-2.3.10.orig/src/kernel/qkeyboard_qws.cpp 2005-07-03 12:26:13.000000000 +0200 -+++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp 2005-07-03 12:30:36.000000000 +0200 -@@ -1253,7 +1253,11 @@ - - QWSTtyKeyboardHandler::QWSTtyKeyboardHandler(const QString& device) - { -+#ifdef QT_QWS_DEVFS -+ kbdFD=open(device.isEmpty() ? "/dev/vc/1" : device.latin1(), O_RDWR | O_NDELAY, 0); -+#else - kbdFD=open(device.isEmpty() ? "/dev/tty0" : device.latin1(), O_RDWR | O_NDELAY, 0); -+#endif - - if ( kbdFD >= 0 ) { - QSocketNotifier *notifier; -Index: qt-2.3.10/src/kernel/qwindowsystem_qws.cpp -=================================================================== ---- qt-2.3.10.orig/src/kernel/qwindowsystem_qws.cpp 2005-07-03 12:26:11.000000000 +0200 -+++ qt-2.3.10/src/kernel/qwindowsystem_qws.cpp 2005-07-03 12:30:36.000000000 +0200 -@@ -836,7 +836,11 @@ - void openDevice() - { - if ( !sn ) { -+#ifdef QT_QWS_DEVFS -+ int fd = ::open("/dev/sound/dsp",O_RDWR); -+#else - int fd = ::open("/dev/dsp",O_RDWR); -+#endif - if ( fd < 0 ) { - // For debugging purposes - defined QT_NO_SOUND if you - // don't have sound hardware! -Index: qt-2.3.10/src/kernel/qsoundqss_qws.cpp -=================================================================== ---- qt-2.3.10.orig/src/kernel/qsoundqss_qws.cpp 2005-01-23 15:00:46.000000000 +0100 -+++ qt-2.3.10/src/kernel/qsoundqss_qws.cpp 2005-07-03 12:30:36.000000000 +0200 -@@ -1088,7 +1088,12 @@ - // Don't block open right away. - // - bool openOkay = false; -- if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1) { -+#ifdef QT_QWS_DEVFS -+ if ((fd = ::open("/dev/sound/dsp", O_WRONLY|O_NONBLOCK)) != -1) -+#else -+ if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1) -+#endif -+ { - int flags = fcntl(fd, F_GETFL); - flags &= ~O_NONBLOCK; - openOkay = (fcntl(fd, F_SETFL, flags) == 0); diff --git a/packages/qte/qte-2.3.10/deprecated/ipaq-keyboard.patch b/packages/qte/qte-2.3.10/deprecated/ipaq-keyboard.patch deleted file mode 100644 index 47474f698e..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/ipaq-keyboard.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: qt-2.3.10/src/kernel/qkeyboard_qws.cpp -=================================================================== ---- qt-2.3.10.orig/src/kernel/qkeyboard_qws.cpp 2005-02-20 13:20:03.285091763 +0100 -+++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp 2005-02-20 13:21:49.668213425 +0100 -@@ -527,17 +527,17 @@ - { Qt::Key_Plus, '+' , '-' , 0xffff }, - { Qt::Key_Pause, 0xffff , 0xffff , 0xffff }, // 120 - { Qt::Key_F31, 0xffff , 0xffff , 0xffff }, // IM toggle -- { Qt::Key_F32, 0xffff , 0xffff , 0xffff }, // Sync -- { Qt::Key_F34, 0xffff , 0xffff , 0xffff }, // Power -- { Qt::Key_F35, 0xffff , 0xffff , 0xffff }, // Backlight -+ { Qt::Key_SysReq, 0xffff , 0xffff , 0xffff }, // iPAQ -+ { Qt::Key_F9, 0xffff , 0xffff , 0xffff }, // iPAQ -+ { Qt::Key_F10, 0xffff , 0xffff , 0xffff }, // iPAQ - #if defined(QT_KEYPAD_MODE) - { Qt::Key_Context1, 0xffff , 0xffff , 0xffff }, - { Qt::Key_Context2, 0xffff , 0xffff , 0xffff }, - { Qt::Key_Context3, 0xffff , 0xffff , 0xffff }, - { Qt::Key_Context4, 0xffff , 0xffff , 0xffff }, - #else -- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, -- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, -+ { Qt::Key_F13, 0xffff , 0xffff , 0xffff }, // iPAQ -+ { Qt::Key_F12, 0xffff , 0xffff , 0xffff }, // iPAQ - { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, - { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, - #endif diff --git a/packages/qte/qte-2.3.10/deprecated/mnci-touchscreen.patch b/packages/qte/qte-2.3.10/deprecated/mnci-touchscreen.patch deleted file mode 100644 index 570c2ff290..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/mnci-touchscreen.patch +++ /dev/null @@ -1,1987 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- qt-2.3.10/src/kernel/qwsmouse_qws.cpp~ramses-touchscreen -+++ qt-2.3.10/src/kernel/qwsmouse_qws.cpp -@@ -1,5 +1,5 @@ - /**************************************************************************** --** $Id: qt/src/kernel/qwsmouse_qws.cpp 2.3.10 edited 2005-01-24 $ -+** $Id: qt/src/kernel/qwsmouse_qws.cpp 2.3.7 edited 2003-02-04 $ - ** - ** Implementation of Qt/Embedded mouse drivers - ** -@@ -47,85 +47,32 @@ - #include <stdlib.h> - #include <stdio.h> - #include <sys/ioctl.h> --#include <sys/time.h> - #include <sys/types.h> - #include <sys/stat.h> - #include <fcntl.h> - #include <errno.h> - #include <termios.h> - -+ - #include <qgfx_qws.h> - #if !defined(_OS_QNX6_) - --#ifdef QT_QWS_CASSIOPEIA --#include <linux/tpanel.h> --#endif --#ifdef QT_QWS_TSLIB --#include <tslib.h> --#endif -- -- --//#define QT_QWS_K2 -- --#if defined(QT_QWS_IPAQ) || defined(QT_QWS_K2) --#define QT_QWS_IPAQ_RAW --typedef struct { -- unsigned short pressure; -- unsigned short x; -- unsigned short y; -- unsigned short pad; -- struct timeval stamp; --} TS_EVENT; --#elif defined(QT_QWS_SL5XXX) --#define QT_QWS_SL5XXX_RAW --typedef struct { -- long y; -- long x; -- long pressure; -- long long millisecs; --} TS_EVENT; --#define QT_QWS_TP_SAMPLE_SIZE 10 --#define QT_QWS_TP_MINIMUM_SAMPLES 4 --#define QT_QWS_TP_PRESSURE_THRESHOLD 500 --#define QT_QWS_TP_MOVE_LIMIT 50 --#define QT_QWS_TP_JITTER_LIMIT 2 --#elif defined(QT_QWS_SLC700) --#define QT_QWS_SLC700_RAW --typedef struct { -- unsigned short pressure; -- unsigned short x; -- unsigned short y; -- unsigned short millisecs; --} TS_EVENT; --#define QT_QWS_TP_SAMPLE_SIZE 10 --#define QT_QWS_TP_MINIMUM_SAMPLES 4 --#define QT_QWS_TP_PRESSURE_THRESHOLD 500 --#define QT_QWS_TP_MOVE_LIMIT 50 --#define QT_QWS_TP_JITTER_LIMIT 2 --#endif -- --#ifndef QT_QWS_TP_SAMPLE_SIZE --#define QT_QWS_TP_SAMPLE_SIZE 5 --#endif -- --#ifndef QT_QWS_TP_MINIMUM_SAMPLES --#define QT_QWS_TP_MINIMUM_SAMPLES 5 -+#ifndef QT_QWS_TP_PRESSURE_DOWN_THRESHOLD -+#define QT_QWS_TP_PRESSURE_DOWN_THRESHOLD 500 - #endif - --#ifndef QT_QWS_TP_PRESSURE_THRESHOLD --#define QT_QWS_TP_PRESSURE_THRESHOLD 1 -+#ifndef QT_QWS_TP_PRESSURE_UP_THRESHOLD -+#define QT_QWS_TP_PRESSURE_UP_THRESHOLD 450 - #endif - --#ifndef QT_QWS_TP_MOVE_LIMIT --#define QT_QWS_TP_MOVE_LIMIT 100 -+#ifndef QT_QWS_TP_TABLE_SIZE -+#define QT_QWS_TP_TABLE_SIZE 2 - #endif - --#ifndef QT_QWS_TP_JITTER_LIMIT --#define QT_QWS_TP_JITTER_LIMIT 2 -+#ifndef QT_QWS_TP_MOVE_MAX -+#define QT_QWS_TP_MOVE_MAX 100 - #endif - --//#define QWS_CUSTOMTOUCHPANEL -- - /*! - \class QWSMouseHandler qwsmouse_qws.h - \brief Mouse driver/handler for Qt/Embedded -@@ -168,8 +115,7 @@ - enum MouseProtocol { Unknown = -1, Auto = 0, - MouseMan, IntelliMouse, Microsoft, - QVFBMouse, TPanel, BusMouse, -- FirstAuto = MouseMan, -- LastAuto = Microsoft }; -+ }; - - static void limitToScreen( QPoint &pt ) - { -@@ -186,810 +132,14 @@ - } MouseConfig; - - static const MouseConfig mouseConfig[] = { --#ifndef QT_NO_QWS_MOUSE_AUTO - { "Auto", Auto }, --#endif --#ifndef QT_NO_QWS_MOUSE_PC -- { "MouseMan", MouseMan }, -- { "IntelliMouse", IntelliMouse }, -- { "USB", IntelliMouse }, -- { "Microsoft", Microsoft }, --#endif --#ifndef QT_NO_QWS_VFB - { "QVFbMouse", QVFBMouse }, --#endif - { "TPanel", TPanel }, -- { "BusMouse", BusMouse }, - { 0, Unknown } - }; - --#ifndef QT_NO_QWS_MOUSE_AUTO --/* -- * Automatic-detection mouse driver -- */ -- --class QAutoMouseSubHandler { --protected: -- enum { max_buf=32 }; -- -- int fd; -- -- uchar buffer[max_buf]; -- int nbuf; -- -- QPoint motion; -- int bstate; -- -- int goodness; -- int badness; -- -- virtual int tryData()=0; -- --public: -- QAutoMouseSubHandler(int f) : fd(f) -- { -- nbuf = bstate = goodness = badness = 0; -- } -- -- int file() const { return fd; } -- -- void closeIfNot(int& f) -- { -- if ( fd != f ) { -- f = fd; -- close(fd); -- } -- } -- -- void worse(int by=1) { badness+=by; } -- bool reliable() const { return goodness >= 5 && badness < 50; } -- int buttonState() const { return bstate; } -- bool motionPending() const { return motion!=QPoint(0,0); } -- QPoint takeMotion() { QPoint r=motion; motion=QPoint(0,0); return r; } -- -- void appendData(uchar* data, int length) -- { -- memcpy(buffer+nbuf, data, length); -- nbuf += length; -- } -- -- enum UsageResult { Insufficient, Motion, Button }; -- -- UsageResult useData() -- { -- int pbstate = bstate; -- int n = tryData(); -- if ( n > 0 ) { -- if ( n<nbuf ) -- memmove( buffer, buffer+n, nbuf-n ); -- nbuf -= n; -- return pbstate == bstate ? Motion : Button; -- } -- return Insufficient; -- } --}; -- --class QAutoMouseSubHandler_intellimouse : public QAutoMouseSubHandler { -- int packetsize; --public: -- QAutoMouseSubHandler_intellimouse(int f) : QAutoMouseSubHandler(f) -- { -- init(); -- } -- -- void init() -- { -- int n; -- uchar reply[20]; -- -- tcflush(fd,TCIOFLUSH); -- static const uchar initseq[] = { 243, 200, 243, 100, 243, 80 }; -- static const uchar query[] = { 0xf2 }; -- if (write(fd, initseq, sizeof(initseq))!=sizeof(initseq)) { -- badness = 100; -- return; -- } -- usleep(10000); -- tcflush(fd,TCIOFLUSH); -- if (write(fd, query, sizeof(query))!=sizeof(query)) { -- badness = 100; -- return; -- } -- usleep(10000); -- n = read(fd, reply, 20); -- if ( n > 0 ) { -- goodness = 10; -- switch ( reply[n-1] ) { -- case 3: -- case 4: -- packetsize = 4; -- break; -- default: -- packetsize = 3; -- } -- } else { -- badness = 100; -- } -- } -- -- int tryData() -- { -- if ( nbuf >= packetsize ) { -- //int overflow = (buffer[0]>>6 )& 0x03; -- -- if ( /*overflow ||*/ !(buffer[0] & 8) ) { -- badness++; -- return 1; -- } else { -- motion += -- QPoint((buffer[0] & 0x10) ? buffer[1]-256 : buffer[1], -- (buffer[0] & 0x20) ? 256-buffer[2] : -buffer[2]); -- int nbstate = buffer[0] & 0x7; -- if ( motion.x() || motion.y() || bstate != nbstate ) { -- bstate = nbstate; -- goodness++; -- } else { -- badness++; -- return 1; -- } -- } -- return packetsize; -- } -- return 0; -- } --}; -- --class QAutoMouseSubHandler_serial : public QAutoMouseSubHandler { --public: -- QAutoMouseSubHandler_serial(int f) : QAutoMouseSubHandler(f) -- { -- initSerial(); -- } -- --protected: -- void setflags(int f) -- { -- termios tty; -- tcgetattr(fd, &tty); -- tty.c_iflag = IGNBRK | IGNPAR; -- tty.c_oflag = 0; -- tty.c_lflag = 0; -- tty.c_cflag = f | CREAD | CLOCAL | HUPCL; --#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_) -- tty.c_line = 0; --#endif -- tty.c_cc[VTIME] = 0; -- tty.c_cc[VMIN] = 1; -- tcsetattr(fd, TCSANOW, &tty); -- } -- --private: -- void initSerial() -- { -- int speed[4] = { B9600, B4800, B2400, B1200 }; -- -- for (int n = 0; n < 4; n++) { -- setflags(CSTOPB | speed[n]); -- write(fd, "*q", 2); -- usleep(10000); -- } -- } --}; -- --class QAutoMouseSubHandler_mousesystems : public QAutoMouseSubHandler_serial { --public: -- // ##### This driver has not been tested -- -- QAutoMouseSubHandler_mousesystems(int f) : QAutoMouseSubHandler_serial(f) -- { -- init(); -- } -- -- void init() -- { -- setflags(B1200|CS8|CSTOPB); -- // 60Hz -- if (write(fd, "R", 1)!=1) { -- badness = 100; -- return; -- } -- tcflush(fd,TCIOFLUSH); -- } -- -- int tryData() -- { -- if ( nbuf >= 5 ) { -- if ( (buffer[0] & 0xf8) != 0x80 ) { -- badness++; -- return 1; -- } -- motion += -- QPoint((signed char)buffer[1] + (signed char)buffer[3], -- -(signed char)buffer[2] + (signed char)buffer[4]); -- int t = ~buffer[0]; -- int nbstate = ((t&3) << 1) | ((t&4) >> 2); -- if ( motion.x() || motion.y() || bstate != nbstate ) { -- bstate = nbstate; -- goodness++; -- } else { -- badness++; -- return 1; -- } -- return 5; -- } -- return 0; -- } --}; -- --class QAutoMouseSubHandler_ms : public QAutoMouseSubHandler_serial { -- int mman; --public: -- QAutoMouseSubHandler_ms(int f) : QAutoMouseSubHandler_serial(f) -- { -- mman=0; -- init(); -- } -- -- void init() -- { -- setflags(B1200|CS7); -- // 60Hz -- if (write(fd, "R", 1)!=1) { -- badness = 100; -- return; -- } -- tcflush(fd,TCIOFLUSH); -- } -- -- int tryData() -- { -- if ( !(buffer[0] & 0x40) ) { -- if ( buffer[0] == 0x20 && (bstate & Qt::MidButton) ) { -- mman=1; // mouseman extension -- } -- return 1; -- } -- int extra = mman&&(bstate & Qt::MidButton); -- if ( nbuf >= 3+extra ) { -- int nbstate = 0; -- if ( buffer[0] == 0x40 && !bstate && !buffer[1] && !buffer[2] ) { -- nbstate = Qt::MidButton; -- } else { -- nbstate = ((buffer[0] & 0x20) >> 5) -- | ((buffer[0] & 0x10) >> 3); -- if ( extra && buffer[3] == 0x20 ) -- nbstate = Qt::MidButton; -- } -- -- if ( buffer[1] & 0x40 ) { -- badness++; -- return 1; -- } else { -- motion += -- QPoint((signed char)((buffer[0]&0x3)<<6) -- |(signed char)(buffer[1]&0x3f), -- (signed char)((buffer[0]&0xc)<<4) -- |(signed char)(buffer[2]&0x3f)); -- if ( motion.x() || motion.y() || bstate != nbstate ) { -- bstate = nbstate; -- goodness++; -- } else { -- badness++; -- return 1; -- } -- return 3+extra; -- } -- } -- return 0; -- } --}; -- --/* --QAutoMouseHandler::UsageResult QAutoMouseHandler::useDev(Dev& d) --{ -- if ( d.nbuf >= mouseData[d.protocol].bytesPerPacket ) { -- uchar *mb = d.buf; -- int bstate = 0; -- int dx = 0; -- int dy = 0; -- -- switch (mouseProtocol) { -- case MouseMan: -- case IntelliMouse: -- { -- bstate = mb[0] & 0x7; // assuming Qt::*Button order -- -- int overflow = (mb[0]>>6 )& 0x03; -- if (mouseProtocol == MouseMan && overflow) { -- //### wheel events signalled with overflow bit, ignore for now -- } -- else { -- bool xs = mb[0] & 0x10; -- bool ys = mb[0] & 0x20; -- dx = xs ? mb[1]-256 : mb[1]; -- dy = ys ? mb[2]-256 : mb[2]; -- } -- break; -- } -- case Microsoft: -- if ( ((mb[0] & 0x20) >> 3) ) { -- bstate |= Qt::LeftButton; -- } -- if ( ((mb[0] & 0x10) >> 4) ) { -- bstate |= Qt::RightButton; -- } -- -- dx=(signed char)(((mb[0] & 0x03) << 6) | (mb[1] & 0x3f)); -- dy=-(signed char)(((mb[0] & 0x0c) << 4) | (mb[2] & 0x3f)); -- -- break; -- } -- } -- } --*/ -- --#endif -- --class QAutoMouseHandler : public QWSMouseHandler { -- Q_OBJECT -- --public: -- QAutoMouseHandler(); -- ~QAutoMouseHandler(); -- --#ifndef QT_NO_QWS_MOUSE_AUTO --private: -- enum { max_dev=32 }; -- QAutoMouseSubHandler *sub[max_dev]; -- QList<QSocketNotifier> notifiers; -- int nsub; -- int retries; --#endif -- --private slots: -- void readMouseData(int); -- --private: --#ifndef QT_NO_QWS_MOUSE_AUTO -- void openDevices(); -- void closeDevices(); -- void notify(int fd); -- bool sendEvent(QAutoMouseSubHandler& h) -- { -- if ( h.reliable() ) { -- mousePos += h.takeMotion(); -- limitToScreen( mousePos ); --/* --qDebug("%d,%d %c%c%c", --mousePos.x(),mousePos.y(), --(h.buttonState()&Qt::LeftButton)?'L':'.', --(h.buttonState()&Qt::MidButton)?'M':'.', --(h.buttonState()&Qt::RightButton)?'R':'.'); --*/ -- emit mouseChanged(mousePos,h.buttonState()); -- return TRUE; -- } else { -- h.takeMotion(); -- if ( h.buttonState() & (Qt::RightButton|Qt::MidButton) ) { -- // Strange for the user to press right or middle without -- // a moving mouse! -- h.worse(); -- } -- return FALSE; -- } -- } --#endif --}; -- --QAutoMouseHandler::QAutoMouseHandler() --{ --#ifndef QT_NO_QWS_MOUSE_AUTO -- notifiers.setAutoDelete( TRUE ); -- retries = 0; -- openDevices(); --#endif --} -- --QAutoMouseHandler::~QAutoMouseHandler() --{ --#ifndef QT_NO_QWS_MOUSE_AUTO -- closeDevices(); --#endif --} -- --#ifndef QT_NO_QWS_MOUSE_AUTO --void QAutoMouseHandler::openDevices() --{ -- nsub=0; -- int fd; -- fd = open( "/dev/psaux", O_RDWR | O_NDELAY ); -- if ( fd >= 0 ) { -- sub[nsub++] = new QAutoMouseSubHandler_intellimouse(fd); -- notify(fd); -- } --#if !defined(QT_QWS_IPAQ) && !defined(QT_QWS_SL5XXX) && !defined(QT_QWS_K2) && !defined(QT_QWS_SLC700) -- char fn[] = "/dev/ttyS?"; -- for (int ch='0'; ch<='3'; ch++) { -- fn[9] = ch; -- fd = open( fn, O_RDWR | O_NDELAY ); -- if ( fd >= 0 ) { -- //sub[nsub++] = new QAutoMouseSubHandler_intellimouse(fd); -- sub[nsub++] = new QAutoMouseSubHandler_mousesystems(fd); -- sub[nsub++] = new QAutoMouseSubHandler_ms(fd); -- notify(fd); -- } -- } --#endif -- // ... --} -- --void QAutoMouseHandler::closeDevices() --{ -- int pfd=-1; -- for (int i=0; i<nsub; i++) { -- sub[i]->closeIfNot(pfd); -- delete sub[i]; -- } -- notifiers.clear(); --} -- --void QAutoMouseHandler::notify(int fd) --{ -- QSocketNotifier *mouseNotifier -- = new QSocketNotifier( fd, QSocketNotifier::Read, this ); -- connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData(int))); -- notifiers.append( mouseNotifier ); --} --#endif -- --void QAutoMouseHandler::readMouseData(int fd) --{ --#ifndef QT_NO_QWS_MOUSE_AUTO -- for (;;) { -- uchar buf[8]; -- int n = read(fd, buf, 8); -- if ( n<=0 ) -- break; -- for (int i=0; i<nsub; i++) { -- QAutoMouseSubHandler& h = *sub[i]; -- if ( h.file() == fd ) { -- h.appendData(buf,n); -- for (;;) { -- switch ( h.useData() ) { -- case QAutoMouseSubHandler::Button: -- sendEvent(h); -- break; -- case QAutoMouseSubHandler::Insufficient: -- goto breakbreak; -- case QAutoMouseSubHandler::Motion: -- break; -- } -- } -- breakbreak: -- ; -- } -- } -- } -- bool any_reliable=FALSE; -- for (int i=0; i<nsub; i++) { -- QAutoMouseSubHandler& h = *sub[i]; -- if ( h.motionPending() ) -- sendEvent(h); -- any_reliable = any_reliable || h.reliable(); -- } -- if ( any_reliable ) { -- // ... get rid of all unreliable ones? All bad ones? -- } else if ( retries < 2 ) { -- // Try again - maybe the mouse was being moved when we tried to init. -- closeDevices(); -- openDevices(); -- retries++; -- } --#else -- Q_UNUSED( fd ); --#endif --} -- -- -- -- --/* -- * Standard mouse driver -- */ -- --typedef struct { -- int bytesPerPacket; --} MouseData; -- --static const MouseData mouseData[] = { -- { 3 }, // dummy for auto protocal, correction made by add by YYD -- { 3 }, // MouseMan -- { 4 }, // intelliMouse -- { 3 }, // Microsoft -- { 0 }, // QVFBMouse, -- { 0 }, // TPanel, -- { 3 }, // BusMouse, --}; -- -- --class QWSMouseHandlerPrivate : public QWSMouseHandler { -- Q_OBJECT --public: -- QWSMouseHandlerPrivate( MouseProtocol protocol, QString mouseDev ); -- ~QWSMouseHandlerPrivate(); -- --#ifndef QT_NO_QWS_MOUSE_PC --private: -- static const int mouseBufSize = 128; -- int mouseFD; -- int mouseIdx; -- uchar mouseBuf[mouseBufSize]; -- MouseProtocol mouseProtocol; -- void handleMouseData(); --#endif -- --private slots: -- void readMouseData(); -- --private: -- int obstate; --}; -- -- --void QWSMouseHandlerPrivate::readMouseData() --{ --#ifndef QT_NO_QWS_MOUSE_PC -- int n; -- if ( BusMouse == mouseProtocol ) { -- // a workaround of linux busmouse driver interface. -- // It'll only read 3 bytes a time and return all other buffer zeroed, thus cause protocol errors -- for (;;) { -- if ( mouseBufSize - mouseIdx < 3 ) -- break; -- n = read( mouseFD, mouseBuf+mouseIdx, 3 ); -- if ( n != 3 ) -- break; -- mouseIdx += 3; -- } -- } else { -- do { -- n = read(mouseFD, mouseBuf+mouseIdx, mouseBufSize-mouseIdx ); -- if ( n > 0 ) -- mouseIdx += n; -- } while ( n > 0 ); -- } -- handleMouseData(); --#endif --} -- -- --#ifndef QT_NO_QWS_MOUSE_PC --/* --*/ -- --void QWSMouseHandlerPrivate::handleMouseData() --{ -- static const int accel_limit = 5; -- static const int accel = 2; -- -- int idx = 0; -- int bstate = 0; -- int dx = 0, dy = 0; -- bool sendEvent = false; -- int tdx = 0, tdy = 0; -- -- while ( mouseIdx-idx >= mouseData[mouseProtocol].bytesPerPacket ) { -- //qDebug( "Got mouse data" ); -- uchar *mb = mouseBuf+idx; -- bstate = 0; -- dx = 0; -- dy = 0; -- sendEvent = false; -- switch (mouseProtocol) { -- case MouseMan: -- case IntelliMouse: -- { -- if (mb[0] & 0x01) -- bstate |= Qt::LeftButton; -- if (mb[0] & 0x02) -- bstate |= Qt::RightButton; -- if (mb[0] & 0x04) -- bstate |= Qt::MidButton; -- -- int overflow = (mb[0]>>6 )& 0x03; -- if (mouseProtocol == MouseMan && overflow) { -- //### wheel events signalled with overflow bit, ignore for now -- } -- else { -- bool xs = mb[0] & 0x10; -- bool ys = mb[0] & 0x20; -- dx = xs ? mb[1]-256 : mb[1]; -- dy = ys ? mb[2]-256 : mb[2]; - -- sendEvent = true; -- } --#if 0 //debug -- if (mouseProtocol == MouseMan) -- printf("(%2d) %02x %02x %02x ", idx, mb[0], mb[1], mb[2]); -- else -- printf("(%2d) %02x %02x %02x %02x ",idx,mb[0],mb[1],mb[2],mb[3]); -- const char *b1 = (mb[0] & 0x01) ? "b1":" ";//left -- const char *b2 = (mb[0] & 0x02) ? "b2":" ";//right -- const char *b3 = (mb[0] & 0x04) ? "b3":" ";//mid - -- if ( overflow ) -- printf( "Overflow%d %s %s %s (%4d,%4d)\n", overflow, -- b1, b2, b3, mousePos.x(), mousePos.y() ); -- else -- printf( "%s %s %s (%+3d,%+3d) (%4d,%4d)\n", -- b1, b2, b3, dx, dy, mousePos.x(), mousePos.y() ); --#endif -- break; -- } -- case Microsoft: -- if ( (mb[0] & 0x20) ) -- bstate |= Qt::LeftButton; -- if ( (mb[0] & 0x10) ) -- bstate |= Qt::RightButton; -- -- dx=(signed char)(((mb[0] & 0x03) << 6) | (mb[1] & 0x3f)); -- dy=-(signed char)(((mb[0] & 0x0c) << 4) | (mb[2] & 0x3f)); -- sendEvent=true; -- -- break; -- case BusMouse: -- if ( !(mb[0] & 0x04) ) -- bstate |= Qt::LeftButton; -- if ( !(mb[0] & 0x01) ) -- bstate |= Qt::RightButton; -- -- dx=(signed char)mb[1]; -- dy=(signed char)mb[2]; -- sendEvent=true; -- break; -- -- default: -- qWarning( "Unknown mouse protocol in QWSMouseHandlerPrivate" ); -- break; -- } -- if (sendEvent) { -- if ( QABS(dx) > accel_limit || QABS(dy) > accel_limit ) { -- dx *= accel; -- dy *= accel; -- } -- tdx += dx; -- tdy += dy; -- if ( bstate != obstate ) { -- mousePos += QPoint(tdx,-tdy); -- limitToScreen( mousePos ); -- emit mouseChanged(mousePos,bstate); -- sendEvent = FALSE; -- tdx = 0; -- tdy = 0; -- obstate = bstate; -- } -- } -- idx += mouseData[mouseProtocol].bytesPerPacket; -- } -- if ( sendEvent ) { -- mousePos += QPoint(tdx,-tdy); -- limitToScreen( mousePos ); -- emit mouseChanged(mousePos,bstate); -- } -- -- int surplus = mouseIdx - idx; -- for ( int i = 0; i < surplus; i++ ) -- mouseBuf[i] = mouseBuf[idx+i]; -- mouseIdx = surplus; --} --#endif -- -- --QWSMouseHandlerPrivate::QWSMouseHandlerPrivate( MouseProtocol protocol, -- QString mouseDev ) --{ --#ifndef QT_NO_QWS_MOUSE_PC -- mouseProtocol = protocol; -- -- if ( mouseDev.isEmpty() ) -- mouseDev = "/dev/mouse"; -- obstate = -1; -- mouseFD = -1; -- mouseFD = open( mouseDev.local8Bit().data(), O_RDWR | O_NDELAY); -- if ( mouseFD < 0 ) { -- mouseFD = open( mouseDev.local8Bit().data(), O_RDONLY | O_NDELAY); -- if ( mouseFD < 0 ) -- qDebug( "Cannot open %s (%s)", mouseDev.ascii(), -- strerror(errno)); -- } else { -- // Clear pending input -- tcflush(mouseFD,TCIFLUSH); -- -- bool ps2 = false; -- -- switch (mouseProtocol) { -- case MouseMan: -- ps2 = true; -- write(mouseFD,"",1); -- usleep(50000); -- write(mouseFD,"@EeI!",5); -- break; -- -- case IntelliMouse: { --// ps2 = true; -- const unsigned char init1[] = { 243, 200, 243, 100, 243, 80 }; -- const unsigned char init2[] = { 246, 230, 244, 243, 100, 232, 3 }; -- write(mouseFD,init1,sizeof(init1)); -- usleep(50000); -- write(mouseFD,init2,sizeof(init2)); -- } -- break; -- -- case Microsoft: -- struct termios tty; -- -- tcgetattr(mouseFD, &tty); -- -- tty.c_iflag = IGNBRK | IGNPAR; -- tty.c_oflag = 0; -- tty.c_lflag = 0; --#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_) -- tty.c_line = 0; --#endif // _OS_FREEBSD_ -- tty.c_cc[VTIME] = 0; -- tty.c_cc[VMIN] = 1; -- tty.c_cflag = B1200 | CS7 | CREAD | CLOCAL | HUPCL; -- tcsetattr(mouseFD, TCSAFLUSH, &tty); /* set parameters */ -- break; -- -- case BusMouse: -- usleep(50000); -- break; -- -- default: -- qDebug("Unknown mouse protocol"); -- exit(1); -- } -- -- if (ps2) { -- char buf[] = { 246, 244 }; -- write(mouseFD,buf,1); -- write(mouseFD,buf+1,1); -- } -- -- usleep(50000); -- tcflush(mouseFD,TCIFLUSH); // ### doesn't seem to work. -- usleep(50000); -- tcflush(mouseFD,TCIFLUSH); // ### doesn't seem to work. -- -- char buf[100]; // busmouse driver will not read if bufsize < 3, YYD -- while (read(mouseFD, buf, 100) > 0) { } // eat unwanted replies -- -- mouseIdx = 0; -- -- QSocketNotifier *mouseNotifier; -- mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, this ); -- connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData())); -- } --#else -- Q_UNUSED(protocol); -- Q_UNUSED(mouseDev); --#endif --} -- --QWSMouseHandlerPrivate::~QWSMouseHandlerPrivate() --{ --#ifndef QT_NO_QWS_MOUSE_PC -- if (mouseFD >= 0) { -- tcflush(mouseFD,TCIFLUSH); // yyd. -- close(mouseFD); -- } --#endif --} -- --/* -- * -- */ - - QCalibratedMouseHandler::QCalibratedMouseHandler() - : samples(5), currSample(0), numSamples(0) -@@ -1030,7 +180,8 @@ - if ( file.open( IO_WriteOnly ) ) { - QTextStream t( &file ); - t << a << " " << b << " " << c << " "; -- t << d << " " << e << " " << f << " " << s; -+ t << d << " " << e << " " << f << " " << s << endl; -+ file.close(); - } else - #endif - { -@@ -1046,6 +197,7 @@ - if ( file.open( IO_ReadOnly ) ) { - QTextStream t( &file ); - t >> a >> b >> c >> d >> e >> f >> s; -+ file.close(); - } else - #endif - { -@@ -1073,12 +225,24 @@ - writeCalibration(); - } - -+void QCalibratedMouseHandler::setCalibration(int aa, int bb, int cc, int dd, int ee, int ff, int ss) -+{ -+ a = aa; -+ b = bb; -+ c = cc; -+ d = dd; -+ e = ee; -+ f = ff; -+ s = ss; -+} -+ - QPoint QCalibratedMouseHandler::transform( const QPoint &p ) - { - QPoint tp; - - tp.setX( (a * p.x() + b * p.y() + c) / s ); - tp.setY( (d * p.x() + e * p.y() + f) / s ); -+//qDebug("QCalibratedMouseHandler::transform(%d,%d) -> %d,%d)", p.x(), p.y(), tp.x(), tp.y() ); - - return tp; - } -@@ -1143,814 +307,192 @@ - return sent; - } - --/* -- * Handler for /dev/tpanel Linux kernel driver -- */ - --class QVrTPanelHandlerPrivate : public QCalibratedMouseHandler { -- Q_OBJECT --public: -- QVrTPanelHandlerPrivate(MouseProtocol, QString dev); -- ~QVrTPanelHandlerPrivate(); - --private: -- int mouseFD; -- MouseProtocol mouseProtocol; --private slots: -- void sendRelease(); -- void readMouseData(); --private: -- static const int mouseBufSize = 1280; -- QTimer *rtimer; -- int mouseIdx; -- uchar mouseBuf[mouseBufSize]; --}; - --#ifndef QT_QWS_CASSIOPEIA --QVrTPanelHandlerPrivate::QVrTPanelHandlerPrivate( MouseProtocol, QString ) : -- QCalibratedMouseHandler() --{ --} --#else --QVrTPanelHandlerPrivate::QVrTPanelHandlerPrivate( MouseProtocol, QString dev ) : -- QCalibratedMouseHandler() --{ -- if ( dev.isEmpty() ) -- dev = "/dev/tpanel"; -- -- if ((mouseFD = open( dev, O_RDONLY)) < 0) { -- qFatal( "Cannot open %s (%s)", dev.latin1(), strerror(errno)); -- } else { -- sleep(1); -- } -- -- struct scanparam s; -- s.interval = 20000; -- s.settletime = 480; -- if ( ioctl(mouseFD, TPSETSCANPARM, &s) < 0 -- || fcntl(mouseFD, F_SETFL, O_NONBLOCK) < 0 ) -- qWarning("Error initializing touch panel."); -- -- QSocketNotifier *mouseNotifier; -- mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, -- this ); -- connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData())); -- -- rtimer = new QTimer( this ); -- connect( rtimer, SIGNAL(timeout()), this, SLOT(sendRelease())); -- mouseIdx = 0; -- setFilterSize( 3 ); -- -- printf("\033[?25l"); fflush(stdout); // VT100 cursor off --} --#endif -- --QVrTPanelHandlerPrivate::~QVrTPanelHandlerPrivate() --{ -- if (mouseFD >= 0) -- close(mouseFD); --} -- --void QVrTPanelHandlerPrivate::sendRelease() --{ -- sendFiltered( mousePos, 0 ); --} - --void QVrTPanelHandlerPrivate::readMouseData() --{ --#ifdef QT_QWS_CASSIOPEIA -- if(!qt_screen) -- return; -- static bool pressed = FALSE; -- -- int n; -- do { -- n = read(mouseFD, mouseBuf+mouseIdx, mouseBufSize-mouseIdx ); -- if ( n > 0 ) -- mouseIdx += n; -- } while ( n > 0 && mouseIdx < mouseBufSize ); -- -- int idx = 0; -- while ( mouseIdx-idx >= (int)sizeof( short ) * 6 ) { -- uchar *mb = mouseBuf+idx; -- ushort *data = (ushort *) mb; -- if ( data[0] & 0x8000 ) { -- if ( data[5] > 750 ) { -- QPoint t(data[3]-data[4],data[2]-data[1]); -- if ( sendFiltered( t, Qt::LeftButton ) ) -- pressed = TRUE; -- if ( pressed ) -- rtimer->start( 200, TRUE ); // release unreliable -- } -- } else if ( pressed ) { -- rtimer->start( 50, TRUE ); -- pressed = FALSE; -- } -- idx += sizeof( ushort ) * 6; -- } -+struct input_event { -+ struct timeval time; -+ unsigned short type; -+ unsigned short code; -+ unsigned int value; -+}; - -- int surplus = mouseIdx - idx; -- for ( int i = 0; i < surplus; i++ ) -- mouseBuf[i] = mouseBuf[idx+i]; -- mouseIdx = surplus; - --#endif --} -+#define EV_ABS 0x03 -+#define ABS_X 0x00 -+#define ABS_Y 0x01 -+#define ABS_PRESSURE 0x18 - - --class QTPanelHandlerPrivate : public QCalibratedMouseHandler -+class QInputEventHandler : public QCalibratedMouseHandler - { - Q_OBJECT - public: -- QTPanelHandlerPrivate(MouseProtocol, QString dev); -- ~QTPanelHandlerPrivate(); -+ QInputEventHandler(MouseProtocol, QString dev); -+ ~QInputEventHandler(); -+ -+ virtual void calibrate( QWSPointerCalibrationData * ); -+ virtual void setCalibration(int aa, int bb, int cc, int dd, int ee, int ff, int ss); - - private: -- static const int mouseBufSize = 2048; -+ void init(); -+ void fini(); -+ - int mouseFD; -- QPoint oldmouse; -- QPoint oldTotalMousePos; -- bool waspressed; -- QPointArray samples; -- unsigned int currSample; -- unsigned int lastSample; -- unsigned int numSamples; -- int skipCount; -- int mouseIdx; -- uchar mouseBuf[mouseBufSize]; -+ struct input_event sample; -+ int myX, myY, myP, oldX, oldY, oldP; -+ int xtable[QT_QWS_TP_TABLE_SIZE]; -+ int ytable[QT_QWS_TP_TABLE_SIZE]; -+ int ptr; - - private slots: - void readMouseData(); - }; - - --QTPanelHandlerPrivate::QTPanelHandlerPrivate( MouseProtocol, QString dev ) -- : samples(QT_QWS_TP_SAMPLE_SIZE), currSample(0), lastSample(0), -- numSamples(0), skipCount(0) --{ -- Q_UNUSED(dev); --#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) --#if defined(QT_QWS_IPAQ) --# ifdef QT_QWS_IPAQ_RAW -- if ((mouseFD = open( "/dev/h3600_tsraw", O_RDONLY | O_NDELAY)) < 0) { --# else -- if ((mouseFD = open( "/dev/h3600_ts", O_RDONLY | O_NDELAY)) < 0) { --# endif -- qWarning( "Cannot open /dev/h3600_ts (%s)", strerror(errno)); -- return; -- } --#elif defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) --//# ifdef QT_QWS_SL5XXX_TSRAW --# if 0 -- if ((mouseFD = open( "/dev/tsraw", O_RDONLY | O_NDELAY)) < 0) { -- qWarning( "Cannot open /dev/tsraw (%s)", strerror(errno)); -- return; -- } --# else -- if ((mouseFD = open( "/dev/ts", O_RDONLY | O_NDELAY)) < 0) { -- qWarning( "Cannot open /dev/ts (%s)", strerror(errno)); -- return; -- } --# endif --#elif defined(QT_QWS_SIMPAD ) -- if ((mouseFD = open( "/dev/touchscreen/ucb1x00", O_RDONLY | O_NONBLOCK )) < 0) { -- qWarning( "Cannot open /dev/touchscreen/ucb1x00 (%s)", strerror(errno)); -- return; -- } --#endif -- -- QSocketNotifier *mouseNotifier; -- mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, -- this ); -- connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData())); -- waspressed=FALSE; -- mouseIdx = 0; --#endif --} -- --QTPanelHandlerPrivate::~QTPanelHandlerPrivate() -+QInputEventHandler::QInputEventHandler( MouseProtocol, QString ) -+ : myP(-1) - { --#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) || defined(QT_QWS_SIMPAD) -- if (mouseFD >= 0) -- close(mouseFD); --#endif -+ init(); - } - --void QTPanelHandlerPrivate::readMouseData() -+QInputEventHandler::~QInputEventHandler() - { --#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) || defined(QT_QWS_SIMPAD) -- if(!qt_screen) -- return; -- -- int n; -- do { -- n = read(mouseFD, mouseBuf+mouseIdx, mouseBufSize-mouseIdx ); -- if ( n > 0 ) -- mouseIdx += n; -- } while ( n > 0 && mouseIdx < mouseBufSize ); -- -- TS_EVENT *data; -- int idx = 0; -- -- // perhaps we shouldn't be reading EVERY SAMPLE. -- while ( mouseIdx-idx >= (int)sizeof( TS_EVENT ) ) { -- uchar *mb = mouseBuf+idx; -- data = (TS_EVENT *) mb; -- if(data->pressure >= QT_QWS_TP_PRESSURE_THRESHOLD) { --#if defined(QT_QWS_SL5XXX) || defined(QT_QWS_SLC700) -- samples[currSample] = QPoint( 1000 - data->x, data->y ); --#else -- samples[currSample] = QPoint( data->x, data->y ); --#endif -- -- numSamples++; -- if ( numSamples >= QT_QWS_TP_MINIMUM_SAMPLES ) { -- int sampleCount = QMIN(numSamples + 1,samples.count()); -- -- // average the rest -- mousePos = QPoint( 0, 0 ); -- QPoint totalMousePos = oldTotalMousePos; -- totalMousePos += samples[currSample]; -- if(numSamples >= samples.count()) -- totalMousePos -= samples[lastSample]; -- -- mousePos = totalMousePos / (sampleCount - 1); -- --# if defined(QT_QWS_IPAQ_RAW) || defined(QT_QWS_SL5XXX_RAW) -- mousePos = transform( mousePos ); --# endif -- if(!waspressed) -- oldmouse = mousePos; -- QPoint dp = mousePos - oldmouse; -- int dxSqr = dp.x() * dp.x(); -- int dySqr = dp.y() * dp.y(); -- if ( dxSqr + dySqr < (QT_QWS_TP_MOVE_LIMIT * QT_QWS_TP_MOVE_LIMIT) ) { -- if ( waspressed ) { -- if ( (dxSqr + dySqr > (QT_QWS_TP_JITTER_LIMIT * QT_QWS_TP_JITTER_LIMIT) ) || skipCount > 2) { -- emit mouseChanged(mousePos,Qt::LeftButton); -- oldmouse = mousePos; -- skipCount = 0; -- } else { -- skipCount++; -- } -- } else { -- emit mouseChanged(mousePos,Qt::LeftButton); -- oldmouse=mousePos; -- waspressed=true; -- } -- -- // save recuring information -- currSample++; -- if (numSamples >= samples.count()) -- lastSample++; -- oldTotalMousePos = totalMousePos; -- } else { -- numSamples--; // don't use this sample, it was bad. -- } -- } else { -- // build up the average -- oldTotalMousePos += samples[currSample]; -- currSample++; -- } -- if ( currSample >= samples.count() ) -- currSample = 0; -- if ( lastSample >= samples.count() ) -- lastSample = 0; -- } else { -- currSample = 0; -- lastSample = 0; -- numSamples = 0; -- skipCount = 0; -- oldTotalMousePos = QPoint(0,0); -- if ( waspressed ) { -- emit mouseChanged(oldmouse,0); -- oldmouse = QPoint( -100, -100 ); -- waspressed=false; -- } -- } -- idx += sizeof( TS_EVENT ); -- } -+ fini(); - -- int surplus = mouseIdx - idx; -- for ( int i = 0; i < surplus; i++ ) -- mouseBuf[i] = mouseBuf[idx+i]; -- mouseIdx = surplus; --#endif - } - --// YOPY touch panel support based on changes contributed by Ron Victorelli --// (victorrj at icubed.com) to Custom TP driver. --// --class QYopyTPanelHandlerPrivate : public QWSMouseHandler { -- Q_OBJECT --public: -- QYopyTPanelHandlerPrivate(MouseProtocol, QString dev); -- ~QYopyTPanelHandlerPrivate(); -- --private: -- int mouseFD; -- int prevstate; --private slots: -- void readMouseData(); -- --}; -- --QYopyTPanelHandlerPrivate::QYopyTPanelHandlerPrivate( MouseProtocol, QString ) -+void QInputEventHandler::setCalibration(int aa, int bb, int cc, int dd, int ee, int ff, int ss) - { --#ifdef QT_QWS_YOPY -- if ((mouseFD = open( "/dev/ts", O_RDONLY)) < 0) { -- qWarning( "Cannot open /dev/ts (%s)", strerror(errno)); -- return; -- } else { -- sleep(1); -- } -- prevstate=0; -- QSocketNotifier *mouseNotifier; -- mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, -- this ); -- connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData())); --#endif --} -+ QCalibratedMouseHandler::setCalibration(aa, bb, cc, dd, ee, ff, ss); - --QYopyTPanelHandlerPrivate::~QYopyTPanelHandlerPrivate() --{ -- if (mouseFD >= 0) -- close(mouseFD); -+ writeCalibration(); -+ fini(); -+ init(); - } - --#define YOPY_XPOS(d) (d[1]&0x3FF) --#define YOPY_YPOS(d) (d[2]&0x3FF) --#define YOPY_PRES(d) (d[0]&0xFF) --#define YOPY_STAT(d) (d[3]&0x01 ) -- --struct YopyTPdata { -- -- unsigned char status; -- unsigned short xpos; -- unsigned short ypos; -- --}; -- --void QYopyTPanelHandlerPrivate::readMouseData() -+void QInputEventHandler::calibrate( QWSPointerCalibrationData *cd ) - { --#ifdef QT_QWS_YOPY -- if(!qt_screen) -- return; -- YopyTPdata data; -- -- unsigned int yopDat[4]; -- -- int ret; -- -- ret=read(mouseFD,&yopDat,sizeof(yopDat)); -+ QCalibratedMouseHandler::calibrate( cd ); - -- if(ret) { -- data.status= ( YOPY_PRES(yopDat) ) ? 1 : 0; -- data.xpos=YOPY_XPOS(yopDat); -- data.ypos=YOPY_YPOS(yopDat); -- QPoint q; -- q.setX(data.xpos); -- q.setY(data.ypos); -- mousePos=q; -- if(data.status && !prevstate) { -- emit mouseChanged(mousePos,Qt::LeftButton); -- } else if( !data.status && prevstate ) { -- emit mouseChanged(mousePos,0); -- } -- prevstate = data.status; -- } -- if(ret<0) { -- qDebug("Error %s",strerror(errno)); -- } --#endif -+ // write calibration data, and close and reopen -+ // tslib, in order to ensure it uses the new values -+ writeCalibration(); -+ fini(); -+ init(); - } - --class QCustomTPanelHandlerPrivate : public QWSMouseHandler { -- Q_OBJECT --public: -- QCustomTPanelHandlerPrivate(MouseProtocol, QString dev); -- ~QCustomTPanelHandlerPrivate(); -- --private: -- int mouseFD; --private slots: -- void readMouseData(); -- --}; -- --QCustomTPanelHandlerPrivate::QCustomTPanelHandlerPrivate( MouseProtocol, QString ) -+void QInputEventHandler::init() - { --#ifdef QWS_CUSTOMTOUCHPANEL -- if ((mouseFD = open( "/dev/ts", O_RDONLY)) < 0) { -- qWarning( "Cannot open /dev/ts (%s)", strerror(errno)); -+ if ((mouseFD = open( "/dev/input/event1", O_RDONLY)) < 0) { -+ qWarning( "Cannot open /dev/input/event1 (%s)", strerror(errno)); - return; -- } else { -- sleep(1); - } - - QSocketNotifier *mouseNotifier; -- mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, -- this ); -+ mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, this ); -+ setFilterSize(2); - connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData())); --#endif - } - --QCustomTPanelHandlerPrivate::~QCustomTPanelHandlerPrivate() -+void QInputEventHandler::fini() - { - if (mouseFD >= 0) - close(mouseFD); - } - --struct CustomTPdata { -- -- unsigned char status; -- unsigned short xpos; -- unsigned short ypos; -- --}; -- --void QCustomTPanelHandlerPrivate::readMouseData() -+void QInputEventHandler::readMouseData() - { --#ifdef QWS_CUSTOMTOUCHPANEL -- if(!qt_screen) -- return; -- CustomTPdata data; -- -- unsigned char data2[5]; -- -- int ret; -- -- ret=read(mouseFD,data2,5); -+ if (!qt_screen) -+ return; - -- if(ret==5) { -- data.status=data2[0]; -- data.xpos=(data2[1] << 8) | data2[2]; -- data.ypos=(data2[3] << 8) | data2[4]; -- QPoint q; -- q.setX(data.xpos); -- q.setY(data.ypos); -- mousePos=q; -- if(data.status & 0x40) { -- emit mouseChanged(mousePos,Qt::LeftButton); -- } else { -- emit mouseChanged(mousePos,0); -+ unsigned int size = read(mouseFD, &sample, sizeof(sample)); -+ if (size < sizeof(sample)) { -+ qDebug("no input"); -+ return; -+ } -+ //qDebug("type,code,val: %d,%d,%d", sample.type, sample.code, sample.value); -+ if (sample.type == EV_ABS) { -+ if (sample.code == ABS_Y) { -+ myY = sample.value; -+ return; -+ } else -+ if (sample.code == ABS_X) { -+ myX = sample.value; -+ return; -+ } else -+ if (sample.code == ABS_PRESSURE) { -+ myP = sample.value; -+ } - } -- } -- if(ret<0) { -- qDebug("Error %s",strerror(errno)); -- } --#endif --} -- --/* -- * Virtual framebuffer mouse driver -- */ -- --#ifndef QT_NO_QWS_VFB --#include "qvfbhdr.h" --extern int qws_display_id; --#endif -- --class QVFbMouseHandlerPrivate : public QWSMouseHandler { -- Q_OBJECT --public: -- QVFbMouseHandlerPrivate(MouseProtocol, QString dev); -- ~QVFbMouseHandlerPrivate(); -- --#ifndef QT_NO_QWS_VFB -- bool isOpen() const { return mouseFD > 0; } -- --private: -- static const int mouseBufSize = 128; -- int mouseFD; -- int mouseIdx; -- uchar mouseBuf[mouseBufSize]; --#endif -- --private slots: -- void readMouseData(); --}; -- --QVFbMouseHandlerPrivate::QVFbMouseHandlerPrivate( MouseProtocol, QString mouseDev ) --{ --#ifndef QT_NO_QWS_VFB -- mouseFD = -1; -- if ( mouseDev.isEmpty() ) -- mouseDev = QString(QT_VFB_MOUSE_PIPE).arg(qws_display_id); -- -- if ((mouseFD = open( mouseDev.local8Bit().data(), O_RDWR | O_NDELAY)) < 0) { -- qDebug( "Cannot open %s (%s)", mouseDev.ascii(), -- strerror(errno)); -- } else { -- // Clear pending input -- char buf[2]; -- while (read(mouseFD, buf, 1) > 0) { } -- -- mouseIdx = 0; -- -- QSocketNotifier *mouseNotifier; -- mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, this ); -- connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData())); -- } --#endif --} -- --QVFbMouseHandlerPrivate::~QVFbMouseHandlerPrivate() --{ --#ifndef QT_NO_QWS_VFB -- if (mouseFD >= 0) -- close(mouseFD); --#endif --} -- --void QVFbMouseHandlerPrivate::readMouseData() --{ --#ifndef QT_NO_QWS_VFB -- int n; -- do { -- n = read(mouseFD, mouseBuf+mouseIdx, mouseBufSize-mouseIdx ); -- if ( n > 0 ) -- mouseIdx += n; -- } while ( n > 0 ); -- -- int idx = 0; -- while ( mouseIdx-idx >= int(sizeof( QPoint ) + sizeof( int )) ) { -- uchar *mb = mouseBuf+idx; -- QPoint *p = (QPoint *) mb; -- mb += sizeof( QPoint ); -- int *bstate = (int *)mb; -- mousePos = *p; -- limitToScreen( mousePos ); -- emit mouseChanged(mousePos, *bstate); -- idx += sizeof( QPoint ) + sizeof( int ); -- } -- -- int surplus = mouseIdx - idx; -- for ( int i = 0; i < surplus; i++ ) -- mouseBuf[i] = mouseBuf[idx+i]; -- mouseIdx = surplus; --#endif --} -- --/* -- mouse handler for tslib -- see http://cvs.arm.linux.org.uk/ -- */ --/* -- -- Copyright (C) 2003, 2004, 2005 Texas Instruments, Inc. -- Copyright (C) 2004, 2005 Holger Hans Peter Freyther -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name Texas Instruments, Inc nor the names of its -- contributors may be used to endorse or promote products derived -- from this software without specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -- IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- --*/ --class QTSLibHandlerPrivate : public QCalibratedMouseHandler --{ -- Q_OBJECT --public: -- QTSLibHandlerPrivate(); -- ~QTSLibHandlerPrivate(); -- -- virtual void clearCalibration(); -- virtual void calibrate( QWSPointerCalibrationData * ); -- static int sortByX( const void*, const void* ); -- static int sortByY( const void*, const void* ); -- --private: -- bool m_raw : 1; -- QSocketNotifier *m_notify; -- --#ifdef QT_QWS_TSLIB -- struct tsdev *m_ts; --#endif -- void openTs(); -- void closeTs(); -- void interpolateSample(); -- --private slots: -- void readMouseData(); -- --}; -- --QTSLibHandlerPrivate::QTSLibHandlerPrivate() -- : m_raw(false), m_notify(0 ) --{ -- openTs(); --} -- --QTSLibHandlerPrivate::~QTSLibHandlerPrivate() --{ -- closeTs(); --} -- --void QTSLibHandlerPrivate::openTs() --{ --#ifdef QT_QWS_TSLIB -- char *tsdevice; -- if((tsdevice = getenv("TSLIB_TSDEVICE")) != NULL) { -- m_ts = ts_open( tsdevice, 1 ); //1 = nonblocking, 0 = blocking mode -- } else { -- m_ts = ts_open( "/dev/ts", 1 ); -- } -- -- if (!m_ts) { -- qWarning( "Cannot open touchscreen (%s)", strerror( errno)); -- return; -- } -- -- if (ts_config( m_ts)) { -- qWarning( "Cannot configure touchscreen (%s)", strerror( errno)); -- return; -- } -- m_notify = new QSocketNotifier( ts_fd(m_ts), QSocketNotifier::Read, this ); -- connect( m_notify, SIGNAL(activated(int)),this, SLOT(readMouseData())); --#endif --} -- --void QTSLibHandlerPrivate::closeTs() --{ --#ifdef QT_QWS_TSLIB -- if (m_ts) -- ts_close(m_ts); -- m_ts = 0; --#endif -- -- delete m_notify; -- m_notify = 0; -- m_raw = false; --} -- --void QTSLibHandlerPrivate::clearCalibration() --{ -- m_raw = true; --} -- --void QTSLibHandlerPrivate::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(); -+ // up->up -+ if (oldP==0 && myP==0) { -+ //qDebug("uu %d,%d,%d", myX,myY,myP); -+ return; -+ } - -- 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(); -+ // up->down -+ if (oldP==0 && myP>QT_QWS_TP_PRESSURE_DOWN_THRESHOLD) { -+ //qDebug("ud %d,%d,%d", myX,myY,myP); - -- 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() ); -- } --} -+ xtable[0] = myX; -+ ytable[0] = myY; -+ ptr = 1; -+ oldX = myX; -+ oldY = myY; -+ oldP = myP; -+ return; -+ } - --void QTSLibHandlerPrivate::readMouseData() --{ --#ifdef QT_QWS_TSLIB -- if(!qt_screen) -- return; -+ // down->down -+ if (oldP>QT_QWS_TP_PRESSURE_DOWN_THRESHOLD && myP>QT_QWS_TP_PRESSURE_UP_THRESHOLD) { -+ //qDebug("dd %d,%d,%d (%d,%d)", myX,myY,myP, oldX,oldY); - -- /* -- * After clear Calibration -- * we're in raw mode and do some easy median -- * search. -- */ -- if ( m_raw ) -- return interpolateSample(); -+ int dxSqr = myX-oldX; dxSqr *= dxSqr; -+ int dySqr = myY-oldY; dySqr *= dySqr; -+ oldX = myX; -+ oldY = myY; -+ if (dxSqr+dySqr > QT_QWS_TP_MOVE_MAX*QT_QWS_TP_MOVE_MAX) { -+ //qWarning("distance too wide %d", dxSqr+dySqr); -+ return; -+ } - -- static struct ts_sample sample; -- static int ret; -+ if (ptr < QT_QWS_TP_TABLE_SIZE) { -+ xtable[ptr] = myX; -+ ytable[ptr++] = myY; -+ } - -- /* -- * 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(m_ts, &sample, 1)) != 1 ) -- return; -+ if (ptr == QT_QWS_TP_TABLE_SIZE) { -+ int i; -+ int mx = 0; -+ int my = 0; -+ for (i=0; i<QT_QWS_TP_TABLE_SIZE; i++) { -+ mx += xtable[i]; -+ my += ytable[i]; -+ if (i>0) { -+ xtable[i-1] = xtable[i]; -+ ytable[i-1] = ytable[i]; -+ } -+ } -+ ptr--; -+ mousePos = transform(QPoint(mx/QT_QWS_TP_TABLE_SIZE, my/QT_QWS_TP_TABLE_SIZE)); - -+ emit mouseChanged(mousePos, Qt::LeftButton); -+ } -+ return; -+ } - -- QPoint pos( sample.x, sample.y ); -- mouseChanged( pos, sample.pressure != 0 ? 1 : 0 ); -- } --#endif -+ // down->up -+ //qDebug("du %d,%d,%d", myX,myY,myP); -+ emit mouseChanged(mousePos, 0); -+ oldP = 0; - } - --/* -- * Lets take all down events and then sort them -- * and take the event in the middle. -- * -- * inspired by testutils.c -- */ --void QTSLibHandlerPrivate::interpolateSample() { --#ifdef QT_QWS_TSLIB --#define TSLIB_MAX_SAMPLES 25 -- static struct ts_sample samples[TSLIB_MAX_SAMPLES]; -- int index = 0; -- int read_samples = 0; -- int ret; -- -- do { -- /* do not access negative arrays */ -- if ( index < 0 ) -- index = 0; -- -- /* we're opened non-blocking */ -- if((ret= ts_read_raw(m_ts, &samples[index], 1 ) ) != 1 ) -- /* no event yet, so try again */ -- if (ret==-1 ) -- continue; -- -- read_samples++; -- index = (index+1)%TSLIB_MAX_SAMPLES; -- }while (samples[index == 0 ? (TSLIB_MAX_SAMPLES-1) : index-1].pressure != 0); -- -- /* -- * If we've wrapped around each sample is used otherwise -- * we will use the index -- */ -- index = read_samples >= TSLIB_MAX_SAMPLES ? -- (TSLIB_MAX_SAMPLES-1 ) : index; -- 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), QTSLibHandlerPrivate::sortByX); -- x = (index % 2 ) ? samples[m].x : -- ( samples[m-1].x + samples[m].x )/2; -- -- ::qsort(samples, index, sizeof(ts_sample), QTSLibHandlerPrivate::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 ); --#endif --} - --int QTSLibHandlerPrivate::sortByX( const void* one, const void* two) { --#ifdef QT_QWS_TSLIB -- return reinterpret_cast<const struct ts_sample*>(one)->x - -- reinterpret_cast<const struct ts_sample*>(two)->x; --#else -- return 0; --#endif --} - --int QTSLibHandlerPrivate::sortByY( const void* one, const void* two) { --#ifdef QT_QWS_TSLIB -- return reinterpret_cast<const struct ts_sample*>(one)->y - -- reinterpret_cast<const struct ts_sample*>(two)->y; --#else -- return 0; --#endif --} --////// - - /* - * return a QWSMouseHandler that supports /a spec. -@@ -1977,7 +519,7 @@ - - if ( mouseProto == "USB" && mouseDev.isEmpty() ) - mouseDev = "/dev/input/mice"; -- -+ - MouseProtocol mouseProtocol = Unknown; - - int idx = 0; -@@ -1988,50 +530,7 @@ - idx++; - } - -- -- QWSMouseHandler *handler = 0; -- -- switch ( mouseProtocol ) { --#ifndef QT_NO_QWS_MOUSE_AUTO -- case Auto: -- handler = new QAutoMouseHandler(); -- break; --#endif -- --#ifndef QT_NO_QWS_MOUSE_PC -- case MouseMan: -- case IntelliMouse: -- case Microsoft: -- case BusMouse: -- handler = new QWSMouseHandlerPrivate( mouseProtocol, mouseDev ); -- break; --#endif -- --#ifndef QT_NO_QWS_VFB -- case QVFBMouse: -- handler = new QVFbMouseHandlerPrivate( mouseProtocol, mouseDev ); -- break; --#endif -- -- case TPanel: --#if defined(QWS_CUSTOMTOUCHPANEL) -- handler = new QCustomTPanelHandlerPrivate(mouseProtocol,mouseDev); --#elif defined(QT_QWS_TSLIB) -- handler = new QTSLibHandlerPrivate(); --#elif defined(QT_QWS_YOPY) -- handler = new QYopyTPanelHandlerPrivate(mouseProtocol,mouseDev); --#elif defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) || defined(QT_QWS_SIMPAD) -- handler = new QTPanelHandlerPrivate(mouseProtocol,mouseDev); --#elif defined(QT_QWS_CASSIOPEIA) -- handler = new QVrTPanelHandlerPrivate( mouseProtocol, mouseDev ); --#endif -- break; -- -- default: -- qDebug( "Mouse type %s unsupported", spec.latin1() ); -- } -- -- return handler; -+ return new QInputEventHandler( mouseProtocol, mouseDev ); - } - - #include "qwsmouse_qws.moc" ---- qt-2.3.10/src/kernel/qwsmouse_qws.h~ramses-touchscreen -+++ qt-2.3.10/src/kernel/qwsmouse_qws.h -@@ -1,5 +1,5 @@ - /**************************************************************************** --** $Id: qt/src/kernel/qwsmouse_qws.h 2.3.10 edited 2005-01-24 $ -+** $Id: qt/src/kernel/qwsmouse_qws.h 2.3.7 edited 2001-10-03 $ - ** - ** Definition of Qt/FB central server classes - ** -@@ -70,6 +70,7 @@ - virtual void clearCalibration(); - virtual void calibrate( QWSPointerCalibrationData * ); - virtual void getCalibration( QWSPointerCalibrationData * ); -+ virtual void setCalibration(int aa, int bb, int cc, int dd, int ee, int ff, int ss); - - protected: - void readCalibration(); diff --git a/packages/qte/qte-2.3.10/deprecated/mnci.patch b/packages/qte/qte-2.3.10/deprecated/mnci.patch deleted file mode 100644 index c2e0e079d9..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/mnci.patch +++ /dev/null @@ -1,125 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp~ramses.patch -+++ qt-2.3.10/src/kernel/qgfxlinuxfb_qws.cpp -@@ -249,20 +249,12 @@ - - static void writeTerm(const char* termctl, int sizeof_termctl) - { --#ifdef QT_QWS_DEVFS -- const char* tt[]={"/dev/vc/1","/dev/console","/dev/tty",0}; --#else -- const char* tt[]={"/dev/console","/dev/tty","/dev/tty0",0}; --#endif -- const char** dev=tt; -- while (*dev) { -- int tty=::open(*dev,O_WRONLY); -+qWarning("writeTerm"); -+ int tty=::open("/dev/vc/2", O_WRONLY); - if ( tty>=0 ) { - ::write(tty,termctl,sizeof_termctl); - ::close(tty); - } -- dev++; -- } - } - - /*! -@@ -275,6 +267,7 @@ - - bool QLinuxFbScreen::initDevice() - { -+qWarning("QLinuxFbScreen::initDevice"); - /* Setting up the VT parameters is done in qapplication_qws.cpp - const char termctl[]="\033[9;0]\033[?33l\033[?25l"; - writeTerm(termctl,sizeof(termctl)); */ -@@ -765,9 +758,12 @@ - } - */ - -+qWarning("QLinuxFbScreen::shutdownDevice"); -+/* - // Blankin' screen, blinkin' cursor! - const char termctl[] = "\033[9;15]\033[?33h\033[?25h\033[?0c"; - writeTerm(termctl,sizeof(termctl)); -+*/ - } - - /*! ---- qt-2.3.10/src/kernel/qapplication_qws.cpp~ramses.patch -+++ qt-2.3.10/src/kernel/qapplication_qws.cpp -@@ -1756,8 +1756,6 @@ - */ - if ( qws_daemon ) - { -- qWarning( "qt_init() - starting in daemon mode..." ); -- - int pid1 = fork(); - if ( pid1 == -1 ) - { -@@ -1791,7 +1789,6 @@ - } - if ( pid2 ) - { -- syslog( 4, "qt_init() [%d] - successfully entered daemon mode", pid2 ); - _exit( 0 ); // ok, second fork performed - } - } -@@ -1828,9 +1825,12 @@ - #if defined(_OS_LINUX_) - if ( qws_terminal_id ) - { -- qDebug( "qt_init() - terminal specification is '%d'.", qws_terminal_id ); - struct vt_stat console_stat; -+#ifdef QT_QWS_DEVFS -+ int console_fd = ::open( QString().sprintf( "/dev/vc/%d", qws_terminal_id ).latin1(), O_RDWR ); -+#else - int console_fd = ::open( QString().sprintf( "/dev/tty%d", qws_terminal_id ).latin1(), O_RDWR ); -+#endif - if ( console_fd == -1) - { - qWarning( "qt_init() - can't open tty: %s", strerror( errno ) ); -@@ -1927,7 +1927,11 @@ - { - qDebug( "qt_cleanup() - switching back to virtual terminal #%d", qws_terminal_old ); - -+#ifdef QT_QWS_DEVFS -+ int console_fd = ::open( "/dev/vc/0", O_RDWR ); -+#else - int console_fd = ::open( "/dev/tty0", O_RDWR ); -+#endif - if ( console_fd == -1) - { - qWarning( "qt_init() - can't open tty: %s", strerror( errno ) ); ---- qt-2.3.10/src/kernel/qwindowsystem_qws.cpp~ramses.patch -+++ qt-2.3.10/src/kernel/qwindowsystem_qws.cpp -@@ -1791,6 +1791,7 @@ - } - - #ifndef QT_NO_QWS_KEYBOARD -+#ifndef QT_QWS_RAMSES - static int keyUnicode(int keycode) - { - const QWSServer::KeyMap *km = QWSServer::keyMap(); -@@ -1803,6 +1804,7 @@ - return 0xffff; - } - #endif -+#endif - /*! - Send a key event. You can use this to send key events generated by - "virtual keyboards". -@@ -1845,8 +1847,10 @@ - - event.simpleData.unicode = - #ifndef QT_NO_QWS_KEYBOARD -+#ifndef QT_QWS_RAMSES - unicode < 0 ? keyUnicode(keycode) : - #endif -+#endif - unicode; - event.simpleData.keycode = keycode; - event.simpleData.modifiers = modifiers; diff --git a/packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.cpp b/packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.cpp deleted file mode 100644 index 9917675a43..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.cpp +++ /dev/null @@ -1,584 +0,0 @@ -/**************************************************************************** -** $Id: qt/src/kernel/qkeyboard_qws.cpp 2.3.7 edited 2003-05-30 $ -** -** Implementation of Qt/Embedded keyboard drivers -** -** Created : 991025 -** -** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. -** -** 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 -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition -** licenses for Qt/Embedded may use this file in accordance with the -** Qt Embedded Commercial License Agreement provided with the Software. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for -** information about Qt Commercial License Agreements. -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ - -#include "qwindowsystem_qws.h" -#include "qwsutils_qws.h" -#include "qgfx_qws.h" - -#include <qapplication.h> -#include <qsocketnotifier.h> -#include <qnamespace.h> -#include <qtimer.h> - -#include <stdlib.h> -#include <stdio.h> -#include <ctype.h> - -#include <unistd.h> -#include <linux/kd.h> -#include <sys/ioctl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <errno.h> -#include <signal.h> - -#ifndef QT_NO_QWS_KEYBOARD - -#include <termios.h> -#include <sys/kd.h> -#include <sys/vt.h> -#include <sys/wait.h> -#include <linux/keyboard.h> - -#define VTSWITCHSIG SIGUSR2 - -static bool vtActive = true; -static int vtQws = 0; -static int kbdFD = -1; - -static QIntDict<QWSServer::KeyMap> *overrideMap = 0; - -/*! - Changes the mapping of the keyboard; adding the scancode to Unicode - mappings from \a map. The server takes over ownership of \a map - and will delete it. Use QCollection::setAutoDelete() to control - whether the contents of \a map should be deleted. - - Passing a null pointer for \a map will revert to the default keymap. -*/ - -void QWSServer::setOverrideKeys( QIntDict<QWSServer::KeyMap> *map ) -{ - delete overrideMap; - overrideMap = map; -} - -/*! - \class QWSKeyboardHandler qkeyboard_qws.h - \brief Keyboard driver/handler for Qt/Embedded - - The keyboard driver/handler handles events from system devices and - generates key events. - - A QWSKeyboardHandler will usually open some system device in its - constructor, create a QSocketNotifier on that opened device and when - it receives data, it will call processKeyEvent() to send the event - to Qt/Embedded for relaying to clients. -*/ - -/*! - Subclasses call this to send a key event. The server may additionally - filter it before sending it on to applications. - - <ul> - <li>\a unicode is the Unicode value for the key, or 0xffff if none is appropriate. - <li>\a keycode is the Qt keycode for the key (see Qt::Key). - for the list of codes). - <li>\a modifiers is the set of modifier keys (see Qt::Modifier). - <li>\a isPress says whether this is a press or a release. - <li>\a autoRepeat says whether this event was generated by an auto-repeat - mechanism, or an actual key press. - </ul> -*/ -void QWSKeyboardHandler::processKeyEvent(int unicode, int keycode, int modifiers, - bool isPress, bool autoRepeat) -{ - qwsServer->processKeyEvent( unicode, keycode, modifiers, isPress, autoRepeat ); -} - - -bool qwsSetKeyboardAutoRepeat( int /* delay */ , int /* period */ ) -{ - return FALSE; -} - -bool qwsGetKeyboardAutoRepeat( int /* delay */ , int /* period */ ) -{ - return FALSE; -} - -void qwsRestoreKeyboardLeds() -{ -} - - - - - -/* - * Virtual framebuffer keyboard driver - */ - -class QWSVFbKeyboardHandler : public QWSKeyboardHandler -{ - Q_OBJECT -public: - QWSVFbKeyboardHandler(); - virtual ~QWSVFbKeyboardHandler(); - - bool isOpen() { return fd > 0; } - -private slots: - void readKeyboardData(); - -private: - QString terminalName; - int fd; - int kbdIdx; - int kbdBufferLen; - unsigned char *kbdBuffer; - QSocketNotifier *notifier; -}; - -#ifndef QT_NO_QWS_VFB -#include "qvfbhdr.h" -extern int qws_display_id; -#endif - -QWSVFbKeyboardHandler::QWSVFbKeyboardHandler() -{ - kbdFD = -1; -#ifndef QT_NO_QWS_VFB - kbdIdx = 0; - kbdBufferLen = sizeof( QVFbKeyData ) * 5; - kbdBuffer = new unsigned char [kbdBufferLen]; - - terminalName = QString(QT_VFB_KEYBOARD_PIPE).arg(qws_display_id); - - if ((kbdFD = open( terminalName.local8Bit(), O_RDWR | O_NDELAY)) < 0) { - qDebug( "Cannot open %s (%s)", terminalName.latin1(), - strerror(errno)); - } else { - // Clear pending input - char buf[2]; - while (read(kbdFD, buf, 1) > 0) { } - - notifier = new QSocketNotifier( kbdFD, QSocketNotifier::Read, this ); - connect(notifier, SIGNAL(activated(int)),this, SLOT(readKeyboardData())); - } -#endif -} - -QWSVFbKeyboardHandler::~QWSVFbKeyboardHandler() -{ -#ifndef QT_NO_QWS_VFB - if ( kbdFD >= 0 ) - close( kbdFD ); - delete [] kbdBuffer; -#endif -} - - -void QWSVFbKeyboardHandler::readKeyboardData() -{ -#ifndef QT_NO_QWS_VFB - int n; - do { - n = read(kbdFD, kbdBuffer+kbdIdx, kbdBufferLen - kbdIdx ); - if ( n > 0 ) - kbdIdx += n; - } while ( n > 0 ); - - int idx = 0; - while ( kbdIdx - idx >= (int)sizeof( QVFbKeyData ) ) { - QVFbKeyData *kd = (QVFbKeyData *)(kbdBuffer + idx); - if ( kd->unicode == 0 && kd->modifiers == 0 && kd->press ) { - // magic exit key - qWarning( "Instructed to quit by Virtual Keyboard" ); - qApp->quit(); - } - processKeyEvent( kd->unicode&0xffff, kd->unicode>>16, - kd->modifiers, kd->press, kd->repeat ); - idx += sizeof( QVFbKeyData ); - } - - int surplus = kbdIdx - idx; - for ( int i = 0; i < surplus; i++ ) - kbdBuffer[i] = kbdBuffer[idx+i]; - kbdIdx = surplus; -#endif -} - - - - -struct termios origTermData; - -static void init_kbd(void) -{ - struct termios termdata; - - tcgetattr( kbdFD, &origTermData ); - tcgetattr( kbdFD, &termdata ); - - ioctl(kbdFD, KDSKBMODE, K_XLATE); - - termdata.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP); - termdata.c_oflag = 0; - termdata.c_cflag = CREAD | CS8; - termdata.c_lflag = 0; - termdata.c_cc[VTIME]=0; - termdata.c_cc[VMIN]=1; - cfsetispeed(&termdata, 9600); - cfsetospeed(&termdata, 9600); - tcsetattr(kbdFD, TCSANOW, &termdata); -} - -static void done_kbd(void) -{ - if (kbdFD >= 0) { - tcsetattr(kbdFD, TCSANOW, &origTermData); - } -} - -static void vtSwitchHandler(int /*sig*/) -{ - if (vtActive) { - qwsServer->enablePainting(false); - qt_screen->save(); - if (ioctl(kbdFD, VT_RELDISP, VT_ACKACQ) == 0) { - vtActive = false; - qwsServer->closeMouse(); - done_kbd(); - } - else { - qwsServer->enablePainting(true); - } - usleep(200000); - } - else { - if (ioctl(kbdFD, VT_RELDISP, VT_ACKACQ) == 0) { - init_kbd(); - qwsServer->enablePainting(true); - vtActive = true; - qt_screen->restore(); - qwsServer->openMouse(); - qwsServer->refresh(); - } - } - signal(VTSWITCHSIG, vtSwitchHandler); -} - - - -class QWSRamsesKbPrivate; -class QWSRamsesKeyboardHandler : public QWSKeyboardHandler -{ -public: - QWSRamsesKeyboardHandler( const QString& ); - virtual ~QWSRamsesKeyboardHandler(); - - virtual void processKeyEvent(int unicode, int keycode, int modifiers, - bool isPress, bool autoRepeat); - -private: - QWSRamsesKbPrivate *d; -}; - - -class QWSRamsesKbPrivate : public QObject -{ - Q_OBJECT -public: - QWSRamsesKbPrivate( QWSRamsesKeyboardHandler *, const QString &device ); - ~QWSRamsesKbPrivate(); - -private slots: - void readKeyboardData(); - -private: - void handleKey(unsigned char code, int n); - - QWSRamsesKeyboardHandler *handler; - char rbuf[255]; - int rptr; -}; - -QWSRamsesKbPrivate::QWSRamsesKbPrivate( QWSRamsesKeyboardHandler *h, const QString &device ) - : handler(h), rptr(0) -{ -#ifdef QT_QWS_DEVFS - kbdFD = ::open(device.isEmpty()?"/dev/vc/2":device.latin1(), O_RDWR|O_NDELAY, 0); -#else - kbdFD = ::open(device.isEmpty()?"/dev/tty2":device.latin1(), O_RDWR|O_NDELAY, 0); -#endif - - if ( kbdFD >= 0 ) { - QSocketNotifier *notifier; - notifier = new QSocketNotifier( kbdFD, QSocketNotifier::Read, this ); - connect( notifier, SIGNAL(activated(int)),this, SLOT(readKeyboardData()) ); - } else { - qDebug( "Cannot open keyboard" ); - } - init_kbd(); - - struct vt_mode vtMode; - ioctl(kbdFD, VT_GETMODE, &vtMode); - - // let us control VT switching - vtMode.mode = VT_PROCESS; - vtMode.relsig = VTSWITCHSIG; - vtMode.acqsig = VTSWITCHSIG; - ioctl(kbdFD, VT_SETMODE, &vtMode); - - struct vt_stat vtStat; - ioctl(kbdFD, VT_GETSTATE, &vtStat); - vtQws = vtStat.v_active; - - signal(VTSWITCHSIG, vtSwitchHandler); -} - -QWSRamsesKbPrivate::~QWSRamsesKbPrivate() -{ - signal(VTSWITCHSIG, 0); - - done_kbd(); - - struct vt_mode vtMode; - ioctl(kbdFD, VT_GETMODE, &vtMode); - /* Mickey says: "Better give up control of VT switching. - * Hey, I really hate that OS-will-reacquire-resources on process-death - * kind of thinking! - */ - vtMode.mode = VT_AUTO; - vtMode.relsig = 0; - vtMode.acqsig = 0; - ioctl(kbdFD, VT_SETMODE, &vtMode); - - ::close(kbdFD); - kbdFD = -1; -} - - -static inline int map_to_modif(int current_map) -{ - int modifiers = 0; - - if (current_map & KG_ALT) - modifiers |= Qt::ALT; - else if (current_map & KG_CTRL) - modifiers |= Qt::CTRL; - else if (current_map & KG_SHIFT) - modifiers |= Qt::SHIFT; - - return modifiers; -} - -struct { - const char *code; - unsigned short qtcode; -} qtesc_lookup[] = { - { "\e[A", Qt::Key_Up }, - { "\e[B", Qt::Key_Down }, - { "\e[C", Qt::Key_Right }, - { "\e[D", Qt::Key_Left }, - { "\e[1~", Qt::Key_Home }, - { "\e[4~", Qt::Key_End }, - { "\e[5~", Qt::Key_PageUp }, - { "\e[6~", Qt::Key_PageDown }, - - { "\e[[A", Qt::Key_F1 }, - { "\e[[B", Qt::Key_F2 }, - { "\e[[C", Qt::Key_F3 }, - { "\e[[D", Qt::Key_F4 }, - { "\e[[E", Qt::Key_F5 }, - { "\e[17~", Qt::Key_F6 }, - { "\e[18~", Qt::Key_F7 }, - { "\e[19~", Qt::Key_F8 }, - { "\e[20~", Qt::Key_F9 }, - { "\e[21~", Qt::Key_F10 }, - { "\e[23~", Qt::Key_F11 }, - { "\e[24~", Qt::Key_F12 }, - - // { "\ex", Qt::FieldExit }, - // { "\er", Qt::FieldReset }, - -}; - -struct { - unsigned char code; - unsigned short qtcode; -} qtkey_lookup[] = { - { 0x08, Qt::Key_Backspace }, - { 0x09, Qt::Key_Tab }, - { 0x0d, Qt::Key_Enter }, - { 0x1b, Qt::Key_Escape }, -}; - -void QWSRamsesKbPrivate::handleKey(unsigned char code, int n) -{ - int qtKeyCode = Qt::Key_unknown; - unsigned int i; - - //qDebug("\nhandleKey %02x %d %c", code, n, code >= ' ' ? code : ' '); - - // Single keys - if ((n==1) && (rptr==0)) { - qtKeyCode = code; - for (i=0; i < sizeof(qtkey_lookup)/sizeof(qtkey_lookup[0]); i++) { - if (qtkey_lookup[i].code == code) { - qtKeyCode = qtkey_lookup[i].qtcode; - code = 0; - break; - } - } - } else - - // Alt-<KEY> sequence - if ((n==1) && (rptr==1) && (rbuf[0] == '\e')) { - //qDebug("alt-key %d", code); - handler->processKeyEvent(0, Qt::Key_Alt, 0, 1, 0); - handler->processKeyEvent(0, code-32, Qt::ALT, 1, 0); - handler->processKeyEvent(0, code-32, Qt::ALT, 0, 0); - handler->processKeyEvent(0, Qt::Key_Alt, 0, 0, 0); - rptr = 0; - return; - } else - - // End of a function key sequence - if ((n==1) && (rptr!=0)) { - rbuf[rptr++] = code; - rbuf[rptr] = 0; - for (i=0; i < sizeof(qtesc_lookup)/sizeof(qtesc_lookup[0]); i++) { - if (strncmp(rbuf, qtesc_lookup[i].code, sizeof(rbuf)) == 0) { - qtKeyCode = qtesc_lookup[i].qtcode; - code = 0; - break; - } - } - if (code != 0) { - //qWarning("no entry in key sequence table for %s", &rbuf[1]); - int oldrptr = rptr; - rptr = 0; - for (i=0; i <= oldrptr; i++) { - handleKey(rbuf[i], 1); - } - return; - } - rptr = 0; - } else - - // Middle of a function key sequence - { - if (rptr < sizeof(rbuf)) - rbuf[rptr++] = code; - return; - } - - //qDebug(" code 0x%2x %d -> qtKeyCode 0x%04x", code, code, qtKeyCode); - - handler->processKeyEvent(code, qtKeyCode, 0, 1, 0); - handler->processKeyEvent(code, qtKeyCode, 0, 0, 0); -} - - -void QWSRamsesKbPrivate::readKeyboardData() -{ - unsigned char buf[81]; - int n = read(kbdFD, buf, 80 ); - for ( int loop = 0; loop < n; loop++ ) { - handleKey(buf[loop], n-loop); - } -} - - - - - -QWSRamsesKeyboardHandler::QWSRamsesKeyboardHandler( const QString &device ) -{ - d = new QWSRamsesKbPrivate( this, device ); -} - -QWSRamsesKeyboardHandler::~QWSRamsesKeyboardHandler() -{ - delete d; -} - -void QWSRamsesKeyboardHandler::processKeyEvent(int unicode, int keycode, - int modifiers, bool isPress, bool autoRepeat) -{ - // Virtual console switching - int term = 0; - bool ctrl = modifiers & Qt::ControlButton; - bool alt = modifiers & Qt::AltButton; - if (ctrl && alt && keycode >= Qt::Key_F1 && keycode <= Qt::Key_F10) - term = keycode - Qt::Key_F1 + 1; - else if (ctrl && alt && keycode == Qt::Key_Left) - term = QMAX(vtQws - 1, 1); - else if (ctrl && alt && keycode == Qt::Key_Right) - term = QMIN(vtQws + 1, 10); - if (term && !isPress) { - ioctl(kbdFD, VT_ACTIVATE, term); - return; - } - - QWSKeyboardHandler::processKeyEvent( unicode, keycode, modifiers, isPress, autoRepeat ); -} - - - -/* - * keyboard driver instantiation - */ - -QWSKeyboardHandler *QWSServer::newKeyboardHandler( const QString &spec ) -{ - QWSKeyboardHandler *handler = 0; - - QString device; - QString type; - int colon=spec.find(':'); - if ( colon>=0 ) { - type = spec.left(colon); - device = spec.mid(colon+1); - } else { - type = spec; - } - - if ( type == "QVFbKeyboard" ) { - handler = new QWSVFbKeyboardHandler(); - } else if ( type == "TTY" ) { - handler = new QWSRamsesKeyboardHandler(device); - } else { - qWarning( "Keyboard type %s:%s unsupported", spec.latin1(), device.latin1() ); - } - - return handler; -} - -#include "qkeyboard_qws.moc" - -#endif // QT_NO_QWS_KEYBOARD - - diff --git a/packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.h b/packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.h deleted file mode 100644 index aa459d1448..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/openmn/qkeyboard_qws.h +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** $Id: qt/src/kernel/qkeyboard_qws.h 2.3.10 edited 2005-01-24 $ -** -** Definition of Qt/Embedded keyboards -** -** Created : 991025 -** -** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. -** -** 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 -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition -** licenses for Qt/Embedded may use this file in accordance with the -** Qt Embedded Commercial License Agreement provided with the Software. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for -** information about Qt Commercial License Agreements. -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ - -#ifndef QKEYBOARD_QWS_H -#define QKEYBOARD_QWS_H - -#ifndef QT_H -#include "qobject.h" -#endif // QT_H - -#ifndef QT_NO_QWS_KEYBOARD -class Q_EXPORT QWSKeyboardHandler : public QObject { - Q_OBJECT -public: - QWSKeyboardHandler(); - virtual ~QWSKeyboardHandler(); - -protected: - virtual void processKeyEvent(int unicode, int keycode, int modifiers, - bool isPress, bool autoRepeat); -}; -#endif - -Q_EXPORT bool qwsSetKeyboardAutoRepeat( int delay, int period ); -Q_EXPORT bool qwsGetKeyboardAutoRepeat( int *delay, int *period ); - -#endif diff --git a/packages/qte/qte-2.3.10/deprecated/simpad-defaultkbd.patch b/packages/qte/qte-2.3.10/deprecated/simpad-defaultkbd.patch deleted file mode 100644 index 3e5450a4da..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/simpad-defaultkbd.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qt-2.3.10/src/kernel/qwindowsystem_qws.cpp.orig 2005-11-30 10:53:32.000000000 +0100 -+++ qt-2.3.10/src/kernel/qwindowsystem_qws.cpp 2005-11-30 10:55:51.000000000 +0100 -@@ -2917,7 +2917,7 @@ - { - QString keyboards = getenv("QWS_KEYBOARD"); - if ( keyboards.isEmpty() ) { --#if defined( QT_QWS_CASSIOPEIA ) -+#if defined( QT_QWS_CASSIOPEIA ) || defined( QT_QWS_SIMPAD ) - keyboards = "Buttons"; - #elif !defined(QT_NO_QWS_VFB) - extern bool qvfbEnabled; diff --git a/packages/qte/qte-2.3.10/deprecated/simpad.patch b/packages/qte/qte-2.3.10/deprecated/simpad.patch deleted file mode 100644 index 8a728ef74a..0000000000 --- a/packages/qte/qte-2.3.10/deprecated/simpad.patch +++ /dev/null @@ -1,340 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- qt-2.3.10/src/kernel/qkeyboard_qws.cpp~simpad.patch -+++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp -@@ -37,6 +37,7 @@ - #include <qapplication.h> - #include <qsocketnotifier.h> - #include <qnamespace.h> -+#include <qdatetime.h> - #include <qtimer.h> - - #include <stdlib.h> -@@ -80,6 +81,60 @@ - #include <sys/vt.h> - #endif - -+/* -+ * SIMpad switches handler -+ * (C) 2003-2005 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> -+ */ -+ -+ -+ -+#include <linux/switches.h> -+#define SIMPAD_SWITCHES_DEVICE "/dev/misc/switches" -+ -+// switches from left top to right down over the SIMpad surface -+ -+#define SIMPAD_SWITCH_POWER 0x02 -+#define SIMPAD_SWITCH_UPPER 0x10 -+#define SIMPAD_SWITCH_UP 0x20 -+#define SIMPAD_SWITCH_DOWN 0x40 -+#define SIMPAD_SWITCH_LEFT 0x80 -+#define SIMPAD_SWITCH_RIGHT 0x100 -+#define SIMPAD_SWITCH_LOWER 0x8 -+ -+class QWSsimpadButtonsHandler : public QWSKeyboardHandler -+{ -+ Q_OBJECT -+ -+ public: -+ QWSsimpadButtonsHandler(); -+ virtual ~QWSsimpadButtonsHandler(); -+ -+ bool isOpen() { return fd > 0; } -+ -+ private slots: -+ void readSwitchesData(); -+ void autoRepeat(); -+ -+ private: -+ switches_mask_t switches; -+ -+ int fd; -+ int repeatdelay; -+ int repeatperiod; -+ -+ int lastCode; // last native code -+ int lastPress; // last press/release state -+ -+ int k; // last emitted Qt key code -+ int shiftKeyPressed; // true if one of the SHIFT keys has been pressed and not yet released -+ bool shiftUsed; // true if SHIFT has been used -+ -+ QTime eventTimer; // tracks time between raw events -+ QTimer* repeater; -+ QSocketNotifier *notifier; -+}; -+ -+ - #ifdef QT_QWS_SL5XXX - #include <asm/sharp_char.h> - #endif -@@ -1775,9 +1830,11 @@ - } else { - type = spec; - } -- - if ( type == "Buttons" ) { --#if defined(QT_QWS_YOPY) -+#if defined(QT_QWS_SIMPAD) -+ qDebug( "QWSKeyboardHandler: using SIMpad switches handler..." ); -+ handler = new QWSsimpadButtonsHandler(); -+#elif defined(QT_QWS_YOPY) - handler = new QWSyopyButtonsHandler(); - #elif defined(QT_QWS_CASSIOPEIA) - handler = new QWSVr41xxButtonsHandler(); -@@ -1812,6 +1869,218 @@ - return keyM; - } - --#endif // QT_NO_QWS_KEYBOARD - -+/* -+ * SIMpad switches handler -+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> -+ */ -+ -+ -+QWSsimpadButtonsHandler::QWSsimpadButtonsHandler() -+ :QWSKeyboardHandler(), fd( -1 ), -+ repeatdelay( 700 ), repeatperiod( 80 ), -+ lastCode( 0 ), lastPress( 0 ), -+ k( -1 ), shiftKeyPressed( 0 ), shiftUsed( false ) -+{ -+ qDebug( "SimpadButtonsHandler() - V4.1" ); -+ fd = ::open( SIMPAD_SWITCHES_DEVICE, O_RDWR | O_NDELAY, 0 ); -+ if ( fd < 0 ) -+ { -+ qWarning( "SimpadButtonsHandler(): can't open %s", SIMPAD_SWITCHES_DEVICE ); -+ return; -+ } -+ -+ notifier = new QSocketNotifier( fd, QSocketNotifier::Read, this ); -+ connect( notifier, SIGNAL( activated(int) ),this, SLOT( readSwitchesData() ) ); -+ -+ repeater = new QTimer(this); -+ connect(repeater, SIGNAL(timeout()), this, SLOT(autoRepeat())); -+ -+} - -+ -+QWSsimpadButtonsHandler::~QWSsimpadButtonsHandler() -+{ -+ qDebug( "~SimpadButtonsHandler()" ); -+ if ( fd > 0 ) -+ { -+ ::close( fd ); -+ fd = -1; -+ } -+} -+ -+ -+void QWSsimpadButtonsHandler::readSwitchesData() -+{ -+ qDebug( "SimpadButtonsHandler() - detected switches action" ); -+ -+ if ( ::read( fd, &switches, sizeof switches ) < 0 ) -+ { -+ qWarning( "SimpadButtonsHandler() - switches read error!" ); -+ return; -+ } -+ -+ qDebug( "SimpadButtonsHandler() - Shift: %0x [used: %0x] + Event = %0x | %0x", -+ shiftKeyPressed, shiftUsed, switches.events[0], switches.states[0] ); -+ -+ bool press = switches.states[0]; // == switches.event[0]; -+ int code = switches.events[0]; -+ -+ //========================================================================= -+ -+ /** -+ * Work around a bug in the kernel keyboard driver emitting -+ * bogus events when pressing multiple switches at once -+ **/ -+ -+ if ( lastCode == 0 ) -+ { -+ // first press ever -+ eventTimer.start(); -+ lastPress = press; -+ lastCode = code; -+ } -+ else -+ { -+ int interval = eventTimer.restart(); -+ qDebug( "event interval = %d", interval ); -+ if ( code == lastCode && interval < 10 ) -+ { -+ qDebug( "event interval too small - ignoring bogus event" ); -+ qDebug( "did I say i hate buggy kernel drivers? :-D" ); -+ return; -+ } -+ -+ lastPress = press; -+ lastCode = code; -+ } -+ -+ /** -+ * Actually it may also be a hardware problem, but I really don't like -+ * to review kernel code for further inquiry. So just being lazy and -+ * do the workaround in user space :-D -+ **/ -+ -+ //===================================================================== -+ -+ if ( shiftKeyPressed ) -+ { -+ // a shift key obviously is being held -+ qDebug( "while shift key is being held..." ); -+ -+ if ( code != shiftKeyPressed ) -+ { -+ // another key is being touched - that means shift mode for us! -+ qDebug( " another key is being touched -> shift use now = true" ); -+ -+ shiftUsed = true; -+ -+ if ( shiftKeyPressed == SIMPAD_SWITCH_LOWER ) // SHIFT 1 -+ { -+ qDebug( " shift mode 1" ); -+ switch(code) -+ { -+ case SIMPAD_SWITCH_UP: k = Qt::Key_F9; break; // Shift1-Up = Calendar -+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F10; break; // Shift1-Down = Contacts -+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F13; break; // Shift1-Left = Mail -+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F11; break; // Shift1-Up = Menu -+ case SIMPAD_SWITCH_UPPER: k = Qt::Key_F12; break; // Shift1-Upper = Home -+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 1 !" ); break; -+ } -+ } -+ else if ( shiftKeyPressed == SIMPAD_SWITCH_UPPER ) // SHIFT 2 -+ { -+ qDebug( " shift mode 2" ); -+ switch(code) -+ { -+ case SIMPAD_SWITCH_UP: k = Qt::Key_F5; break; // Shift2-Up = F5 -+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F6; break; // Shift2-Down = F6 -+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F7; break; // Shift2-Left = F7 -+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F8; break; // Shift2-Up = F8 -+ case SIMPAD_SWITCH_LOWER: k = Qt::Key_F9; break; // Shift2-Lower = F9 -+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 2!" ); break; -+ } -+ } -+ } -+ else -+ { -+ qDebug( " shift key has been released. checking if being used..." ); -+ shiftKeyPressed = 0; -+ -+ if ( !shiftUsed ) -+ { -+ qDebug( " ... has _not_ being used -> really emit the key" ); -+ k = ( code == SIMPAD_SWITCH_UPPER ? Qt::Key_Escape : Qt::Key_Return ); -+ qDebug( "Emitting key = %d (pressed)", k ); -+ processKeyEvent( 0, k, 0, true, true ); -+ qDebug( "Emitting key = %d (released)", k ); -+ processKeyEvent( 0, k, 0, false, true ); -+ return; -+ } -+ else -+ { -+ qDebug( " ... has being used -> doing nothing" ); -+ return; -+ } -+ } -+ } -+ else -+ { -+ qDebug( "standard mode - no shift yet..." ); -+ -+ switch(code) -+ { -+ case SIMPAD_SWITCH_UP: k = Qt::Key_Up; break; -+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_Down; break; -+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_Left; break; -+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_Right; break; -+ case SIMPAD_SWITCH_POWER: k = Qt::Key_F34; break; // Power Button -+ -+ case SIMPAD_SWITCH_UPPER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return; -+ case SIMPAD_SWITCH_LOWER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return; -+ -+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event!" ); break; -+ } -+ } -+ -+ if ( k == -1 ) -+ { -+ qDebug( "no key to emit - returning." ); -+ return; -+ } -+ -+ bool repeatable = ( k == Qt::Key_Up || k == Qt::Key_Down || -+ k == Qt::Key_Right || k == Qt::Key_Left ); -+ -+ qDebug( "key to emit = %d [%s] [repeat=%s]", k, -+ press ? "press" : "release", -+ repeatable ? "true":"false" ); -+ -+ if ( qt_screen->isTransformed() && k >= Qt::Key_Left && k <= Qt::Key_Down ) -+ { -+ qDebug( "SimpadButtonsHandler() - We are transformed! Correcting..." ); -+ int oldK = k; -+ k = xform_dirkey( k ); -+ qDebug( "SimpadButtonsHandler() - Old Key: %d - New Key %d", oldK, k ); -+ } -+ -+ if ( repeatable && press ) -+ repeater->start( repeatdelay, true ); -+ else -+ repeater->stop(); -+ -+ qwsServer->processKeyEvent( 0, k, 0, press, false ); -+} -+ -+ -+void QWSsimpadButtonsHandler::autoRepeat() -+{ -+ qDebug( "Emitting key = %d (released)", k ); -+ processKeyEvent( 0, k, 0, false, true ); -+ qDebug( "Emitting key = %d (pressed)", k ); -+ processKeyEvent( 0, k, 0, true, true ); -+ repeater->start(repeatperiod); -+} -+ -+ -+#endif // QT_NO_QWS_KEYBOARD ---- qt-2.3.10/src/kernel/qwsmouse_qws.cpp~simpad.patch -+++ qt-2.3.10/src/kernel/qwsmouse_qws.cpp -@@ -47,6 +47,7 @@ - #include <stdlib.h> - #include <stdio.h> - #include <sys/ioctl.h> -+#include <sys/time.h> - #include <sys/types.h> - #include <sys/stat.h> - #include <fcntl.h> -@@ -73,6 +74,7 @@ - unsigned short x; - unsigned short y; - unsigned short pad; -+ struct timeval stamp; - } TS_EVENT; - #elif defined(QT_QWS_SL5XXX) - #define QT_QWS_SL5XXX_RAW -@@ -1310,6 +1312,11 @@ - return; - } - # endif -+#elif defined(QT_QWS_SIMPAD ) -+ if ((mouseFD = open( "/dev/touchscreen/ucb1x00", O_RDONLY | O_NONBLOCK )) < 0) { -+ qWarning( "Cannot open /dev/touchscreen/ucb1x00 (%s)", strerror(errno)); -+ return; -+ } - #endif - - QSocketNotifier *mouseNotifier; |