-rw-r--r-- | libopie2/opiecore/device/odevice.h | 1 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_ipaq.cpp | 62 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_ipaq.h | 1 |
3 files changed, 50 insertions, 14 deletions
diff --git a/libopie2/opiecore/device/odevice.h b/libopie2/opiecore/device/odevice.h index b8478b9..05bb167 100644 --- a/libopie2/opiecore/device/odevice.h +++ b/libopie2/opiecore/device/odevice.h @@ -69,4 +69,5 @@ enum OModel { Model_iPAQ_H5xxx = ( Model_iPAQ | 0x000020 ), Model_iPAQ_H22xx = ( Model_iPAQ | 0x000040 ), + Model_iPAQ_H191x = ( Model_iPAQ | 0x000080 ), Model_Jornada = ( 6 << 24 ), diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp index 8bc775f..309e1e4 100644 --- a/libopie2/opiecore/device/odevice_ipaq.cpp +++ b/libopie2/opiecore/device/odevice_ipaq.cpp @@ -86,10 +86,10 @@ typedef struct { struct i_button ipaq_buttons [] = { - { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, + { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x, Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), "devicebuttons/ipaq_calendar", "datebook", "nextView()", "today", "raise()" }, - { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, + { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x, Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), "devicebuttons/ipaq_contact", @@ -101,15 +101,15 @@ struct i_button ipaq_buttons [] = { "QPE/TaskBar", "toggleMenu()", "QPE/TaskBar", "toggleStartMenu()" }, - { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, + { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x, Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), "devicebuttons/ipaq_mail", "opiemail", "raise()", "opiemail", "newMail()" }, - { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, + { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x, Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), "devicebuttons/ipaq_home", "QPE/Launcher", "home()", "buttonsettings", "raise()" }, - { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, + { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x, Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), "devicebuttons/ipaq_record", @@ -139,4 +139,6 @@ void iPAQ::init(const QString& model) else if ( d->m_modelstr == "H2200" ) d->m_model = Model_iPAQ_H22xx; + else if ( d->m_modelstr == "H1910" ) + d->m_model = Model_iPAQ_H191x; else d->m_model = Model_Unknown; @@ -149,4 +151,5 @@ void iPAQ::init(const QString& model) case Model_iPAQ_H5xxx: case Model_iPAQ_H22xx: + case Model_iPAQ_H191x: d->m_rotation = Rot0; break; @@ -286,5 +289,6 @@ bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b // add the rotation to it and modolo. No we've the original offset // add the offset to the Key_Left key - if ( d-> m_model == Model_iPAQ_H5xxx ) + if (( d->m_model == Model_iPAQ_H5xxx ) || + ( d->m_model == Model_iPAQ_H191x )) newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; break; @@ -349,11 +353,24 @@ bool iPAQ::setDisplayBrightness ( int bright ) bright = 0; - if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { - FLITE_IN bl; - bl. mode = 1; - bl. pwr = bright ? 1 : 0; - bl. brightness = ( bright * ( displayBrightnessResolution() - 1 ) + 127 ) / 255; - res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 ); - ::close ( fd ); + QString cmdline; + + switch ( model()) { + case Model_iPAQ_H191x: + if ( !bright ) + cmdline = QString::fromLatin1( "echo 4 > /sys/class/backlight/pxafb/power"); + else + cmdline = QString::fromLatin1( "echo 0 > /sys/class/backlight/pxafb/power; echo %1 > /sys/class/backlight/pxafb/brightness" ).arg( bright ); + // No Global::shellQuote as we gurantee it to be sane + res = ( ::system( QFile::encodeName(cmdline) ) == 0 ); + break; + default: + if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { + FLITE_IN bl; + bl. mode = 1; + bl. pwr = bright ? 1 : 0; + bl. brightness = ( bright * ( displayBrightnessResolution() - 1 ) + 127 ) / 255; + res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 ); + ::close ( fd ); + } } return res; @@ -373,5 +390,6 @@ int iPAQ::displayBrightnessResolution() const case Model_iPAQ_H5xxx: return 255; - + case Model_iPAQ_H191x: + return 183; default: return 2; @@ -379,4 +397,20 @@ int iPAQ::displayBrightnessResolution() const } +bool iPAQ::setDisplayStatus ( bool on ) +{ + bool res = false; + + QString cmdline; + + if ( model() == Model_iPAQ_H191x ) { + cmdline = QString::fromLatin1( "echo %1 > /sys/class/lcd/pxafb/power; echo %2 > /sys/class/backlight/pxafb/power").arg( on ? "0" : "4" ).arg( on ? "0" : "4" ); + } else { + res = OAbstractMobileDevice::setDisplayStatus(on); + } + + res = ( ::system( QFile::encodeName(cmdline) ) == 0 ); + + return res; +} bool iPAQ::hasLightSensor() const diff --git a/libopie2/opiecore/device/odevice_ipaq.h b/libopie2/opiecore/device/odevice_ipaq.h index 1889467..3c783bc 100644 --- a/libopie2/opiecore/device/odevice_ipaq.h +++ b/libopie2/opiecore/device/odevice_ipaq.h @@ -48,4 +48,5 @@ class iPAQ : public OAbstractMobileDevice, public QWSServer::KeyboardFilter public: + virtual bool setDisplayStatus ( bool on ); virtual bool setDisplayBrightness( int b ); virtual int displayBrightnessResolution() const; |