summaryrefslogtreecommitdiff
path: root/libopie2
Unidiff
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_ipaq.cpp4
-rw-r--r--libopie2/opiecore/device/odevice_mypal.cpp4
2 files changed, 6 insertions, 2 deletions
diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp
index 5272a3c..a221e23 100644
--- a/libopie2/opiecore/device/odevice_ipaq.cpp
+++ b/libopie2/opiecore/device/odevice_ipaq.cpp
@@ -248,128 +248,132 @@ bool iPAQ::setLedState ( OLed l, OLedState st )
248{ 248{
249 static int fd = ::open ( "/dev/touchscreen/0", O_RDWR | O_NONBLOCK ); 249 static int fd = ::open ( "/dev/touchscreen/0", O_RDWR | O_NONBLOCK );
250 250
251 if ( l == Led_Power ) { 251 if ( l == Led_Power ) {
252 if ( fd >= 0 ) { 252 if ( fd >= 0 ) {
253 LED_IN leds; 253 LED_IN leds;
254 ::memset ( &leds, 0, sizeof( leds )); 254 ::memset ( &leds, 0, sizeof( leds ));
255 leds. TotalTime = 0; 255 leds. TotalTime = 0;
256 leds. OnTime = 0; 256 leds. OnTime = 0;
257 leds. OffTime = 1; 257 leds. OffTime = 1;
258 leds. OffOnBlink = 2; 258 leds. OffOnBlink = 2;
259 259
260 switch ( st ) { 260 switch ( st ) {
261 case Led_Off : leds. OffOnBlink = 0; break; 261 case Led_Off : leds. OffOnBlink = 0; break;
262 case Led_On : leds. OffOnBlink = 1; break; 262 case Led_On : leds. OffOnBlink = 1; break;
263 case Led_BlinkSlow: leds. OnTime = 10; leds. OffTime = 10; break; 263 case Led_BlinkSlow: leds. OnTime = 10; leds. OffTime = 10; break;
264 case Led_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break; 264 case Led_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break;
265 } 265 }
266 266
267 if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) { 267 if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) {
268 m_leds [0] = st; 268 m_leds [0] = st;
269 return true; 269 return true;
270 } 270 }
271 } 271 }
272 } 272 }
273 return false; 273 return false;
274} 274}
275 275
276 276
277bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) 277bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat )
278{ 278{
279 int newkeycode = keycode; 279 int newkeycode = keycode;
280 280
281 switch ( keycode ) { 281 switch ( keycode ) {
282 // H38xx/H39xx have no "Q" key anymore - this is now the Mail key 282 // H38xx/H39xx have no "Q" key anymore - this is now the Mail key
283 case HardKey_Menu: { 283 case HardKey_Menu: {
284 if (( d->m_model == Model_iPAQ_H38xx ) || 284 if (( d->m_model == Model_iPAQ_H38xx ) ||
285 ( d->m_model == Model_iPAQ_H39xx ) || 285 ( d->m_model == Model_iPAQ_H39xx ) ||
286 ( d->m_model == Model_iPAQ_H5xxx)) { 286 ( d->m_model == Model_iPAQ_H5xxx)) {
287 newkeycode = HardKey_Mail; 287 newkeycode = HardKey_Mail;
288 } 288 }
289 break; 289 break;
290 } 290 }
291 291
292 // Rotate cursor keys 180 or 270 292 // Rotate cursor keys 180 or 270
293 case Key_Left : 293 case Key_Left :
294 case Key_Right: 294 case Key_Right:
295 case Key_Up : 295 case Key_Up :
296 case Key_Down : { 296 case Key_Down : {
297 if (( d->m_model == Model_iPAQ_H31xx ) || 297 if (( d->m_model == Model_iPAQ_H31xx ) ||
298 ( d->m_model == Model_iPAQ_H38xx )) { 298 ( d->m_model == Model_iPAQ_H38xx )) {
299 newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; 299 newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4;
300 } 300 }
301 // Rotate the cursor keys by 270 301 // Rotate the cursor keys by 270
302 // keycode - Key_Left = position of the button starting from left clockwise 302 // keycode - Key_Left = position of the button starting from left clockwise
303 // add the rotation to it and modolo. No we've the original offset 303 // add the rotation to it and modolo. No we've the original offset
304 // add the offset to the Key_Left key 304 // add the offset to the Key_Left key
305 if (( d->m_model == Model_iPAQ_H5xxx ) || 305 if (( d->m_model == Model_iPAQ_H5xxx ) ||
306 ( d->m_model == Model_iPAQ_H191x ) || 306 ( d->m_model == Model_iPAQ_H191x ) ||
307 ( d->m_model == Model_iPAQ_H1940 )) 307 ( d->m_model == Model_iPAQ_H1940 ))
308 newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; 308 newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4;
309 break; 309 break;
310 } 310 }
311 311
312 // map Power Button short/long press to F6 for h191x
313 case Key_F6:
314 if ( d->m_model != Model_iPAQ_H191x )
315 break;
312 // map Power Button short/long press to F34/F35 316 // map Power Button short/long press to F34/F35
313 case Key_SysReq: { 317 case Key_SysReq: {
314 if ( isPress ) { 318 if ( isPress ) {
315 if ( m_power_timer ) 319 if ( m_power_timer )
316 killTimer ( m_power_timer ); 320 killTimer ( m_power_timer );
317 m_power_timer = startTimer ( 500 ); 321 m_power_timer = startTimer ( 500 );
318 } 322 }
319 else if ( m_power_timer ) { 323 else if ( m_power_timer ) {
320 killTimer ( m_power_timer ); 324 killTimer ( m_power_timer );
321 m_power_timer = 0; 325 m_power_timer = 0;
322 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, true, false ); 326 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, true, false );
323 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false ); 327 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false );
324 } 328 }
325 newkeycode = Key_unknown; 329 newkeycode = Key_unknown;
326 break; 330 break;
327 } 331 }
328 } 332 }
329 333
330 if ( newkeycode != keycode ) { 334 if ( newkeycode != keycode ) {
331 if ( newkeycode != Key_unknown ) 335 if ( newkeycode != Key_unknown )
332 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); 336 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat );
333 return true; 337 return true;
334 } 338 }
335 else 339 else
336 return false; 340 return false;
337} 341}
338 342
339void iPAQ::timerEvent ( QTimerEvent * ) 343void iPAQ::timerEvent ( QTimerEvent * )
340{ 344{
341 killTimer ( m_power_timer ); 345 killTimer ( m_power_timer );
342 m_power_timer = 0; 346 m_power_timer = 0;
343 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false ); 347 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false );
344 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false ); 348 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false );
345} 349}
346 350
347 351
348void iPAQ::playAlarmSound() 352void iPAQ::playAlarmSound()
349{ 353{
350#ifndef QT_NO_SOUND 354#ifndef QT_NO_SOUND
351 static Sound snd ( "alarm" ); 355 static Sound snd ( "alarm" );
352 if(!snd.isFinished()) 356 if(!snd.isFinished())
353 return; 357 return;
354 358
355 changeMixerForAlarm(0, "/dev/sound/mixer", &snd ); 359 changeMixerForAlarm(0, "/dev/sound/mixer", &snd );
356 snd. play(); 360 snd. play();
357#endif 361#endif
358} 362}
359 363
360bool iPAQ::setDisplayBrightness ( int bright ) 364bool iPAQ::setDisplayBrightness ( int bright )
361{ 365{
362 bool res = false; 366 bool res = false;
363 int fd; 367 int fd;
364 368
365 if ( bright > 255 ) 369 if ( bright > 255 )
366 bright = 255; 370 bright = 255;
367 if ( bright < 0 ) 371 if ( bright < 0 )
368 bright = 0; 372 bright = 0;
369 373
370 QString cmdline; 374 QString cmdline;
371 375
372 switch ( model()) { 376 switch ( model()) {
373 case Model_iPAQ_H191x: 377 case Model_iPAQ_H191x:
374 if ( !bright ) 378 if ( !bright )
375 cmdline = QString::fromLatin1( "echo 4 > /sys/class/backlight/pxafb/power"); 379 cmdline = QString::fromLatin1( "echo 4 > /sys/class/backlight/pxafb/power");
diff --git a/libopie2/opiecore/device/odevice_mypal.cpp b/libopie2/opiecore/device/odevice_mypal.cpp
index da0272e..7e1245a 100644
--- a/libopie2/opiecore/device/odevice_mypal.cpp
+++ b/libopie2/opiecore/device/odevice_mypal.cpp
@@ -88,130 +88,130 @@ struct m_button mypal_buttons [] = {
88}; 88};
89 89
90void MyPal::init(const QString& model) 90void MyPal::init(const QString& model)
91{ 91{
92 d->m_vendorstr = "Asus"; 92 d->m_vendorstr = "Asus";
93 d->m_vendor = Vendor_Asus; 93 d->m_vendor = Vendor_Asus;
94 94
95 d->m_modelstr = model.mid(model.findRev('A')); 95 d->m_modelstr = model.mid(model.findRev('A'));
96 if ( d->m_modelstr == "A716" ) 96 if ( d->m_modelstr == "A716" )
97 d->m_model = Model_MyPal_716; 97 d->m_model = Model_MyPal_716;
98 else 98 else
99 d->m_model = Model_Unknown; 99 d->m_model = Model_Unknown;
100 100
101 d->m_rotation = Rot0; 101 d->m_rotation = Rot0;
102 102
103 m_power_timer = 0; 103 m_power_timer = 0;
104} 104}
105 105
106void MyPal::initButtons() 106void MyPal::initButtons()
107{ 107{
108 if ( d->m_buttons ) 108 if ( d->m_buttons )
109 return; 109 return;
110 110
111 if ( isQWS( ) ) { 111 if ( isQWS( ) ) {
112 addPreHandler(this); 112 addPreHandler(this);
113 } 113 }
114 114
115 d->m_buttons = new QValueList <ODeviceButton>; 115 d->m_buttons = new QValueList <ODeviceButton>;
116 116
117 for ( uint i = 0; i < ( sizeof( mypal_buttons ) / sizeof( m_button )); i++ ) { 117 for ( uint i = 0; i < ( sizeof( mypal_buttons ) / sizeof( m_button )); i++ ) {
118 m_button *mb = mypal_buttons + i; 118 m_button *mb = mypal_buttons + i;
119 ODeviceButton b; 119 ODeviceButton b;
120 120
121 if (( mb->model & d->m_model ) == d->m_model ) { 121 if (( mb->model & d->m_model ) == d->m_model ) {
122 b. setKeycode ( mb->code ); 122 b. setKeycode ( mb->code );
123 b. setUserText ( QObject::tr ( "Button", mb->utext )); 123 b. setUserText ( QObject::tr ( "Button", mb->utext ));
124 b. setPixmap ( OResource::loadPixmap ( mb->pix )); 124 b. setPixmap ( OResource::loadPixmap ( mb->pix ));
125 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( mb->fpressedservice ), mb->fpressedaction )); 125 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( mb->fpressedservice ), mb->fpressedaction ));
126 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( mb->fheldservice ), mb->fheldaction )); 126 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( mb->fheldservice ), mb->fheldaction ));
127 127
128 d->m_buttons->append ( b ); 128 d->m_buttons->append ( b );
129 } 129 }
130 } 130 }
131 reloadButtonMapping(); 131 reloadButtonMapping();
132} 132}
133 133
134bool MyPal::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) 134bool MyPal::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat )
135{ 135{
136 int newkeycode = keycode; 136 int newkeycode = keycode;
137 137
138 switch ( keycode ) { 138 switch ( keycode ) {
139 case Key_Left : 139 case Key_Left :
140 case Key_Right: 140 case Key_Right:
141 case Key_Up : 141 case Key_Up :
142 case Key_Down : { 142 case Key_Down : {
143 // Rotate the cursor keys by 270 143 // Rotate the cursor keys by 270
144 // keycode - Key_Left = position of the button starting from left clockwise 144 // keycode - Key_Left = position of the button starting from left clockwise
145 // add the rotation to it and modolo. No we've the original offset 145 // add the rotation to it and modolo. No we've the original offset
146 // add the offset to the Key_Left key 146 // add the offset to the Key_Left key
147 if ( d->m_model == Model_MyPal_716 ) 147 if ( d->m_model == Model_MyPal_716 )
148 newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; 148 newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4;
149 break; 149 break;
150 } 150 }
151 151
152 // map Power Button short/long press to F34/F35 152 // map Power Button short/long press to F6
153 case Key_SysReq: { 153 case Key_F6: {
154 if ( isPress ) { 154 if ( isPress ) {
155 if ( m_power_timer ) 155 if ( m_power_timer )
156 killTimer ( m_power_timer ); 156 killTimer ( m_power_timer );
157 m_power_timer = startTimer ( 500 ); 157 m_power_timer = startTimer ( 500 );
158 } 158 }
159 else if ( m_power_timer ) { 159 else if ( m_power_timer ) {
160 killTimer ( m_power_timer ); 160 killTimer ( m_power_timer );
161 m_power_timer = 0; 161 m_power_timer = 0;
162 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, true, false ); 162 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, true, false );
163 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false ); 163 QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false );
164 } 164 }
165 newkeycode = Key_unknown; 165 newkeycode = Key_unknown;
166 break; 166 break;
167 } 167 }
168 } 168 }
169 169
170 if ( newkeycode != keycode ) { 170 if ( newkeycode != keycode ) {
171 if ( newkeycode != Key_unknown ) 171 if ( newkeycode != Key_unknown )
172 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); 172 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat );
173 return true; 173 return true;
174 } 174 }
175 else 175 else
176 return false; 176 return false;
177} 177}
178 178
179void MyPal::timerEvent ( QTimerEvent * ) 179void MyPal::timerEvent ( QTimerEvent * )
180{ 180{
181 killTimer ( m_power_timer ); 181 killTimer ( m_power_timer );
182 m_power_timer = 0; 182 m_power_timer = 0;
183 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false ); 183 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false );
184 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false ); 184 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false );
185} 185}
186 186
187 187
188void MyPal::playAlarmSound() 188void MyPal::playAlarmSound()
189{ 189{
190#ifndef QT_NO_SOUND 190#ifndef QT_NO_SOUND
191 static Sound snd ( "alarm" ); 191 static Sound snd ( "alarm" );
192 if(!snd.isFinished()) 192 if(!snd.isFinished())
193 return; 193 return;
194 194
195 changeMixerForAlarm(0, "/dev/sound/mixer", &snd ); 195 changeMixerForAlarm(0, "/dev/sound/mixer", &snd );
196 snd. play(); 196 snd. play();
197#endif 197#endif
198} 198}
199 199
200bool MyPal::setDisplayBrightness ( int bright ) 200bool MyPal::setDisplayBrightness ( int bright )
201{ 201{
202 bool res = false; 202 bool res = false;
203 203
204 if ( bright > 255 ) 204 if ( bright > 255 )
205 bright = 255; 205 bright = 255;
206 if ( bright < 0 ) 206 if ( bright < 0 )
207 bright = 0; 207 bright = 0;
208 208
209 QString cmdline; 209 QString cmdline;
210 210
211 switch ( model()) { 211 switch ( model()) {
212 case Model_MyPal_716: 212 case Model_MyPal_716:
213 if ( !bright ) 213 if ( !bright )
214 cmdline = QString::fromLatin1( "echo 4 > /sys/class/backlight/pxafb/power"); 214 cmdline = QString::fromLatin1( "echo 4 > /sys/class/backlight/pxafb/power");
215 else 215 else
216 cmdline = QString::fromLatin1( "echo 0 > /sys/class/backlight/pxafb/power; echo %1 > /sys/class/backlight/pxafb/brightness" ).arg( bright ); 216 cmdline = QString::fromLatin1( "echo 0 > /sys/class/backlight/pxafb/power; echo %1 > /sys/class/backlight/pxafb/brightness" ).arg( bright );
217 // No Global::shellQuote as we gurantee it to be sane 217 // No Global::shellQuote as we gurantee it to be sane