diff options
Diffstat (limited to 'packages/qte')
| -rw-r--r-- | packages/qte/qte-2.3.10/ipaq_sound_fix.patch | 0 | ||||
| -rw-r--r-- | packages/qte/qte-2.3.10/key.patch | 79 | ||||
| -rw-r--r-- | packages/qte/qte-2.3.10/ramses-keyboard.patch | 2339 | ||||
| -rw-r--r-- | packages/qte/qte-2.3.10/ramses/qkeyboard_qws.cpp | 0 | ||||
| -rw-r--r-- | packages/qte/qte-2.3.10/ramses/qkeyboard_qws.h | 0 | ||||
| -rw-r--r-- | packages/qte/qte_2.3.10.bb | 17 |
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; -- } -- |
