author | sandman <sandman> | 2002-09-30 21:09:13 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-09-30 21:09:13 (UTC) |
commit | 3ff016b281a3c059e6ecb728c60fd6847756f291 (patch) (side-by-side diff) | |
tree | 6d7b341ef586552b1a2154af047b41fb567b59d9 | |
parent | 5158385997be6b64cab623674f9e9e1835f94fc6 (diff) | |
download | opie-3ff016b281a3c059e6ecb728c60fd6847756f291.zip opie-3ff016b281a3c059e6ecb728c60fd6847756f291.tar.gz opie-3ff016b281a3c059e6ecb728c60fd6847756f291.tar.bz2 |
- partly rearranged for better bc in the future
- led handling rewritten
- cleanups
- another try at fixing the OZ suspend "glitches"
-rw-r--r-- | libopie/odevice.cpp | 409 | ||||
-rw-r--r-- | libopie/odevice.h | 121 |
2 files changed, 356 insertions, 174 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index 3bc1e0c..c84312e 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp @@ -38,2 +38,5 @@ +#include <qwindowsystem_qws.h> + + // _IO and friends are only defined in kernel headers ... @@ -47,2 +50,3 @@ +using namespace Opie; @@ -50,2 +54,4 @@ class ODeviceData { public: + bool m_qwsserver; + QString m_vendorstr; @@ -60,7 +66,6 @@ public: QString m_sysverstr; - - OLedState m_leds [4]; // just for convenience ... }; -class ODeviceIPAQ : public ODevice { + +class iPAQ : public QObject, public ODevice, public QWSServer::KeyboardFilter { protected: @@ -69,3 +74,3 @@ protected: public: - virtual bool setPowerButtonHandler ( PowerButtonHandler h ); + virtual bool setSoftSuspend ( bool soft ); @@ -75,9 +80,20 @@ public: virtual void alarmSound ( ); - - virtual uint hasLeds ( ) const; - virtual OLedState led ( uint which ) const; - virtual bool setLed ( uint which, OLedState st ); + + virtual QValueList <OLed> ledList ( ) const; + virtual QValueList <OLedState> ledStateList ( OLed led ) const; + virtual OLedState ledState ( OLed led ) const; + virtual bool setLedState ( OLed led, OLedState st ); + + //virtual QValueList <int> keyList ( ) const; + +protected: + virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); + virtual void timerEvent ( QTimerEvent *te ); + + int m_power_timer; + + OLedState m_leds [2]; }; -class ODeviceZaurus : public ODevice { +class Zaurus : public ODevice { protected: @@ -86,3 +102,3 @@ protected: public: - virtual bool setPowerButtonHandler ( PowerButtonHandler h ); + virtual bool setSoftSuspend ( bool soft ); @@ -95,5 +111,8 @@ public: - virtual uint hasLeds ( ) const; - virtual OLedState led ( uint which ) const; - virtual bool setLed ( uint which, OLedState st ); + virtual QValueList <OLed> ledList ( ) const; + virtual QValueList <OLedState> ledStateList ( OLed led ) const; + virtual OLedState ledState ( OLed led ) const; + virtual bool setLedState ( OLed led, OLedState st ); + + //virtual QValueList <int> keyList ( ) const; @@ -101,2 +120,4 @@ protected: virtual void buzzer ( int snd ); + + OLedState m_leds [1]; }; @@ -106,2 +127,5 @@ protected: + + + ODevice *ODevice::inst ( ) @@ -112,5 +136,5 @@ ODevice *ODevice::inst ( ) if ( QFile::exists ( "/proc/hal/model" )) - dev = new ODeviceIPAQ ( ); + dev = new iPAQ ( ); else if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) - dev = new ODeviceZaurus ( ); + dev = new Zaurus ( ); else @@ -135,8 +159,10 @@ ODevice::ODevice ( ) + d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; + d-> m_modelstr = "Unknown"; - d-> m_model = OMODEL_Unknown; + d-> m_model = Model_Unknown; d-> m_vendorstr = "Unkown"; - d-> m_vendor = OVENDOR_Unknown; + d-> m_vendor = Vendor_Unknown; d-> m_systemstr = "Unkown"; - d-> m_system = OSYSTEM_Unknown; + d-> m_system = System_Unknown; d-> m_sysverstr = "0.0"; @@ -153,3 +179,3 @@ ODevice::~ODevice ( ) -bool ODevice::setPowerButtonHandler ( ODevice::PowerButtonHandler ) +bool ODevice::setSoftSuspend ( bool /*soft*/ ) { @@ -165,3 +191,6 @@ bool ODevice::suspend ( ) { - if ( d-> m_model == OMODEL_Unknown ) // better don't suspend in qvfb / on unkown devices + if ( !d-> m_qwsserver ) // only qwsserver is allowed to suspend + return false; + + if ( d-> m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices return false; @@ -175,3 +204,3 @@ bool ODevice::suspend ( ) - ::signal ( SIGTSTP, SIG_IGN ); // we don't want to be stopped +// ::signal ( SIGTSTP, SIG_IGN ); // we don't want to be stopped ::gettimeofday ( &tvs, 0 ); @@ -181,5 +210,6 @@ bool ODevice::suspend ( ) res = ( ::ioctl ( fd, APM_IOC_SUSPEND, 0 ) == 0 ); // tell the kernel to "start" suspending + ::close ( fd ); if ( res ) { - ::kill ( -::getpid ( ), SIGTSTP ); // stop everthing in our process group +// ::kill ( -::getpid ( ), SIGTSTP ); // stop everthing in our process group @@ -190,7 +220,6 @@ bool ODevice::suspend ( ) - ::kill ( -::getpid ( ), SIGCONT ); // continue everything in our process group +// ::kill ( -::getpid ( ), SIGCONT ); // continue everything in our process group } - ::close ( fd ); - ::signal ( SIGTSTP, SIG_DFL ); +// ::signal ( SIGTSTP, SIG_DFL ); } @@ -213,3 +242,3 @@ bool ODevice::setDisplayStatus ( bool on ) { - if ( d-> m_model == OMODEL_Unknown ) + if ( d-> m_model == Model_Unknown ) return false; @@ -236,3 +265,3 @@ int ODevice::displayBrightnessResolution ( ) const -QString ODevice::vendorString ( ) +QString ODevice::vendorString ( ) const { @@ -241,3 +270,3 @@ QString ODevice::vendorString ( ) -OVendor ODevice::vendor ( ) +OVendor ODevice::vendor ( ) const { @@ -246,3 +275,3 @@ OVendor ODevice::vendor ( ) -QString ODevice::modelString ( ) +QString ODevice::modelString ( ) const { @@ -251,3 +280,3 @@ QString ODevice::modelString ( ) -OModel ODevice::model ( ) +OModel ODevice::model ( ) const { @@ -256,3 +285,3 @@ OModel ODevice::model ( ) -QString ODevice::systemString ( ) +QString ODevice::systemString ( ) const { @@ -261,3 +290,3 @@ QString ODevice::systemString ( ) -OSystem ODevice::system ( ) +OSystem ODevice::system ( ) const { @@ -266,3 +295,3 @@ OSystem ODevice::system ( ) -QString ODevice::systemVersionString ( ) +QString ODevice::systemVersionString ( ) const { @@ -308,13 +337,19 @@ void ODevice::touchSound ( ) -uint ODevice::hasLeds ( ) const + +QValueList <OLed> ODevice::ledList ( ) const +{ + return QValueList <OLed> ( ); +} + +QValueList <OLedState> ODevice::ledStateList ( OLed /*which*/ ) const { - return 0; + return QValueList <OLedState> ( ); } -OLedState ODevice::led ( uint /*which*/ ) const +OLedState ODevice::ledState ( OLed /*which*/ ) const { - return OLED_Off; + return Led_Off; } -bool ODevice::setLed ( uint /*which*/, OLedState /*st*/ ) +bool ODevice::setLedState ( OLed /*which*/, OLedState /*st*/ ) { @@ -325,2 +360,8 @@ bool ODevice::setLed ( uint /*which*/, OLedState /*st*/ ) +//QValueList <int> ODevice::keyList ( ) const +//{ +// return QValueList <int> ( ); +//} + + @@ -332,6 +373,6 @@ bool ODevice::setLed ( uint /*which*/, OLedState /*st*/ ) -void ODeviceIPAQ::init ( ) +void iPAQ::init ( ) { d-> m_vendorstr = "HP"; - d-> m_vendor = OVENDOR_HP; + d-> m_vendor = Vendor_HP; @@ -345,11 +386,11 @@ void ODeviceIPAQ::init ( ) if ( d-> m_modelstr == "H3100" ) - d-> m_model = OMODEL_iPAQ_H31xx; + d-> m_model = Model_iPAQ_H31xx; else if ( d-> m_modelstr == "H3600" ) - d-> m_model = OMODEL_iPAQ_H36xx; + d-> m_model = Model_iPAQ_H36xx; else if ( d-> m_modelstr == "H3700" ) - d-> m_model = OMODEL_iPAQ_H37xx; + d-> m_model = Model_iPAQ_H37xx; else if ( d-> m_modelstr == "H3800" ) - d-> m_model = OMODEL_iPAQ_H38xx; + d-> m_model = Model_iPAQ_H38xx; else - d-> m_model = OMODEL_Unknown; + d-> m_model = Model_Unknown; @@ -361,3 +402,3 @@ void ODeviceIPAQ::init ( ) d-> m_systemstr = "Familiar"; - d-> m_system = OSYSTEM_Familiar; + d-> m_system = System_Familiar; @@ -369,3 +410,8 @@ void ODeviceIPAQ::init ( ) - d-> m_leds [0] = OLED_Off; + m_leds [0] = m_leds [1] = Led_Off; + + m_power_timer = 0; + + if ( d-> m_qwsserver ) + QWSServer::setKeyboardFilter ( this ); } @@ -391,3 +437,139 @@ typedef struct { -void ODeviceIPAQ::alarmSound ( ) + +QValueList <OLed> iPAQ::ledList ( ) const +{ + QValueList <OLed> vl; + vl << Led_Power; + + if ( d-> m_model == Model_iPAQ_H38xx ) + vl << Led_BlueTooth; + return vl; +} + +QValueList <OLedState> iPAQ::ledStateList ( OLed l ) const +{ + QValueList <OLedState> vl; + + if ( l == Led_Power ) + vl << Led_Off << Led_On << Led_BlinkSlow << Led_BlinkFast; + else if ( l == Led_BlueTooth && d-> m_model == Model_iPAQ_H38xx ) + vl << Led_Off; // << Led_On << ??? + + return vl; +} + +OLedState iPAQ::ledState ( OLed l ) const +{ + switch ( l ) { + case Led_Power: + return m_leds [0]; + case Led_BlueTooth: + return m_leds [1]; + default: + return Led_Off; + } +} + +bool iPAQ::setLedState ( OLed l, OLedState st ) +{ + static int fd = ::open ( "/dev/touchscreen/0", O_RDWR | O_NONBLOCK ); + + if ( l == Led_Power ) { + if ( fd >= 0 ) { + LED_IN leds; + ::memset ( &leds, 0, sizeof( leds )); + leds. TotalTime = 0; + leds. OnTime = 0; + leds. OffTime = 1; + leds. OffOnBlink = 2; + + switch ( st ) { + case Led_Off : leds. OffOnBlink = 0; break; + case Led_On : leds. OffOnBlink = 1; break; + case Led_BlinkSlow: leds. OnTime = 10; leds. OffTime = 10; break; + case Led_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break; + } + + if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) { + m_leds [0] = st; + return true; + } + } + } + return false; +} + + +//QValueList <int> iPAQ::keyList ( ) const +//{ +// QValueList <int> vl; +// vl << HardKey_Datebook << HardKey_Contacts << ( model ( ) == Model_iPAQ_H38xx ? HardKey_Mail : HardKey_Menu ) << HardKey_Home << HardKey_Record << HardKey_Suspend << HardKey_Backlight; +// return vl; +//} + +bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) +{ + int newkeycode = keycode; + + + // simple susbstitutions + switch ( d-> m_model ) { + case Model_iPAQ_H38xx: + // H38xx has no "Q" key anymore - this is now the Mail key + if ( keycode == HardKey_Menu ) + newkeycode = HardKey_Mail; + //nobreak + + case Model_iPAQ_H31xx: + // Rotate cursor keys 180° + switch ( keycode ) { + case Key_Left : newkeycode = Key_Right; break; + case Key_Right: newkeycode = Key_Left; break; + case Key_Up : newkeycode = Key_Down; break; + case Key_Down : newkeycode = Key_Up; break; + } + break; + + case Model_iPAQ_H36xx: + case Model_iPAQ_H37xx: + // map Power Button short/long press to F34/F35 + if ( keycode == Key_SysReq ) { + if ( isPress ) { + if ( m_power_timer ) + killTimer ( m_power_timer ); + m_power_timer = startTimer ( 500 ); + } + else if ( m_power_timer ) { + killTimer ( m_power_timer ); + m_power_timer = 0; + QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, true, false ); + QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false ); + } + newkeycode = Key_unknown; + } + break; + + default: + break; + } + + if ( newkeycode != keycode ) { + if ( newkeycode != Key_unknown ) + QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); + return true; + } + else + return false; +} + +void iPAQ::timerEvent ( QTimerEvent * ) +{ + killTimer ( m_power_timer ); + m_power_timer = 0; + QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false ); + QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false ); +} + + +void iPAQ::alarmSound ( ) { @@ -434,45 +616,4 @@ void ODeviceIPAQ::alarmSound ( ) -uint ODeviceIPAQ::hasLeds ( ) const -{ - return 1; -} - -OLedState ODeviceIPAQ::led ( uint which ) const -{ - if ( which == 0 ) - return d-> m_leds [0]; - else - return OLED_Off; -} -bool ODeviceIPAQ::setLed ( uint which, OLedState st ) -{ - static int fd = ::open ( "/dev/touchscreen/0", O_RDWR|O_NONBLOCK ); - - if ( which == 0 ) { - if ( fd >= 0 ) { - LED_IN leds; - ::memset ( &leds, 0, sizeof( leds )); - leds. TotalTime = 0; - leds. OnTime = 0; - leds. OffTime = 1; - leds. OffOnBlink = 2; - - switch ( st ) { - case OLED_Off : leds. OffOnBlink = 0; break; - case OLED_On : leds. OffOnBlink = 1; break; - case OLED_BlinkSlow: leds. OnTime = 10; leds. OffTime = 10; break; - case OLED_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break; - } - - if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) { - d-> m_leds [0] = st; - return true; - } - } - } - return false; -} - -bool ODeviceIPAQ::setPowerButtonHandler ( ODevice::PowerButtonHandler p ) +bool iPAQ::setSoftSuspend ( bool soft ) { @@ -482,3 +623,3 @@ bool ODeviceIPAQ::setPowerButtonHandler ( ODevice::PowerButtonHandler p ) if (( fd = ::open ( "/proc/sys/ts/suspend_button_mode", O_WRONLY )) >= 0 ) { - if ( ::write ( fd, p == KERNEL ? "0" : "1", 1 ) == 1 ) + if ( ::write ( fd, soft ? "1" : "0", 1 ) == 1 ) res = true; @@ -496,3 +637,3 @@ bool ODeviceIPAQ::setPowerButtonHandler ( ODevice::PowerButtonHandler p ) -bool ODeviceIPAQ::setDisplayBrightness ( int bright ) +bool iPAQ::setDisplayBrightness ( int bright ) { @@ -523,3 +664,3 @@ bool ODeviceIPAQ::setDisplayBrightness ( int bright ) -int ODeviceIPAQ::displayBrightnessResolution ( ) const +int iPAQ::displayBrightnessResolution ( ) const { @@ -537,8 +678,8 @@ int ODeviceIPAQ::displayBrightnessResolution ( ) const -void ODeviceZaurus::init ( ) +void Zaurus::init ( ) { d-> m_modelstr = "Zaurus SL5000"; - d-> m_model = OMODEL_Zaurus_SL5000; + d-> m_model = Model_Zaurus_SL5000; d-> m_vendorstr = "Sharp"; - d-> m_vendor = OVENDOR_Sharp; + d-> m_vendor = Vendor_Sharp; @@ -548,3 +689,3 @@ void ODeviceZaurus::init ( ) d-> m_systemstr = "OpenZaurus"; - d-> m_system = OSYSTEM_OpenZaurus; + d-> m_system = System_OpenZaurus; @@ -561,3 +702,3 @@ void ODeviceZaurus::init ( ) d-> m_systemstr = "Zaurus"; - d-> m_system = OSYSTEM_Zaurus; + d-> m_system = System_Zaurus; } @@ -565,3 +706,3 @@ void ODeviceZaurus::init ( ) - d-> m_leds [0] = OLED_Off; + m_leds [0] = Led_Off; } @@ -635,3 +776,3 @@ typedef struct sharp_led_status { -void ODeviceZaurus::buzzer ( int sound ) +void Zaurus::buzzer ( int sound ) { @@ -644,3 +785,3 @@ void ODeviceZaurus::buzzer ( int sound ) -void ODeviceZaurus::alarmSound ( ) +void Zaurus::alarmSound ( ) { @@ -649,3 +790,3 @@ void ODeviceZaurus::alarmSound ( ) -void ODeviceZaurus::touchSound ( ) +void Zaurus::touchSound ( ) { @@ -654,3 +795,3 @@ void ODeviceZaurus::touchSound ( ) -void ODeviceZaurus::keySound ( ) +void Zaurus::keySound ( ) { @@ -660,16 +801,27 @@ void ODeviceZaurus::keySound ( ) -uint ODeviceZaurus::hasLeds ( ) const +QValueList <OLed> Zaurus::ledList ( ) const +{ + QValueList <OLed> vl; + vl << Led_Mail; + return vl; +} + +QValueList <OLedState> Zaurus::ledStateList ( OLed l ) const { - return 1; + QValueList <OLedState> vl; + + if ( l == Led_Mail ) + vl << Led_Off << Led_On << Led_BlinkSlow; + return vl; } -OLedState ODeviceZaurus::led ( uint which ) const +OLedState Zaurus::ledState ( OLed which ) const { - if ( which == 0 ) - return d-> m_leds [0]; + if ( which == Led_Mail ) + return m_leds [0]; else - return OLED_Off; + return Led_Off; } -bool ODeviceZaurus::setLed ( uint which, OLedState st ) +bool Zaurus::setLedState ( OLed which, OLedState st ) { @@ -677,3 +829,3 @@ bool ODeviceZaurus::setLed ( uint which, OLedState st ) - if ( which == 0 ) { + if ( which == Led_Mail ) { if ( fd >= 0 ) { @@ -682,12 +834,13 @@ bool ODeviceZaurus::setLed ( uint which, OLedState st ) leds. which = SHARP_LED_MAIL_EXISTS; + bool ok = true; switch ( st ) { - case OLED_Off : leds. status = LED_MAIL_NO_UNREAD_MAIL; break; - case OLED_On : leds. status = LED_MAIL_NEWMAIL_EXISTS; break; - case OLED_BlinkSlow: - case OLED_BlinkFast: leds. status = LED_MAIL_UNREAD_MAIL_EX; break; + case Led_Off : leds. status = LED_MAIL_NO_UNREAD_MAIL; break; + case Led_On : leds. status = LED_MAIL_NEWMAIL_EXISTS; break; + case Led_BlinkSlow: leds. status = LED_MAIL_UNREAD_MAIL_EX; break; + default : ok = false; } - if ( ::ioctl ( fd, SHARP_LED_SETSTATUS, &leds ) >= 0 ) { - d-> m_leds [0] = st; + if ( ok && ( ::ioctl ( fd, SHARP_LED_SETSTATUS, &leds ) >= 0 )) { + m_leds [0] = st; return true; @@ -699,3 +852,3 @@ bool ODeviceZaurus::setLed ( uint which, OLedState st ) -bool ODeviceZaurus::setPowerButtonHandler ( ODevice::PowerButtonHandler p ) +bool Zaurus::setSoftSuspend ( bool soft ) { @@ -710,8 +863,8 @@ bool ODeviceZaurus::setPowerButtonHandler ( ODevice::PowerButtonHandler p ) if ( sources >= 0 ) { - if ( p == KERNEL ) - sources |= APM_EVT_POWER_BUTTON; - else + if ( soft ) sources &= ~APM_EVT_POWER_BUTTON; + else + sources |= APM_EVT_POWER_BUTTON; - if ( ::ioctl ( fd, APM_IOCSEVTSRC, sources & ~APM_EVT_POWER_BUTTON ) >= 0 ) // set new event sources + if ( ::ioctl ( fd, APM_IOCSEVTSRC, sources ) >= 0 ) // set new event sources res = true; @@ -732,3 +885,3 @@ bool ODeviceZaurus::setPowerButtonHandler ( ODevice::PowerButtonHandler p ) -bool ODeviceZaurus::setDisplayBrightness ( int bright ) +bool Zaurus::setDisplayBrightness ( int bright ) { @@ -753,3 +906,3 @@ bool ODeviceZaurus::setDisplayBrightness ( int bright ) -int ODeviceZaurus::displayBrightnessResolution ( ) const +int Zaurus::displayBrightnessResolution ( ) const { @@ -757 +910,9 @@ int ODeviceZaurus::displayBrightnessResolution ( ) const } + +//QValueList <int> Zaurus::keyList ( ) const +//{ +// QValueList <int> vl; +// vl << HardKey_Datebook << HardKey_Contacts << HardKey_Mail << HardKey_Menu << HardKey_Home << HardKey_Suspend << HardKey_Backlight; +// return vl; +//} + diff --git a/libopie/odevice.h b/libopie/odevice.h index 2f676ff..38f3787 100644 --- a/libopie/odevice.h +++ b/libopie/odevice.h @@ -23,3 +23,3 @@ #include <qstring.h> - +#include <qnamespace.h> @@ -27,11 +27,13 @@ class ODeviceData; +namespace Opie { + enum OModel { - OMODEL_Unknown, + Model_Unknown, - OMODEL_iPAQ_H31xx, - OMODEL_iPAQ_H36xx, - OMODEL_iPAQ_H37xx, - OMODEL_iPAQ_H38xx, + Model_iPAQ_H31xx, + Model_iPAQ_H36xx, + Model_iPAQ_H37xx, + Model_iPAQ_H38xx, - OMODEL_Zaurus_SL5000 + Model_Zaurus_SL5000 }; @@ -39,6 +41,6 @@ enum OModel { enum OVendor { - OVENDOR_Unknown, + Vendor_Unknown, - OVENDOR_HP, - OVENDOR_Sharp + Vendor_HP, + Vendor_Sharp }; @@ -46,7 +48,7 @@ enum OVendor { enum OSystem { - OSYSTEM_Unknown, + System_Unknown, - OSYSTEM_Familiar, - OSYSTEM_Zaurus, - OSYSTEM_OpenZaurus + System_Familiar, + System_Zaurus, + System_OpenZaurus }; @@ -54,6 +56,23 @@ enum OSystem { enum OLedState { - OLED_Off, - OLED_On, - OLED_BlinkSlow, - OLED_BlinkFast + Led_Off, + Led_On, + Led_BlinkSlow, + Led_BlinkFast +}; + +enum OLed { + Led_Mail, + Led_Power, + Led_BlueTooth +}; + +enum OHardKey { + HardKey_Datebook = Qt::Key_F9, + HardKey_Contacts = Qt::Key_F10, + HardKey_Menu = Qt::Key_F11, + HardKey_Home = Qt::Key_F12, + HardKey_Mail = Qt::Key_F14, + HardKey_Record = Qt::Key_F24, + HardKey_Suspend = Qt::Key_F34, + HardKey_Backlight = Qt::Key_F35, }; @@ -63,31 +82,40 @@ class ODevice { +private: + ODevice ( const ODevice & ); + +protected: + ODevice ( ); + virtual void init ( ); + + ODeviceData *d; + public: + virtual ~ODevice ( ); + static ODevice *inst ( ); -// system - enum PowerButtonHandler { - KERNEL, - OPIE - }; - virtual bool setPowerButtonHandler ( PowerButtonHandler h ); - virtual bool suspend ( ); - virtual bool setDisplayStatus ( bool on ); - virtual bool setDisplayBrightness ( int brightness ); - virtual int displayBrightnessResolution ( ) const; - // information - QString modelString ( ); - OModel model ( ); + QString modelString ( ) const; + OModel model ( ) const; - QString vendorString ( ); - OVendor vendor ( ); + QString vendorString ( ) const; + OVendor vendor ( ) const; + + QString systemString ( ) const; + OSystem system ( ) const; + + QString systemVersionString ( ) const; - QString systemString ( ); - OSystem system ( ); +// system - QString systemVersionString ( ); + virtual bool setSoftSuspend ( bool on ); + virtual bool suspend ( ); + virtual bool setDisplayStatus ( bool on ); + virtual bool setDisplayBrightness ( int brightness ); + virtual int displayBrightnessResolution ( ) const; + // input / output @@ -98,20 +126,13 @@ public: - virtual uint hasLeds ( ) const; - virtual OLedState led ( uint which ) const; - virtual bool setLed ( uint which, OLedState st ); - - virtual ~ODevice ( ); + virtual QValueList <OLed> ledList ( ) const; + virtual QValueList <OLedState> ledStateList ( OLed led ) const; + virtual OLedState ledState ( OLed led ) const; + virtual bool setLedState ( OLed led, OLedState st ); -protected: - ODevice ( ); - virtual void init ( ); - - ODeviceData *d; - -private: - ODevice ( const ODevice & ); + //virtual QValueList <int> keyList ( ) const; }; -#endif +} +#endif |