summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-05-30 23:00:51 (UTC)
committer mickeyl <mickeyl>2003-05-30 23:00:51 (UTC)
commita0e3407973f1383e27375be0b37e0ede46f9bd96 (patch) (unidiff)
treee7bba77b316092a563debdafe493318a7fea91ba
parentb0af03e11acc0680a8ca4825cfe9f73e793a5fe1 (diff)
downloadopie-a0e3407973f1383e27375be0b37e0ede46f9bd96.zip
opie-a0e3407973f1383e27375be0b37e0ede46f9bd96.tar.gz
opie-a0e3407973f1383e27375be0b37e0ede46f9bd96.tar.bz2
minor tweaks to the keyboard driver. i'm still not satisfied though, but
i'll stop now until we have a broader testing audience. eventually that whole stuff must be done in the kernel as part of the new input layer!
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qte234-for-opie091-simpad.patch25
1 files changed, 8 insertions, 17 deletions
diff --git a/qt/qte234-for-opie091-simpad.patch b/qt/qte234-for-opie091-simpad.patch
index 5959469..e4af4f7 100644
--- a/qt/qte234-for-opie091-simpad.patch
+++ b/qt/qte234-for-opie091-simpad.patch
@@ -32,7 +32,7 @@
32 #include <qnamespace.h> 32 #include <qnamespace.h>
33+#include <qdatetime.h> 33+#include <qdatetime.h>
34 #include <qtimer.h> 34 #include <qtimer.h>
35 35
36 #include <stdlib.h> 36 #include <stdlib.h>
37@@ -131,6 +132,59 @@ 37@@ -131,6 +132,59 @@
38 38
@@ -94,15 +94,6 @@
94 #ifdef QT_QWS_SL5XXX 94 #ifdef QT_QWS_SL5XXX
95 static const QWSServer::KeyMap keyM[] = { 95 static const QWSServer::KeyMap keyM[] = {
96 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 00 96 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 00
97@@ -396,7 +450,7 @@
98 for the list of codes).
99 <li>\a modifiers is the set of modifier keys (see Qt::Modifier).
100 <li>\a isPress says whether this is a press or a release.
101- <li>\a autoRepeat says whether this event was generated by an auto-repeat
102+ <li>\a time says whether this event was generated by an auto-repeat
103 mechanism, or an actual key press.
104 </ul>
105 */
106@@ -1440,7 +1494,11 @@ 97@@ -1440,7 +1494,11 @@
107 } else { 98 } else {
108 type = spec; 99 type = spec;
@@ -119,9 +110,9 @@
119@@ -1469,6 +1527,217 @@ 110@@ -1469,6 +1527,217 @@
120 return keyM; 111 return keyM;
121 } 112 }
122 113
123-#endif // QT_NO_QWS_KEYBOARD 114-#endif // QT_NO_QWS_KEYBOARD
124 115
125+/* 116+/*
126+ * SIMpad switches handler 117+ * SIMpad switches handler
127+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 118+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
@@ -134,14 +125,14 @@
134+ lastCode( 0 ), lastPress( 0 ), 125+ lastCode( 0 ), lastPress( 0 ),
135+ k( -1 ), shiftKeyPressed( 0 ), shiftUsed( false ) 126+ k( -1 ), shiftKeyPressed( 0 ), shiftUsed( false )
136+{ 127+{
137+ qDebug( "SimpadButtonsHandler()" ); 128+ qDebug( "SimpadButtonsHandler() - V4.1" );
138+ fd = ::open( SIMPAD_SWITCHES_DEVICE, O_RDWR | O_NDELAY, 0 ); 129+ fd = ::open( SIMPAD_SWITCHES_DEVICE, O_RDWR | O_NDELAY, 0 );
139+ if ( fd < 0 ) 130+ if ( fd < 0 )
140+ { 131+ {
141+ qWarning( "SimpadButtonsHandler(): can't open %s", SIMPAD_SWITCHES_DEVICE ); 132+ qWarning( "SimpadButtonsHandler(): can't open %s", SIMPAD_SWITCHES_DEVICE );
142+ return; 133+ return;
143+ } 134+ }
144 135
145+ notifier = new QSocketNotifier( fd, QSocketNotifier::Read, this ); 136+ notifier = new QSocketNotifier( fd, QSocketNotifier::Read, this );
146+ connect( notifier, SIGNAL( activated(int) ),this, SLOT( readSwitchesData() ) ); 137+ connect( notifier, SIGNAL( activated(int) ),this, SLOT( readSwitchesData() ) );
147+ 138+
@@ -196,7 +187,7 @@
196+ { 187+ {
197+ int interval = eventTimer.restart(); 188+ int interval = eventTimer.restart();
198+ qDebug( "event interval = %d", interval ); 189+ qDebug( "event interval = %d", interval );
199+ if ( code == lastCode && interval < 30 ) 190+ if ( code == lastCode && interval < 10 )
200+ { 191+ {
201+ qDebug( "event interval too small - ignoring bogus event" ); 192+ qDebug( "event interval too small - ignoring bogus event" );
202+ qDebug( "did I say i hate buggy kernel drivers? :-D" ); 193+ qDebug( "did I say i hate buggy kernel drivers? :-D" );
@@ -287,8 +278,8 @@
287+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_Left; break; 278+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_Left; break;
288+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_Right; break; 279+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_Right; break;
289+ 280+
290+ case SIMPAD_SWITCH_UPPER: k=-1; shiftKeyPressed = code; shiftUsed = false; return; 281+ case SIMPAD_SWITCH_UPPER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return;
291+ case SIMPAD_SWITCH_LOWER: k=-1; shiftKeyPressed = code; shiftUsed = false; return; 282+ case SIMPAD_SWITCH_LOWER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return;
292+ 283+
293+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event!" ); break; 284+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event!" ); break;
294+ } 285+ }