summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-01-29 18:37:14 (UTC)
committer mickeyl <mickeyl>2005-01-29 18:37:14 (UTC)
commit3f25fb92b1dde002ea0c2a3aedffd3912054c380 (patch) (unidiff)
treebb3b92f37236e516952c44fc31c16815505dd8f4
parente6c61408933a3473f25f89d9ba58aceb0b2a2bee (diff)
downloadopie-3f25fb92b1dde002ea0c2a3aedffd3912054c380.zip
opie-3f25fb92b1dde002ea0c2a3aedffd3912054c380.tar.gz
opie-3f25fb92b1dde002ea0c2a3aedffd3912054c380.tar.bz2
use FB_BLANK_UNBLANK and FB_BLANK_POWERDOWN for the 2.6 interface
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.cpp2
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.h6
2 files changed, 6 insertions, 2 deletions
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp
index 2128d46..59f1592 100644
--- a/libopie2/opiecore/device/odevice_zaurus.cpp
+++ b/libopie2/opiecore/device/odevice_zaurus.cpp
@@ -414,97 +414,97 @@ bool Zaurus::setDisplayBrightness( int bright )
414 if ( bright > 255 ) bright = 255; 414 if ( bright > 255 ) bright = 255;
415 if ( bright < 0 ) bright = 0; 415 if ( bright < 0 ) bright = 0;
416 416
417 int numberOfSteps = displayBrightnessResolution(); 417 int numberOfSteps = displayBrightnessResolution();
418 int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255; 418 int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255;
419 419
420 if ( m_embedix ) 420 if ( m_embedix )
421 { 421 {
422 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK ); 422 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK );
423 if ( fd ) 423 if ( fd )
424 { 424 {
425 res = ( ::ioctl( fd, SHARP_FL_IOCTL_STEP_CONTRAST, val ) == 0 ); 425 res = ( ::ioctl( fd, SHARP_FL_IOCTL_STEP_CONTRAST, val ) == 0 );
426 ::close( fd ); 426 ::close( fd );
427 } 427 }
428 } 428 }
429 else 429 else
430 { 430 {
431 int fd = ::open( "/sys/class/backlight/corgi-bl/brightness", O_WRONLY|O_NONBLOCK ); 431 int fd = ::open( "/sys/class/backlight/corgi-bl/brightness", O_WRONLY|O_NONBLOCK );
432 if ( fd ) 432 if ( fd )
433 { 433 {
434 char buf[100]; 434 char buf[100];
435 int len = ::snprintf( &buf[0], sizeof buf, "%d", val ); 435 int len = ::snprintf( &buf[0], sizeof buf, "%d", val );
436 res = ( ::write( fd, &buf[0], len ) == 0 ); 436 res = ( ::write( fd, &buf[0], len ) == 0 );
437 ::close( fd ); 437 ::close( fd );
438 } 438 }
439 } 439 }
440 return res; 440 return res;
441} 441}
442 442
443bool Zaurus::setDisplayStatus( bool on ) 443bool Zaurus::setDisplayStatus( bool on )
444{ 444{
445 bool res = false; 445 bool res = false;
446 if ( m_embedix ) 446 if ( m_embedix )
447 { 447 {
448 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK ); 448 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK );
449 if ( fd ) 449 if ( fd )
450 { 450 {
451 int ioctlnum = on ? SHARP_FL_IOCTL_ON : SHARP_FL_IOCTL_OFF; 451 int ioctlnum = on ? SHARP_FL_IOCTL_ON : SHARP_FL_IOCTL_OFF;
452 res = ( ::ioctl ( fd, ioctlnum, 0 ) == 0 ); 452 res = ( ::ioctl ( fd, ioctlnum, 0 ) == 0 );
453 ::close ( fd ); 453 ::close ( fd );
454 } 454 }
455 } 455 }
456 else 456 else
457 { 457 {
458 int fd = ::open( "/sys/class/backlight/corgi-bl/power", O_WRONLY|O_NONBLOCK ); 458 int fd = ::open( "/sys/class/backlight/corgi-bl/power", O_WRONLY|O_NONBLOCK );
459 if ( fd ) 459 if ( fd )
460 { 460 {
461 char buf[10]; 461 char buf[10];
462 buf[0] = on ? '1' : '0'; 462 buf[0] = on ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN;
463 buf[1] = '\0'; 463 buf[1] = '\0';
464 res = ( ::write( fd, &buf[0], 2 ) == 0 ); 464 res = ( ::write( fd, &buf[0], 2 ) == 0 );
465 ::close( fd ); 465 ::close( fd );
466 } 466 }
467 } 467 }
468 return res; 468 return res;
469} 469}
470 470
471bool Zaurus::suspend() 471bool Zaurus::suspend()
472{ 472{
473 qDebug("ODevice::suspend"); 473 qDebug("ODevice::suspend");
474 if ( !isQWS( ) ) // only qwsserver is allowed to suspend 474 if ( !isQWS( ) ) // only qwsserver is allowed to suspend
475 return false; 475 return false;
476 476
477 if ( d->m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices 477 if ( d->m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices
478 return false; 478 return false;
479 479
480 bool res = false; 480 bool res = false;
481 ODevice::sendSuspendmsg(); 481 ODevice::sendSuspendmsg();
482 482
483 struct timeval tvs, tvn; 483 struct timeval tvs, tvn;
484 ::gettimeofday ( &tvs, 0 ); 484 ::gettimeofday ( &tvs, 0 );
485 485
486 ::sync(); // flush fs caches 486 ::sync(); // flush fs caches
487 res = ( ::system ( "apm --suspend" ) == 0 ); 487 res = ( ::system ( "apm --suspend" ) == 0 );
488 488
489 // This is needed because the apm implementation is asynchronous and we 489 // This is needed because the apm implementation is asynchronous and we
490 // can not be sure when exactly the device is really suspended 490 // can not be sure when exactly the device is really suspended
491 if ( res ) { 491 if ( res ) {
492 do { // Yes, wait 15 seconds. This APM sucks big time. 492 do { // Yes, wait 15 seconds. This APM sucks big time.
493 ::usleep ( 200 * 1000 ); 493 ::usleep ( 200 * 1000 );
494 ::gettimeofday ( &tvn, 0 ); 494 ::gettimeofday ( &tvn, 0 );
495 } while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 15000 ); 495 } while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 15000 );
496 } 496 }
497 497
498 QCopEnvelope ( "QPE/Rotation", "rotateDefault()" ); 498 QCopEnvelope ( "QPE/Rotation", "rotateDefault()" );
499 return res; 499 return res;
500} 500}
501 501
502 502
503Transformation Zaurus::rotation() const 503Transformation Zaurus::rotation() const
504{ 504{
505 Transformation rot; 505 Transformation rot;
506 506
507 switch ( d->m_model ) { 507 switch ( d->m_model ) {
508 case Model_Zaurus_SLC3000: // fallthrough 508 case Model_Zaurus_SLC3000: // fallthrough
509 case Model_Zaurus_SLC7x0: { 509 case Model_Zaurus_SLC7x0: {
510 OHingeStatus hs = readHingeSensor(); 510 OHingeStatus hs = readHingeSensor();
diff --git a/libopie2/opiecore/device/odevice_zaurus.h b/libopie2/opiecore/device/odevice_zaurus.h
index 04e73c4..80593ce 100644
--- a/libopie2/opiecore/device/odevice_zaurus.h
+++ b/libopie2/opiecore/device/odevice_zaurus.h
@@ -30,104 +30,108 @@
30#ifndef ODEVICE_ZAURUS 30#ifndef ODEVICE_ZAURUS
31#define ODEVICE_ZAURUS 31#define ODEVICE_ZAURUS
32 32
33#include <opie2/odevice.h> 33#include <opie2/odevice.h>
34 34
35#ifndef ARRAY_SIZE 35#ifndef ARRAY_SIZE
36#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) 36#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
37#endif 37#endif
38 38
39// _IO and friends are only defined in kernel headers ... 39// _IO and friends are only defined in kernel headers ...
40#define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) 40#define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 ))
41#define OD_IO(type,number) OD_IOC(0,type,number,0) 41#define OD_IO(type,number) OD_IOC(0,type,number,0)
42#define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) 42#define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size))
43#define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) 43#define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size))
44#define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) 44#define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size))
45 45
46// Audio 46// Audio
47#define SHARP_DEV_IOCTL_COMMAND_START 0x5680 47#define SHARP_DEV_IOCTL_COMMAND_START 0x5680
48 48
49#define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 49#define SHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
50#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) 50#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
51 51
52#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ 52#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
53#define SHARP_BUZ_KEYSOUND 2 /* key sound */ 53#define SHARP_BUZ_KEYSOUND 2 /* key sound */
54#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ 54#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
55 55
56#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) 56#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1)
57#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) 57#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2)
58#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) 58#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3)
59#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) 59#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4)
60#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) 60#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5)
61 61
62// LED 62// LED
63#define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 63#define SHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
64#define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1) 64#define SHARP_LED_SETSTATUS (SHARP_LED_IOCTL_START+1)
65#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */ 65#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */
66 66
67#define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */ 67#define LED_MAIL_NO_UNREAD_MAIL 0 /* for SHARP_LED_MAIL_EXISTS */
68#define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */ 68#define LED_MAIL_NEWMAIL_EXISTS 1 /* for SHARP_LED_MAIL_EXISTS */
69#define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */ 69#define LED_MAIL_UNREAD_MAIL_EX 2 /* for SHARP_LED_MAIL_EXISTS */
70 70
71// Rotation and Power Management 71// Rotation and Power Management
72#define SHARP_IOCTL_GET_ROTATION 0x413c 72#define SHARP_IOCTL_GET_ROTATION 0x413c
73 73
74#define APM_IOCGEVTSRC OD_IOR( 'A', 203, int ) 74#define APM_IOCGEVTSRC OD_IOR( 'A', 203, int )
75#define APM_IOCSEVTSRC OD_IORW( 'A', 204, int ) 75#define APM_IOCSEVTSRC OD_IORW( 'A', 204, int )
76#define APM_EVT_POWER_BUTTON (1 << 0) 76#define APM_EVT_POWER_BUTTON (1 << 0)
77 77
78// Brightness 78// Brightness Embedix
79#define SHARP_FL_IOCTL_DEVICE "/dev/sharp_fl" 79#define SHARP_FL_IOCTL_DEVICE "/dev/sharp_fl"
80#define SHARP_FL_IOCTL_ON 1 80#define SHARP_FL_IOCTL_ON 1
81#define SHARP_FL_IOCTL_OFF 2 81#define SHARP_FL_IOCTL_OFF 2
82#define SHARP_FL_IOCTL_STEP_CONTRAST 100 82#define SHARP_FL_IOCTL_STEP_CONTRAST 100
83#define SHARP_FL_IOCTL_GET_STEP_CONTRAST 101 83#define SHARP_FL_IOCTL_GET_STEP_CONTRAST 101
84#define SHARP_FL_IOCTL_GET_STEP 102 84#define SHARP_FL_IOCTL_GET_STEP 102
85 85
86// Vesa Standard
87 #define FB_BLANK_UNBLANK 0
88 #define FB_BLANK_POWERDOWN 4
89
86namespace Opie { 90namespace Opie {
87namespace Core { 91namespace Core {
88namespace Internal { 92namespace Internal {
89 93
90class Zaurus : public ODevice 94class Zaurus : public ODevice
91{ 95{
92 protected: 96 protected:
93 virtual void init(const QString&); 97 virtual void init(const QString&);
94 virtual void initButtons(); 98 virtual void initButtons();
95 99
96 public: 100 public:
97 virtual bool setDisplayBrightness( int b ); 101 virtual bool setDisplayBrightness( int b );
98 virtual bool setDisplayStatus( bool on ); 102 virtual bool setDisplayStatus( bool on );
99 virtual int displayBrightnessResolution() const; 103 virtual int displayBrightnessResolution() const;
100 104
101 virtual void playAlarmSound(); 105 virtual void playAlarmSound();
102 virtual void playKeySound(); 106 virtual void playKeySound();
103 virtual void playTouchSound(); 107 virtual void playTouchSound();
104 108
105 virtual QValueList <OLed> ledList() const; 109 virtual QValueList <OLed> ledList() const;
106 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 110 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
107 virtual OLedState ledState( OLed led ) const; 111 virtual OLedState ledState( OLed led ) const;
108 virtual bool setLedState( OLed led, OLedState st ); 112 virtual bool setLedState( OLed led, OLedState st );
109 113
110 virtual bool hasHingeSensor() const; 114 virtual bool hasHingeSensor() const;
111 virtual OHingeStatus readHingeSensor() const; 115 virtual OHingeStatus readHingeSensor() const;
112 116
113 virtual bool suspend(); 117 virtual bool suspend();
114 virtual Transformation rotation() const; 118 virtual Transformation rotation() const;
115 virtual ODirection direction() const; 119 virtual ODirection direction() const;
116 120
117 protected: 121 protected:
118 virtual void buzzer( int snd ); 122 virtual void buzzer( int snd );
119 123
120 OLedState m_leds[1]; 124 OLedState m_leds[1];
121 bool m_embedix; 125 bool m_embedix;
122}; 126};
123 127
124struct z_button { 128struct z_button {
125 Qt::Key code; 129 Qt::Key code;
126 char *utext; 130 char *utext;
127 char *pix; 131 char *pix;
128 char *fpressedservice; 132 char *fpressedservice;
129 char *fpressedaction; 133 char *fpressedaction;
130 char *fheldservice; 134 char *fheldservice;
131 char *fheldaction; 135 char *fheldaction;
132}; 136};
133} 137}