Diffstat (limited to 'libopie2/opiecore/device/odevice.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiecore/device/odevice.cpp | 62 |
1 files changed, 11 insertions, 51 deletions
diff --git a/libopie2/opiecore/device/odevice.cpp b/libopie2/opiecore/device/odevice.cpp index 3d69614..2c5190c 100644 --- a/libopie2/opiecore/device/odevice.cpp +++ b/libopie2/opiecore/device/odevice.cpp | |||
@@ -268,39 +268,13 @@ ODevice::~ODevice() | |||
268 | * device and return once the device got woken up | 268 | * device and return once the device got woken up |
269 | * | 269 | * |
270 | * @return if the device got suspended | 270 | * @return if the device got suspended |
271 | */ | 271 | */ |
272 | bool ODevice::suspend() | 272 | bool ODevice::suspend() |
273 | { | 273 | { |
274 | if ( !isQWS( ) ) // only qwsserver is allowed to suspend | 274 | return false; // default implementation == unknown device or qvfb |
275 | return false; | ||
276 | |||
277 | if ( d->m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices | ||
278 | return false; | ||
279 | |||
280 | bool res = false; | ||
281 | ODevice::sendSuspendmsg(); | ||
282 | |||
283 | struct timeval tvs, tvn; | ||
284 | ::gettimeofday ( &tvs, 0 ); | ||
285 | |||
286 | ::sync(); // flush fs caches | ||
287 | res = ( ::system ( "apm --suspend" ) == 0 ); | ||
288 | |||
289 | // This is needed because the iPAQ apm implementation is asynchronous and we | ||
290 | // can not be sure when exactly the device is really suspended | ||
291 | // This can be deleted as soon as a stable familiar with a synchronous apm implementation exists. | ||
292 | |||
293 | if ( res ) { | ||
294 | do { // wait at most 1.5 sec: either suspend didn't work or the device resumed | ||
295 | ::usleep ( 200 * 1000 ); | ||
296 | ::gettimeofday ( &tvn, 0 ); | ||
297 | } while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 1500 ); | ||
298 | } | ||
299 | |||
300 | return res; | ||
301 | } | 275 | } |
302 | 276 | ||
303 | //#include <linux/fb.h> better not rely on kernel headers in userspace ... | 277 | //#include <linux/fb.h> better not rely on kernel headers in userspace ... |
304 | 278 | ||
305 | #define FBIOBLANK OD_IO( 'F', 0x11 ) // 0x4611 | 279 | #define FBIOBLANK OD_IO( 'F', 0x11 ) // 0x4611 |
306 | 280 | ||
@@ -312,74 +286,61 @@ bool ODevice::suspend() | |||
312 | 286 | ||
313 | /** | 287 | /** |
314 | * This sets the display on or off | 288 | * This sets the display on or off |
315 | */ | 289 | */ |
316 | bool ODevice::setDisplayStatus ( bool on ) | 290 | bool ODevice::setDisplayStatus ( bool on ) |
317 | { | 291 | { |
318 | qDebug("ODevice::setDisplayStatus(%d)", on); | 292 | qDebug( "ODevice::setDisplayStatus( %d ) - please override me.", on ); |
319 | 293 | return false; // don't do anything for unknown models | |
320 | if ( d->m_model == Model_Unknown ) | ||
321 | return false; | ||
322 | |||
323 | bool res = false; | ||
324 | int fd; | ||
325 | |||
326 | #ifdef QT_QWS_DEVFS | ||
327 | if (( fd = ::open ( "/dev/fb/0", O_RDWR )) >= 0 ) { | ||
328 | #else | ||
329 | if (( fd = ::open ( "/dev/fb0", O_RDWR )) >= 0 ) { | ||
330 | #endif | ||
331 | res = ( ::ioctl ( fd, FBIOBLANK, on ? VESA_NO_BLANKING : VESA_POWERDOWN ) == 0 ); | ||
332 | ::close ( fd ); | ||
333 | } | ||
334 | return res; | ||
335 | } | 294 | } |
336 | 295 | ||
337 | /** | 296 | /** |
338 | * This sets the display brightness | 297 | * This sets the display brightness |
339 | * | 298 | * |
340 | * @param b The brightness to be set on a scale from 0 to 255 | 299 | * @param b The brightness to be set on a scale from 0 to 255 |
341 | * @return success or failure | 300 | * @return success or failure |
342 | */ | 301 | */ |
343 | bool ODevice::setDisplayBrightness ( int b) | 302 | bool ODevice::setDisplayBrightness ( int b) |
344 | { | 303 | { |
345 | Q_UNUSED( b ) | 304 | qDebug( "ODevice::setDisplayBrightness( %d ) - please override me.", b ); |
346 | return false; | 305 | return false; |
347 | } | 306 | } |
348 | 307 | ||
349 | /** | 308 | /** |
350 | * | 309 | * |
351 | * @return Returns the number of steppings on the brightness slider | 310 | * @returns the number of steppings on the brightness slider |
352 | * in the Light-'n-Power settings. Values smaller zero and bigger | 311 | * in the Light-'n-Power settings. Values smaller than zero and bigger |
353 | * than 255 do not make sense. | 312 | * than 255 do not make sense. |
354 | * | 313 | * |
355 | * \sa QSlider::setLineStep | 314 | * \sa QSlider::setLineStep |
356 | * \sa QSlider::setPageStep | 315 | * \sa QSlider::setPageStep |
357 | */ | 316 | */ |
358 | int ODevice::displayBrightnessResolution() const | 317 | int ODevice::displayBrightnessResolution() const |
359 | { | 318 | { |
319 | qDebug( "ODevice::displayBrightnessResolution() - please override me." ); | ||
360 | return 16; | 320 | return 16; |
361 | } | 321 | } |
362 | 322 | ||
363 | /** | 323 | /** |
364 | * This sets the display contrast | 324 | * This sets the display contrast |
365 | * @param p The contrast to be set on a scale from 0 to 255 | 325 | * @param p The contrast to be set on a scale from 0 to 255 |
366 | * @return success or failure | 326 | * @returns success or failure |
367 | */ | 327 | */ |
368 | bool ODevice::setDisplayContrast ( int p) | 328 | bool ODevice::setDisplayContrast ( int p) |
369 | { | 329 | { |
370 | Q_UNUSED( p ) | 330 | qDebug( "ODevice::setDisplayContrast( %d ) - please override me.", p ); |
371 | return false; | 331 | return false; |
372 | } | 332 | } |
373 | 333 | ||
374 | /** | 334 | /** |
375 | * @return return the max value for the brightness settings slider | 335 | * @returns the maximum value for the contrast settings slider |
376 | * or 0 if the device doesn't support setting of a contrast | 336 | * or 0 if the device doesn't support setting of a contrast |
377 | */ | 337 | */ |
378 | int ODevice::displayContrastResolution() const | 338 | int ODevice::displayContrastResolution() const |
379 | { | 339 | { |
340 | qDebug( "ODevice::displayBrightnessResolution() - please override me." ); | ||
380 | return 0; | 341 | return 0; |
381 | } | 342 | } |
382 | 343 | ||
383 | /** | 344 | /** |
384 | * This returns the vendor as string | 345 | * This returns the vendor as string |
385 | * @return Vendor as QString | 346 | * @return Vendor as QString |
@@ -676,13 +637,12 @@ void ODevice::reloadButtonMapping() | |||
676 | hch = cfg. readEntry ( "HeldActionChannel" ). latin1(); | 637 | hch = cfg. readEntry ( "HeldActionChannel" ). latin1(); |
677 | hm = cfg. readEntry ( "HeldActionMessage" ). latin1(); | 638 | hm = cfg. readEntry ( "HeldActionMessage" ). latin1(); |
678 | // hdata = decodeBase64 ( buttonFile. readEntry ( "HeldActionArgs" )); | 639 | // hdata = decodeBase64 ( buttonFile. readEntry ( "HeldActionArgs" )); |
679 | } | 640 | } |
680 | 641 | ||
681 | b. setPressedAction ( OQCopMessage ( pch, pm, pdata )); | 642 | b. setPressedAction ( OQCopMessage ( pch, pm, pdata )); |
682 | |||
683 | b. setHeldAction ( OQCopMessage ( hch, hm, hdata )); | 643 | b. setHeldAction ( OQCopMessage ( hch, hm, hdata )); |
684 | } | 644 | } |
685 | } | 645 | } |
686 | 646 | ||
687 | void ODevice::remapPressedAction ( int button, const OQCopMessage &action ) | 647 | void ODevice::remapPressedAction ( int button, const OQCopMessage &action ) |
688 | { | 648 | { |