summaryrefslogtreecommitdiff
path: root/packages/qte
diff options
context:
space:
mode:
Diffstat (limited to 'packages/qte')
-rw-r--r--packages/qte/qte-2.3.10/ipaq_sound_fix.patch0
-rw-r--r--packages/qte/qte-2.3.10/key.patch79
-rw-r--r--packages/qte/qte-2.3.10/ramses-keyboard.patch2339
-rw-r--r--packages/qte/qte-2.3.10/ramses/qkeyboard_qws.cpp0
-rw-r--r--packages/qte/qte-2.3.10/ramses/qkeyboard_qws.h0
-rw-r--r--packages/qte/qte_2.3.10.bb17
6 files changed, 91 insertions, 2344 deletions
diff --git a/packages/qte/qte-2.3.10/ipaq_sound_fix.patch b/packages/qte/qte-2.3.10/ipaq_sound_fix.patch
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/qte/qte-2.3.10/ipaq_sound_fix.patch
diff --git a/packages/qte/qte-2.3.10/key.patch b/packages/qte/qte-2.3.10/key.patch
index e69de29bb2..c89f893517 100644
--- a/packages/qte/qte-2.3.10/key.patch
+++ b/packages/qte/qte-2.3.10/key.patch
@@ -0,0 +1,79 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qt-2.3.10/src/kernel/qkeyboard_qws.cpp~key 2005-03-19 15:44:15.120219000 +0100
++++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp 2005-03-19 15:43:43.247892000 +0100
+@@ -848,6 +848,9 @@
+ bool release = false;
+ int keypad = 0;
+
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // need autorepeat implemented here?
++ bool repeatable = TRUE;
++
+ #ifndef QT_QWS_USE_KEYCODES
+ #if defined(QT_QWS_IPAQ)
+ // map ipaq 'action' key (0x60, 0xe0)
+@@ -984,9 +987,6 @@
+ if ( currentKey )
+ keyCode = currentKey->key_code;
+
+-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) // need autorepeat implemented here?
+- bool repeatable = TRUE;
+-
+ #if defined(QT_QWS_IPAQ)
+ switch (code) {
+ #if defined(QT_QWS_SL5XXX)
+@@ -1061,18 +1061,14 @@
+ repeatable = FALSE;
+ #endif
+
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+ if ( qt_screen->isTransformed()
+ && keyCode >= Qt::Key_Left && keyCode <= Qt::Key_Down )
+ {
+ keyCode = xform_dirkey(keyCode);
+ }
+-
+-#ifdef QT_QWS_AUTOREPEAT_MANUALLY
+- if ( repeatable && !release )
+- rep->start(prevuni,prevkey,modifiers);
+- else
+- rep->stop();
+ #endif
++
+ #endif
+ /*
+ Translate shift+Key_Tab to Key_Backtab
+@@ -1234,6 +1230,14 @@
+ } else {
+ prevkey = prevuni = 0;
+ }
++
++#ifdef QT_QWS_AUTOREPEAT_MANUALLY
++ if ( repeatable && !release )
++ rep->start(prevuni,prevkey,modifiers);
++ else
++ rep->stop();
++#endif
++
+ }
+ #ifndef QT_QWS_USE_KEYCODES
+ extended = 0;
+@@ -2056,6 +2060,7 @@
+ press ? "press" : "release",
+ repeatable ? "true":"false" );
+
++#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
+ if ( qt_screen->isTransformed() && k >= Qt::Key_Left && k <= Qt::Key_Down )
+ {
+ qDebug( "SimpadButtonsHandler() - We are transformed! Correcting..." );
+@@ -2063,6 +2068,7 @@
+ k = xform_dirkey( k );
+ qDebug( "SimpadButtonsHandler() - Old Key: %d - New Key %d", oldK, k );
+ }
++#endif
+
+ if ( repeatable && press )
+ repeater->start( repeatdelay, true );
diff --git a/packages/qte/qte-2.3.10/ramses-keyboard.patch b/packages/qte/qte-2.3.10/ramses-keyboard.patch
deleted file mode 100644
index 61b5f302cf..0000000000
--- a/packages/qte/qte-2.3.10/ramses-keyboard.patch
+++ /dev/null
@@ -1,2339 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
---- qt-2.3.10/src/kernel/qkeyboard_qws.cpp~ramses-keyboard
-+++ qt-2.3.10/src/kernel/qkeyboard_qws.cpp
-@@ -1,5 +1,5 @@
- /****************************************************************************
--** $Id$
-+** $Id$
- **
- ** Implementation of Qt/Embedded keyboard drivers
- **
-@@ -37,7 +37,6 @@
- #include <qapplication.h>
- #include <qsocketnotifier.h>
- #include <qnamespace.h>
--#include <qdatetime.h>
- #include <qtimer.h>
-
- #include <stdlib.h>
-@@ -45,9 +44,7 @@
- #include <ctype.h>
-
- #include <unistd.h>
--#ifdef _OS_LINUX_
- #include <linux/kd.h>
--#endif
- #include <sys/ioctl.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -55,121 +52,13 @@
- #include <errno.h>
- #include <signal.h>
-
--#ifdef QT_QWS_TIP2
--#include <qcopchannel_qws.h>
--#endif
--
--//#define QT_QWS_USE_KEYCODES
--
- #ifndef QT_NO_QWS_KEYBOARD
-
--#ifdef QT_QWS_YOPY
--#include <qwidgetlist.h>
--#include <linux/kd.h>
--#include <linux/fb.h>
--#include <linux/yopy_button.h>
--extern "C" {
-- int getpgid(int);
--}
--#endif
--
--#if !defined(_OS_QNX6_)
--
- #include <termios.h>
--#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
- #include <sys/kd.h>
- #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
--
--#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
--#define QT_QWS_AUTOREPEAT_MANUALLY
--#endif
--
--
--
--#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
--static int dir_keyrot = -1;
--
--static int xform_dirkey(int key)
--{
-- if (dir_keyrot < 0) {
-- // get the rotation
-- char *kerot = getenv("QWS_CURSOR_ROTATION");
-- if (kerot) {
-- if (strcmp(kerot, "90") == 0)
-- dir_keyrot = 1;
-- else if (strcmp(kerot, "180") == 0)
-- dir_keyrot = 2;
-- else if (strcmp(kerot, "270") == 0)
-- dir_keyrot = 3;
-- else
-- dir_keyrot = 0;
-- } else {
-- dir_keyrot = 0;
-- }
-- }
-- int xf = qt_screen->transformOrientation() + dir_keyrot;
-- return (key-Qt::Key_Left+xf)%4+Qt::Key_Left;
--}
--#endif
-+#include <sys/wait.h>
-+#include <linux/keyboard.h>
-
- #define VTSWITCHSIG SIGUSR2
-
-@@ -177,374 +66,6 @@
- static int vtQws = 0;
- static int kbdFD = -1;
-
--class QWSyopyButtonsHandler : public QWSKeyboardHandler
--{
-- Q_OBJECT
--public:
-- QWSyopyButtonsHandler();
-- virtual ~QWSyopyButtonsHandler();
--
-- bool isOpen() { return buttonFD > 0; }
--
--private slots:
-- void readKeyboardData();
--
--private:
-- QString terminalName;
-- int buttonFD;
-- struct termios newT, oldT;
-- QSocketNotifier *notifier;
--};
--
--#endif // QNX6
--
--
--class QWSKeyboardRepeater : public QObject {
-- Q_OBJECT
--public:
-- static QWSKeyboardRepeater *current;
--
-- QWSKeyboardRepeater(QWSKeyboardHandler* parent) :
-- QObject(parent)
-- {
-- current = this;
-- repeatdelay = 400;
-- repeatperiod = 80;
-- repeater = new QTimer(this);
-- connect(repeater, SIGNAL(timeout()), this, SLOT(autoRepeat()));
-- }
--
-- ~QWSKeyboardRepeater()
-- {
-- if ( current == this )
-- current = 0;
-- }
--
-- void setAutoRepeat(int d, int p) { if ( d > 0 ) repeatdelay=d;
-- if ( p > 0 ) repeatperiod=p;}
-- void getAutoRepeat(int *d ,int *p ) { if (d) *d=repeatdelay;
-- if (p) *p=repeatperiod; }
--
-- void stop()
-- {
-- repeater->stop();
-- }
--
-- void start(int uni, int key, int mod)
-- {
-- runi = uni;
-- rkey = key;
-- rmod = mod;
-- repeater->start(repeatdelay,TRUE);
-- }
--
--private slots:
-- void autoRepeat();
--
--private:
-- int runi;
-- int rkey;
-- int rmod;
--
-- QTimer* repeater;
-- int repeatdelay, repeatperiod;
--};
--
--QWSKeyboardRepeater *QWSKeyboardRepeater::current=0;
--
--void QWSKeyboardRepeater::autoRepeat()
--{
--#ifdef QT_QWS_AUTOREPEAT_MANUALLY
-- qwsServer->processKeyEvent( runi, rkey, rmod, FALSE, TRUE );
-- qwsServer->processKeyEvent( runi, rkey, rmod, TRUE, TRUE );
-- repeater->start(repeatperiod);
--#endif
--}
--
--
--#ifdef QT_QWS_SL5XXX
--static const QWSServer::KeyMap keyM[] = {
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 00
-- { Qt::Key_A, 'a' , 'A' , 'A'-64 }, // 01
-- { Qt::Key_B, 'b' , 'B' , 'B'-64 }, // 02
-- { Qt::Key_C, 'c' , 'C' , 'C'-64 }, // 03
-- { Qt::Key_D, 'd' , 'D' , 'D'-64 }, // 04
-- { Qt::Key_E, 'e' , 'E' , 'E'-64 }, // 05
-- { Qt::Key_F, 'f' , 'F' , 'F'-64 }, // 06
-- { Qt::Key_G, 'g' , 'G' , 'G'-64 }, // 07
-- { Qt::Key_H, 'h' , 'H' , 'H'-64 }, // 08
-- { Qt::Key_I, 'i' , 'I' , 'I'-64 }, // 09
-- { Qt::Key_J, 'j' , 'J' , 'J'-64 }, // 0a 10
-- { Qt::Key_K, 'k' , 'K' , 'K'-64 }, // 0b
-- { Qt::Key_L, 'l' , 'L' , 'L'-64 }, // 0c
-- { Qt::Key_M, 'm' , 'M' , 'M'-64 }, // 0d
-- { Qt::Key_N, 'n' , 'N' , 'N'-64 }, // 0e
-- { Qt::Key_O, 'o' , 'O' , 'O'-64 }, // 0f
-- { Qt::Key_P, 'p' , 'P' , 'P'-64 }, // 10
-- { Qt::Key_Q, 'q' , 'Q' , 'Q'-64 }, // 11
-- { Qt::Key_R, 'r' , 'R' , 'R'-64 }, // 12
-- { Qt::Key_S, 's' , 'S' , 'S'-64 }, // 13
-- { Qt::Key_T, 't' , 'T' , 'T'-64 }, // 14 20
-- { Qt::Key_U, 'u' , 'U' , 'U'-64 }, // 15
-- { Qt::Key_V, 'v' , 'V' , 'V'-64 }, // 16
-- { Qt::Key_W, 'w' , 'W' , 'W'-64 }, // 17
-- { Qt::Key_X, 'x' , 'X' , 'X'-64 }, // 18
-- { Qt::Key_Y, 'y' , 'Y' , 'Y'-64 }, // 19
-- { Qt::Key_Z, 'z' , 'Z' , 'Z'-64 }, // 1a
-- { Qt::Key_Shift, 0xffff , 0xffff , 0xffff }, // 1b
-- { Qt::Key_Return, 13 , 13 , 0xffff }, // 1c
-- { Qt::Key_F11, 0xffff , 0xffff , 0xffff }, // 1d todo
-- { Qt::Key_F22, 0xffff , 0xffff , 0xffff }, // 1e 30
-- { Qt::Key_Backspace, 8 , 8 , 0xffff }, // 1f
-- { Qt::Key_F31, 0xffff , 0xffff , 0xffff }, // 20
-- { Qt::Key_F35, 0xffff , 0xffff , 0xffff }, // 21 light
-- { Qt::Key_Escape, 0xffff , 0xffff , 0xffff }, // 22
--
-- // Direction key code are for *UNROTATED* display.
-- { Qt::Key_Up, 0xffff , 0xffff , 0xffff }, // 23
-- { Qt::Key_Right, 0xffff , 0xffff , 0xffff }, // 24
-- { Qt::Key_Left, 0xffff , 0xffff , 0xffff }, // 25
-- { Qt::Key_Down, 0xffff , 0xffff , 0xffff }, // 26
--
-- { Qt::Key_F33, 0xffff , 0xffff , 0xffff }, // 27 OK
-- { Qt::Key_F12, 0xffff , 0xffff , 0xffff }, // 28 40 home
-- { Qt::Key_1, '1' , 'q' , 'Q'-64 }, // 29
-- { Qt::Key_2, '2' , 'w' , 'W'-64 }, // 2a
-- { Qt::Key_3, '3' , 'e' , 'E'-64 }, // 2b
-- { Qt::Key_4, '4' , 'r' , 'R'-64 }, // 2c
-- { Qt::Key_5, '5' , 't' , 'T'-64 }, // 2d
-- { Qt::Key_6, '6' , 'y' , 'Y'-64 }, // 2e
-- { Qt::Key_7, '7' , 'u' , 'U'-64 }, // 2f
-- { Qt::Key_8, '8' , 'i' , 'I'-64 }, // 30
-- { Qt::Key_9, '9' , 'o' , 'O'-64 }, // 31
-- { Qt::Key_0, '0' , 'p' , 'P'-64 }, // 32 50
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 33
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 34
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 35
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 36
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 37
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 38
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 39
-- { Qt::Key_Minus, '-' , 'b' , 'B'-64 }, // 3a
-- { Qt::Key_Plus, '+' , 'n' , 'N'-64 }, // 3b
-- { Qt::Key_CapsLock, 0xffff , 0xffff , 0xffff }, // 3c 60
-- { Qt::Key_At, '@' , 's' , 'S'-64 }, // 3d
-- { Qt::Key_Question, '?' , '?' , 0xffff }, // 3e
-- { Qt::Key_Comma, ',' , ',' , 0xffff }, // 3f
-- { Qt::Key_Period, '.' , '.' , 0xffff }, // 40
-- { Qt::Key_Tab, 9 , '\\' , 0xffff }, // 41
-- { Qt::Key_X, 0xffff , 'x' , 'X'-64 }, // 42
-- { Qt::Key_C, 0xffff , 'c' , 'C'-64 }, // 43
-- { Qt::Key_V, 0xffff , 'v' , 'V'-64 }, // 44
-- { Qt::Key_Slash, '/' , '/' , 0xffff }, // 45
-- { Qt::Key_Apostrophe, '\'' , '\'' , 0xffff }, // 46 70
-- { Qt::Key_Semicolon, ';' , ';' , 0xffff }, // 47
-- { Qt::Key_QuoteDbl, '\"' , '\"' , 0xffff }, // 48
-- { Qt::Key_Colon, ':' , ':' , 0xffff }, // 49
-- { Qt::Key_NumberSign, '#' , 'd' , 'D'-64 }, // 4a
-- { Qt::Key_Dollar, '$' , 'f' , 'F'-64 }, // 4b
-- { Qt::Key_Percent, '%' , 'g' , 'G'-64 }, // 4c
-- { Qt::Key_Underscore, '_' , 'h' , 'H'-64 }, // 4d
-- { Qt::Key_Ampersand, '&' , 'j' , 'J'-64 }, // 4e
-- { Qt::Key_Asterisk, '*' , 'k' , 'K'-64 }, // 4f
-- { Qt::Key_ParenLeft, '(' , 'l' , 'L'-64 }, // 50 80
-- { Qt::Key_Delete, '[' , '[' , '[' }, // 51
-- { Qt::Key_Z, 0xffff , 'z' , 'Z'-64 }, // 52
-- { Qt::Key_Equal, '=' , 'm' , 'M'-64 }, // 53
-- { Qt::Key_ParenRight, ')' , ']' , ']' }, // 54
-- { Qt::Key_AsciiTilde, '~' , '^' , '^' }, // 55
-- { Qt::Key_Less, '<' , '{' , '{' }, // 56
-- { Qt::Key_Greater, '>' , '}' , '}' }, // 57
-- { Qt::Key_F9, 0xffff , 0xffff , 0xffff }, // 58 datebook
-- { Qt::Key_F10, 0xffff , 0xffff , 0xffff }, // 59 address
-- { Qt::Key_F13, 0xffff , 0xffff , 0xffff }, // 5a 90 email
-- { Qt::Key_F30, ' ' , ' ' , 0xffff }, // 5b select
-- { Qt::Key_Space, ' ' , '|' , '`' }, // 5c
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 5d
-- { Qt::Key_Exclam, '!' , 'a' , 'A'-64 }, // 5e
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 5f
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 60
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 61
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 62
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 63
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 64
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 65
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 66
-- { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 68
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 69
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 6a
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 6b
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 6c
-- { Qt::Key_F34, 0xffff , 0xffff , 0xffff }, // 6d power
-- { Qt::Key_F13, 0xffff , 0xffff , 0xffff }, // 6e mail long
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 6f
-- { Qt::Key_NumLock, 0xffff , 0xffff , 0xffff }, // 70
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 71
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 72
-- { 0x20ac, 0xffff , 0x20ac , 0x20ac }, // 73 Euro sign
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 74
-- { Qt::Key_F32, 0xffff , 0xffff , 0xffff }, // 75 Sync
-- { 0, 0xffff , 0xffff , 0xffff }
--};
--#else
--// Standard PC101
--static const QWSServer::KeyMap keyM[] = {
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Escape, 27 , 27 , 0xffff },
-- { Qt::Key_1, '1' , '!' , 0xffff },
-- { Qt::Key_2, '2' , '@' , 0xffff },
-- { Qt::Key_3, '3' , '#' , 0xffff },
-- { Qt::Key_4, '4' , '$' , 0xffff },
-- { Qt::Key_5, '5' , '%' , 0xffff },
-- { Qt::Key_6, '6' , '^' , 0xffff },
-- { Qt::Key_7, '7' , '&' , 0xffff },
-- { Qt::Key_8, '8' , '*' , 0xffff },
-- { Qt::Key_9, '9' , '(' , 0xffff }, // 10
-- { Qt::Key_0, '0' , ')' , 0xffff },
-- { Qt::Key_Minus, '-' , '_' , 0xffff },
-- { Qt::Key_Equal, '=' , '+' , 0xffff },
-- { Qt::Key_Backspace, 8 , 8 , 0xffff },
-- { Qt::Key_Tab, 9 , 9 , 0xffff },
-- { Qt::Key_Q, 'q' , 'Q' , 'Q'-64 },
-- { Qt::Key_W, 'w' , 'W' , 'W'-64 },
-- { Qt::Key_E, 'e' , 'E' , 'E'-64 },
-- { Qt::Key_R, 'r' , 'R' , 'R'-64 },
-- { Qt::Key_T, 't' , 'T' , 'T'-64 }, // 20
-- { Qt::Key_Y, 'y' , 'Y' , 'Y'-64 },
-- { Qt::Key_U, 'u' , 'U' , 'U'-64 },
-- { Qt::Key_I, 'i' , 'I' , 'I'-64 },
-- { Qt::Key_O, 'o' , 'O' , 'O'-64 },
-- { Qt::Key_P, 'p' , 'P' , 'P'-64 },
-- { Qt::Key_BraceLeft, '[' , '{' , 0xffff },
-- { Qt::Key_BraceRight, ']' , '}' , 0xffff },
-- { Qt::Key_Return, 13 , 13 , 0xffff },
-- { Qt::Key_Control, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_A, 'a' , 'A' , 'A'-64 }, // 30
-- { Qt::Key_S, 's' , 'S' , 'S'-64 },
-- { Qt::Key_D, 'd' , 'D' , 'D'-64 },
-- { Qt::Key_F, 'f' , 'F' , 'F'-64 },
-- { Qt::Key_G, 'g' , 'G' , 'G'-64 },
-- { Qt::Key_H, 'h' , 'H' , 'H'-64 },
-- { Qt::Key_J, 'j' , 'J' , 'J'-64 },
-- { Qt::Key_K, 'k' , 'K' , 'K'-64 },
-- { Qt::Key_L, 'l' , 'L' , 'L'-64 },
-- { Qt::Key_Semicolon, ';' , ':' , 0xffff },
-- { Qt::Key_Apostrophe, '\'' , '"' , 0xffff }, // 40
-- { Qt::Key_QuoteLeft, '`' , '~' , 0xffff },
-- { Qt::Key_Shift, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Backslash, '\\' , '|' , 0xffff },
-- { Qt::Key_Z, 'z' , 'Z' , 'Z'-64 },
-- { Qt::Key_X, 'x' , 'X' , 'X'-64 },
-- { Qt::Key_C, 'c' , 'C' , 'C'-64 },
-- { Qt::Key_V, 'v' , 'V' , 'V'-64 },
-- { Qt::Key_B, 'b' , 'B' , 'B'-64 },
-- { Qt::Key_N, 'n' , 'N' , 'N'-64 },
-- { Qt::Key_M, 'm' , 'M' , 'M'-64 }, // 50
-- { Qt::Key_Comma, ',' , '<' , 0xffff },
-- { Qt::Key_Period, '.' , '>' , 0xffff },
-- { Qt::Key_Slash, '/' , '?' , 0xffff },
-- { Qt::Key_Shift, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Asterisk, '*' , '*' , 0xffff },
-- { Qt::Key_Alt, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Space, ' ' , ' ' , 0xffff },
-- { Qt::Key_CapsLock, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F1, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F2, 0xffff , 0xffff , 0xffff }, // 60
-- { Qt::Key_F3, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F4, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F5, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F6, 0xffff , 0xffff , 0xffff },
--#if defined(QT_KEYPAD_MODE)
-- { Qt::Key_Menu, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Back, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Yes, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_No, 0xffff , 0xffff , 0xffff },
--#else
-- { Qt::Key_F7, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F8, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F9, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F10, 0xffff , 0xffff , 0xffff },
--#endif
-- { Qt::Key_NumLock, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_ScrollLock, 0xffff , 0xffff , 0xffff }, // 70
-- { Qt::Key_7, '7' , '7' , 0xffff },
-- { Qt::Key_8, '8' , '8' , 0xffff },
-- { Qt::Key_9, '9' , '9' , 0xffff },
-- { Qt::Key_Minus, '-' , '-' , 0xffff },
-- { Qt::Key_4, '4' , '4' , 0xffff },
-- { Qt::Key_5, '5' , '5' , 0xffff },
-- { Qt::Key_6, '6' , '6' , 0xffff },
-- { Qt::Key_Plus, '+' , '+' , 0xffff },
-- { Qt::Key_1, '1' , '1' , 0xffff },
-- { Qt::Key_2, '2' , '2' , 0xffff }, // 80
-- { Qt::Key_3, '3' , '3' , 0xffff },
-- { Qt::Key_0, '0' , '0' , 0xffff },
-- { Qt::Key_Period, '.' , '.' , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Less, '<' , '>' , 0xffff },
--#if defined(QT_KEYPAD_MODE)
-- { Qt::Key_Call, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Hangup, 0xffff , 0xffff , 0xffff },
--#else
-- { Qt::Key_F11, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F12, 0xffff , 0xffff , 0xffff },
--#endif
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 90
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Enter, 13 , 13 , 0xffff },
-- { Qt::Key_Control, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Slash, '/' , '/' , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 100
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // break
-- { Qt::Key_Home, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Up, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Prior, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Left, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Right, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_End, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Down, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Next, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Insert, 0xffff , 0xffff , 0xffff }, // 110
-- { Qt::Key_Delete, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // macro
-- { Qt::Key_F13, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_F14, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_Help, 0xffff , 0xffff , 0xffff },
--#if defined(QT_KEYPAD_MODE)
-- { Qt::Key_Select, 0xffff , 0xffff , 0xffff }, // do
--#else
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // do
--#endif
-- { Qt::Key_F17, 0xffff , 0xffff , 0xffff },
-- { 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
--#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_unknown, 0xffff , 0xffff , 0xffff },
-- { Qt::Key_unknown, 0xffff , 0xffff , 0xffff },
--#endif
-- { 0, 0xffff , 0xffff , 0xffff }
--};
--#endif
--static const int keyMSize = sizeof(keyM)/sizeof(QWSServer::KeyMap)-1;
- static QIntDict<QWSServer::KeyMap> *overrideMap = 0;
-
- /*!
-@@ -562,8 +83,6 @@
- overrideMap = map;
- }
-
--#if !defined(_OS_QNX6_)
--
- /*!
- \class QWSKeyboardHandler qkeyboard_qws.h
- \brief Keyboard driver/handler for Qt/Embedded
-@@ -597,114 +116,28 @@
- qwsServer->processKeyEvent( unicode, keycode, modifiers, isPress, autoRepeat );
- }
-
--class QWSPC101KeyboardHandler : public QWSKeyboardHandler
--{
-- Q_OBJECT
--public:
-- QWSPC101KeyboardHandler();
-- virtual ~QWSPC101KeyboardHandler();
--
-- void doKey(uchar scancode);
--
--
-- void restoreLeds();
-
--private:
-- bool shift;
-- bool alt;
-- bool ctrl;
--#if defined(QT_QWS_SL5XXX)
-- bool meta;
-- bool fn;
-- bool numLock;
--#endif
-- bool caps;
--#if defined(QT_QWS_IPAQ)
-- uint ipaq_return_pressed:1;
--#endif
--#ifndef QT_QWS_USE_KEYCODES
-- int extended;
--#endif
-- int modifiers;
-- int prevuni;
-- int prevkey;
--
--#ifdef QT_QWS_AUTOREPEAT_MANUALLY
-- QWSKeyboardRepeater *rep;
--#endif
--};
--
--void QWSPC101KeyboardHandler::restoreLeds()
-+bool qwsSetKeyboardAutoRepeat( int /* delay */ , int /* period */ )
- {
-- char leds;
-- ioctl(0, KDGETLED, &leds);
-- leds = leds & ~LED_CAP;
-- if ( caps ) leds |= LED_CAP;
-- ioctl(0, KDSETLED, leds);
-+ return FALSE;
- }
-
--class QWSTtyKeyboardHandler : public QWSPC101KeyboardHandler
--{
-- Q_OBJECT
--public:
-- QWSTtyKeyboardHandler(const QString&);
-- virtual ~QWSTtyKeyboardHandler();
--
--private slots:
-- void readKeyboardData();
--
--private:
-- struct termios origTermData;
--};
--
--
--// can't ifdef this out because moc runs on this file
--class QWSSamsungKeypadHandler : public QWSPC101KeyboardHandler
-+bool qwsGetKeyboardAutoRepeat( int /* delay */ , int /* period */ )
- {
-- Q_OBJECT
--public:
-- QWSSamsungKeypadHandler(const QString&);
-- virtual ~QWSSamsungKeypadHandler();
--
--private slots:
-- void readKeyboardData();
--};
-+ return FALSE;
-+}
-
--class QWSUsbKeyboardHandler : public QWSPC101KeyboardHandler
-+void qwsRestoreKeyboardLeds()
- {
-- Q_OBJECT
--public:
-- QWSUsbKeyboardHandler(const QString& device);
-- virtual ~QWSUsbKeyboardHandler();
-+}
-
--private slots:
-- void readKeyboardData();
-
--private:
-- int fd;
-- QWSServer::KeyMap *lastPress;
--};
-
--class QWSVr41xxButtonsHandler : public QWSKeyboardHandler
--{
-- Q_OBJECT
--public:
-- QWSVr41xxButtonsHandler();
-- virtual ~QWSVr41xxButtonsHandler();
-
-- bool isOpen() { return buttonFD > 0; }
--
--private slots:
-- void readKeyboardData();
-
--private:
-- QString terminalName;
-- int buttonFD;
-- int kbdIdx;
-- int kbdBufferLen;
-- unsigned char *kbdBuffer;
-- QSocketNotifier *notifier;
--};
-+/*
-+ * Virtual framebuffer keyboard driver
-+ */
-
- class QWSVFbKeyboardHandler : public QWSKeyboardHandler
- {
-@@ -727,1097 +160,393 @@
- QSocketNotifier *notifier;
- };
-
--
--static void vtSwitchHandler(int /*sig*/)
--{
--#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
-- if (vtActive) {
-- qwsServer->enablePainting(false);
-- qt_screen->save();
-- if (ioctl(kbdFD, VT_RELDISP, 1) == 0) {
-- vtActive = false;
-- qwsServer->closeMouse();
-- }
-- else {
-- qwsServer->enablePainting(true);
-- }
-- usleep(200000);
-- }
-- else {
-- if (ioctl(kbdFD, VT_RELDISP, VT_ACKACQ) == 0) {
-- qwsServer->enablePainting(true);
-- vtActive = true;
-- qt_screen->restore();
-- qwsServer->openMouse();
-- qwsServer->refresh();
-- }
-- }
-- signal(VTSWITCHSIG, vtSwitchHandler);
--#endif
--}
--
--//
--// PC-101 type keyboards
--//
--
--
--
--static QWSPC101KeyboardHandler *currentPC101=0;
--
--bool qwsSetKeyboardAutoRepeat( int delay, int period )
--{
--#ifdef QT_QWS_AUTOREPEAT_MANUALLY
-- if ( QWSKeyboardRepeater::current )
-- QWSKeyboardRepeater::current->setAutoRepeat( delay, period );
-- return QWSKeyboardRepeater::current != 0;
--#else
-- Q_UNUSED(delay);
-- Q_UNUSED(period);
-- return FALSE;
--#endif
--}
--
--bool qwsGetKeyboardAutoRepeat( int *delay, int *period )
--{
--#ifdef QT_QWS_AUTOREPEAT_MANUALLY
-- if ( QWSKeyboardRepeater::current )
-- QWSKeyboardRepeater::current->getAutoRepeat( delay, period );
-- return QWSKeyboardRepeater::current != 0;
--#else
-- Q_UNUSED(delay);
-- Q_UNUSED(period);
-- return FALSE;
-+#ifndef QT_NO_QWS_VFB
-+#include "qvfbhdr.h"
-+extern int qws_display_id;
- #endif
--}
-
--void qwsRestoreKeyboardLeds()
-+QWSVFbKeyboardHandler::QWSVFbKeyboardHandler()
- {
-- if ( currentPC101 )
-- currentPC101->restoreLeds();
--}
--
-+ 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);
-
--QWSPC101KeyboardHandler::QWSPC101KeyboardHandler()
--{
-- shift = false;
-- alt = false;
-- ctrl = false;
--#ifndef QT_QWS_USE_KEYCODES
-- extended = 0;
--#endif
-- prevuni = 0;
-- prevkey = 0;
-- caps = FALSE;
--#if defined(QT_QWS_SL5XXX)
-- meta = FALSE;
-- fn = FALSE;
-+ 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) { }
-
-- numLock = FALSE;
-- sharp_kbdctl_modifstat st;
-- int dev = ::open("/dev/sharp_kbdctl", O_RDWR);
-- if( dev >= 0 ) {
-- memset(&st, 0, sizeof(st));
-- st.which = 3;
-- int ret = ioctl(dev, SHARP_KBDCTL_GETMODIFSTAT, (char*)&st);
-- if( !ret )
-- numLock = (bool)st.stat;
-- ::close(dev);
-+ notifier = new QSocketNotifier( kbdFD, QSocketNotifier::Read, this );
-+ connect(notifier, SIGNAL(activated(int)),this, SLOT(readKeyboardData()));
- }
- #endif
--#if defined(QT_QWS_IPAQ)
-- // iPAQ Action Key has ScanCode 0x60: 0x60|0x80 = 0xe0 == extended mode 1 !
-- ipaq_return_pressed = FALSE;
--#endif
--#ifdef QT_QWS_AUTOREPEAT_MANUALLY
-- rep = new QWSKeyboardRepeater(this);
--#endif
-- currentPC101 = this;
- }
-
--QWSPC101KeyboardHandler::~QWSPC101KeyboardHandler()
-+QWSVFbKeyboardHandler::~QWSVFbKeyboardHandler()
- {
-- if ( currentPC101 == this )
-- currentPC101 = 0;
-+#ifndef QT_NO_QWS_VFB
-+ if ( kbdFD >= 0 )
-+ close( kbdFD );
-+ delete [] kbdBuffer;
-+#endif
- }
-
--void QWSPC101KeyboardHandler::doKey(uchar code)
-+
-+void QWSVFbKeyboardHandler::readKeyboardData()
- {
-- const QWSServer::KeyMap *currentKey = 0;
-- int keyCode = Qt::Key_unknown;
-- bool release = false;
-- int keypad = 0;
-+#ifndef QT_NO_QWS_VFB
-+ int n;
-+ do {
-+ n = read(kbdFD, kbdBuffer+kbdIdx, kbdBufferLen - kbdIdx );
-+ if ( n > 0 )
-+ kbdIdx += n;
-+ } while ( n > 0 );
-
--#ifndef QT_QWS_USE_KEYCODES
--#if defined(QT_QWS_IPAQ)
-- // map ipaq 'action' key (0x60, 0xe0)
-- if ((code & 0x7f) == 0x60) {
--#if defined(QT_KEYPAD_MODE)
-- // to keycode for select (keypad mode)
-- code = (code & 0x80) | 116;
--#else
-- // to keycode for space. (no keypad mode0
-- code = (code & 0x80) | 57;
--#endif
-+ 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 );
- }
--#endif
-
--#if !defined(QT_QWS_SL5XXX)
-- if (code == 224
--#if defined(QT_QWS_IPAQ)
-- && !ipaq_return_pressed
--#endif
-- ) {
-- // extended
-- extended = 1;
-- return;
-- }
-- else if (code == 225) {
-- // extended 2
-- extended = 2;
-- return;
-- }
--#endif
-+ int surplus = kbdIdx - idx;
-+ for ( int i = 0; i < surplus; i++ )
-+ kbdBuffer[i] = kbdBuffer[idx+i];
-+ kbdIdx = surplus;
- #endif
-+}
-
-
-- /*------------------------------------------------------------------
-- First find the Qt KeyCode
-- ------------------------------------------------------------------*/
--
-- if (code & 0x80) {
-- release = true;
-- code &= 0x7f;
-- }
--
--#ifndef QT_QWS_USE_KEYCODES
-- if (extended == 1) {
-- currentKey = overrideMap ? overrideMap->find( code+0xe000 ) : 0;
-- if ( currentKey )
-- keyCode = currentKey->key_code;
-- else
-- switch (code) {
-- case 72:
-- keyCode = Qt::Key_Up;
-- break;
-- case 75:
-- keyCode = Qt::Key_Left;
-- break;
-- case 77:
-- keyCode = Qt::Key_Right;
-- break;
-- case 80:
-- keyCode = Qt::Key_Down;
-- break;
-- case 82:
-- keyCode = Qt::Key_Insert;
-- break;
-- case 71:
-- keyCode = Qt::Key_Home;
-- break;
-- case 73:
-- keyCode = Qt::Key_Prior;
-- break;
-- case 83:
-- keyCode = Qt::Key_Delete;
-- break;
-- case 79:
-- keyCode = Qt::Key_End;
-- break;
-- case 81:
-- keyCode = Qt::Key_Next;
-- break;
-- case 28:
-- keyCode = Qt::Key_Enter;
-- break;
-- case 53:
-- keyCode = Qt::Key_Slash;
-- break;
-- case 0x1d:
-- keyCode = Qt::Key_Control;
-- break;
-- case 0x2a:
-- keyCode = Qt::Key_SysReq;
-- break;
-- case 0x38:
-- keyCode = Qt::Key_Alt;
-- break;
-- case 0x5b:
-- keyCode = Qt::Key_Super_L;
-- break;
-- case 0x5c:
-- keyCode = Qt::Key_Super_R;
-- break;
-- case 0x5d:
-- keyCode = Qt::Key_Menu;
-- break;
-- }
-- } else if ( extended == 2 ) {
-- switch (code) {
-- case 0x1d:
-- return;
-- case 0x45:
-- keyCode = Qt::Key_Pause;
-- break;
-- }
--