diff options
Diffstat (limited to 'packages/libopie/libopie2')
-rw-r--r-- | packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch | 144 | ||||
-rw-r--r-- | packages/libopie/libopie2/keyboardless-buttonmap.patch | 176 |
2 files changed, 320 insertions, 0 deletions
diff --git a/packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch b/packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch new file mode 100644 index 0000000000..4095502c32 --- /dev/null +++ b/packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch @@ -0,0 +1,144 @@ +Index: libopie2/opiecore/device/odevice_ipaq.cpp +=================================================================== +RCS file: /cvs/opie/libopie2/opiecore/device/odevice_ipaq.cpp,v +retrieving revision 1.26 +diff -u -r1.26 odevice_ipaq.cpp +--- libopie2/opiecore/device/odevice_ipaq.cpp 2 Aug 2006 19:12:39 -0000 1.26 ++++ libopie2/opiecore/device/odevice_ipaq.cpp 11 Oct 2006 00:46:38 -0000 +@@ -408,45 +408,19 @@ + if ( bright < 0 ) + bright = 0; + +- QString cmdline; +- +- switch ( model()) { +- case Model_iPAQ_H191x: +- case Model_iPAQ_H4xxx: +- { +- QDir sysClass( "/sys/class/backlight/pxafb/" ); +- sysClass.setFilter(QDir::Dirs); +- int fd; +- if ( sysClass.exists() ) { +- QString sysClassPath = sysClass.absFilePath( "/sys/class/backlight/pxafb/power" ); +- fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK ); +- if ( fd ) { +- char buf[10]; +- buf[0] = bright ? 0 : 4; +- buf[1] = '\0'; +- res = ( ::write( fd, &buf[0], 2 ) == 0 ); +- ::close( fd ); +- } +- sysClassPath = sysClass.absFilePath( "/sys/class/backlight/pxafb/brightness" ); +- fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK ); +- if ( fd ) { +- char buf[100]; +- int len = ::snprintf( &buf[0], sizeof buf, "%d", bright ); +- res = ( ::write( fd, &buf[0], len ) == 0 ); +- ::close( fd ); +- } +- } +- } +- break; +- +- case Model_iPAQ_HX4700: +- cmdline = QString::fromLatin1( "echo %1 > /sys/class/backlight/w100fb/brightness" ).arg( bright ); +- // No Global::shellQuote as we gurantee it to be sane +- res = ( ::system( QFile::encodeName(cmdline) ) == 0 ); +- break; +- +- +- default: ++ QDir sysClass( "/sys/class/backlight/" ); ++ sysClass.setFilter(QDir::Dirs); ++ if ( sysClass.exists() && sysClass.count() > 2 ) { ++ QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/brightness" ); ++ int fd = ::open( sysClassPath, O_WRONLY|O_NONBLOCK ); ++ if ( fd ) { ++ char buf[100]; ++ int val = bright * displayBrightnessResolution() / 255; ++ int len = ::snprintf( &buf[0], sizeof buf, "%d", val ); ++ res = ( ::write( fd, &buf[0], len ) == 0 ); ++ ::close( fd ); ++ } ++ } else { + if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { + FLITE_IN bl; + bl. mode = 1; +@@ -456,11 +430,28 @@ + ::close ( fd ); + } + } ++ + return res; + } + + int iPAQ::displayBrightnessResolution() const + { ++ int res = 16; ++ ++ QDir sysClass( "/sys/class/backlight/" ); ++ sysClass.setFilter(QDir::Dirs); ++ if ( sysClass.exists() && sysClass.count() > 2 ) { ++ QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/max_brightness" ); ++ int fd = ::open( sysClassPath, O_RDONLY|O_NONBLOCK ); ++ if ( fd ) { ++ char buf[100]; ++ if ( ::read( fd, &buf[0], sizeof buf ) ) ++ ::sscanf( &buf[0], "%d", &res ); ++ ::close( fd ); ++ } ++ return res; ++ } ++ + switch ( model()) { + case Model_iPAQ_H31xx: + case Model_iPAQ_H36xx: +@@ -489,27 +480,22 @@ + + QString cmdline; + +- if ( model() == Model_iPAQ_H191x ) { +- QDir sysClass( "/sys/class/lcd/pxafb/" ); +- sysClass.setFilter(QDir::Dirs); +- if ( sysClass.exists() ) { +- QString sysClassPath = sysClass.absFilePath( "/sys/class/lcd/pxafb/power" ); +- int fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK ); +- if ( fd ) { +- char buf[10]; +- buf[0] = on ? 0 : 4; +- buf[1] = '\0'; +- res = ( ::write( fd, &buf[0], 2 ) == 0 ); +- ::close( fd ); +- } +- } +- return res; ++ QDir sysClass( "/sys/class/lcd/" ); ++ sysClass.setFilter(QDir::Dirs); ++ if ( sysClass.exists() && sysClass.count() > 2 ) { ++ QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/power" ); ++ int fd = ::open( sysClassPath, O_WRONLY|O_NONBLOCK ); ++ if ( fd ) { ++ char buf[10]; ++ buf[0] = on ? 0 : 4; ++ buf[1] = '\0'; ++ res = ( ::write( fd, &buf[0], 2 ) == 0 ); ++ ::close( fd ); ++ } + } else { +- return OAbstractMobileDevice::setDisplayStatus(on); ++ res = OAbstractMobileDevice::setDisplayStatus(on); + } + +- res = ( ::system( QFile::encodeName(cmdline) ) == 0 ); +- + return res; + } + +@@ -517,6 +503,7 @@ + { + switch (model()) { + case Model_iPAQ_H191x: ++ case Model_iPAQ_H22xx: + case Model_iPAQ_H4xxx: + return false; + default: diff --git a/packages/libopie/libopie2/keyboardless-buttonmap.patch b/packages/libopie/libopie2/keyboardless-buttonmap.patch new file mode 100644 index 0000000000..288f28a68a --- /dev/null +++ b/packages/libopie/libopie2/keyboardless-buttonmap.patch @@ -0,0 +1,176 @@ +Index: libopie2/opiecore/device/odevice_ipaq.cpp +=================================================================== +RCS file: /cvs/opie/libopie2/opiecore/device/odevice_ipaq.cpp,v +retrieving revision 1.26 +diff -u -r1.26 odevice_ipaq.cpp +--- libopie2/opiecore/device/odevice_ipaq.cpp 2 Aug 2006 19:12:39 -0000 1.26 ++++ libopie2/opiecore/device/odevice_ipaq.cpp 10 Oct 2006 15:07:21 -0000 +@@ -84,76 +84,68 @@ + #define LED_ON OD_IOW( 'f', 5, LED_IN ) + #define FLITE_ON OD_IOW( 'f', 7, FLITE_IN ) + ++#define Model_Keyboardless_2_6 (Model_iPAQ_H191x | Model_iPAQ_H22xx | Model_iPAQ_HX4700 | Model_iPAQ_H4xxx) ++ + 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_H191x | Model_iPAQ_H22xx | Model_iPAQ_HX4700 | Model_iPAQ_H4xxx, ++ ++ // Common button map for all keyboardless devices with 2.6 kernel ++ { Model_Keyboardless_2_6, + 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_H191x | Model_iPAQ_H22xx | Model_iPAQ_HX4700 | Model_iPAQ_H4xxx, ++ { Model_Keyboardless_2_6, + Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), + "devicebuttons/ipaq_contact", + "addressbook", "raise()", + "addressbook", "beamBusinessCard()" }, +- { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, +- Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), +- "devicebuttons/ipaq_menu", +- "QPE/TaskBar", "toggleMenu()", +- "QPE/TaskBar", "toggleStartMenu()" }, +- { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, +- Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), ++ { Model_Keyboardless_2_6, ++ Qt::Key_F11, 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_H191x | Model_iPAQ_H4xxx, ++ { Model_Keyboardless_2_6, + 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_Keyboardless_2_6, + Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), + "devicebuttons/ipaq_record", + "QPE/VMemo", "toggleRecord()", + "sound", "raise()" }, + +- { Model_iPAQ_H191x | Model_iPAQ_H4xxx, +- Qt::Key_F8, QT_TRANSLATE_NOOP("Button", "Mail Button"), +- "devicebuttons/ipaq_mail", +- "opiemail", "raise()", +- "opiemail", "newMail()" }, +- { Model_iPAQ_H191x | Model_iPAQ_H4xxx, +- Qt::Key_F7, QT_TRANSLATE_NOOP("Button", "Record Button"), +- "devicebuttons/ipaq_record", +- "QPE/VMemo", "toggleRecord()", +- "sound", "raise()" }, +- +- //h2200 has different button mapping +- { Model_iPAQ_H22xx, +- Qt::Key_NumLock, QT_TRANSLATE_NOOP("Button", "Mail Button"), +- "devicebuttons/ipaq_mail", +- "opiemail", "raise()", +- "opiemail", "newMail()" }, +- { Model_iPAQ_H22xx, +- Qt::Key_ScrollLock, QT_TRANSLATE_NOOP("Button", "Menu Button"), ++ // Devices with 2.4 kernel ++ { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, ++ 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, ++ Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), ++ "devicebuttons/ipaq_contact", ++ "addressbook", "raise()", ++ "addressbook", "beamBusinessCard()" }, ++ { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, ++ Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), + "devicebuttons/ipaq_menu", + "QPE/TaskBar", "toggleMenu()", + "QPE/TaskBar", "toggleStartMenu()" }, +- // and hx4700 has different button mapping still +- { Model_iPAQ_HX4700, +- Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Mail Button"), ++ { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, ++ Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), + "devicebuttons/ipaq_mail", + "opiemail", "raise()", + "opiemail", "newMail()" }, +- { Model_iPAQ_HX4700, +- Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Record Button"), +- "devicebuttons/ipaq_record", +- "QPE/VMemo", "toggleRecord()", +- "sound", "raise()" }, +- { Model_iPAQ_HX4700, +- Qt::Key_Home, QT_TRANSLATE_NOOP("Button", "Home Button"), ++ { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, ++ 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, ++ Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), ++ "devicebuttons/ipaq_record", ++ "QPE/VMemo", "toggleRecord()", ++ "sound", "raise()" }, + + }; + +@@ -346,11 +338,8 @@ + break; + } + +- // map Power Button short/long press to F6 for h191x +- case Key_F6: +- if ( d->m_model != Model_iPAQ_H191x && d->m_model != Model_iPAQ_H4xxx ) +- break; + // map Power Button short/long press to F34/F35 ++ case HardKey_Suspend: // Hope we don't have infinite recursion here + case Key_SysReq: { + if ( isPress ) { + if ( m_power_timer ) +Index: libopie2/opiecore/device/odevice_mypal.cpp +=================================================================== +RCS file: /cvs/opie/libopie2/opiecore/device/odevice_mypal.cpp,v +retrieving revision 1.4 +diff -u -r1.4 odevice_mypal.cpp +--- libopie2/opiecore/device/odevice_mypal.cpp 9 Jun 2006 08:27:01 -0000 1.4 ++++ libopie2/opiecore/device/odevice_mypal.cpp 10 Oct 2006 15:07:21 -0000 +@@ -60,29 +60,32 @@ + using namespace Opie::Core; + using namespace Opie::Core::Internal; + ++#define Model_Keyboardless_2_6 (Model_MyPal_716) ++ + struct m_button mypal_buttons [] = { +- { Model_MyPal_716, ++ // Common button map for all keyboardless devices with 2.6 kernel ++ { Model_Keyboardless_2_6, + Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), + "devicebuttons/ipaq_calendar", + "datebook", "nextView()", + "today", "raise()" }, +- { Model_MyPal_716, ++ { Model_Keyboardless_2_6, + Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), + "devicebuttons/ipaq_contact", + "addressbook", "raise()", + "addressbook", "beamBusinessCard()" }, +- { Model_MyPal_716, +- Qt::Key_F8, QT_TRANSLATE_NOOP("Button", "Mail Button"), ++ { Model_Keyboardless_2_6, ++ Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Mail Button"), + "devicebuttons/ipaq_mail", + "opiemail", "raise()", + "opiemail", "newMail()" }, +- { Model_MyPal_716, ++ { Model_Keyboardless_2_6, + Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), + "devicebuttons/ipaq_home", + "QPE/Launcher", "home()", + "buttonsettings", "raise()" }, +- { Model_MyPal_716, +- Qt::Key_F7, QT_TRANSLATE_NOOP("Button", "Record Button"), ++ { Model_Keyboardless_2_6, ++ Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), + "devicebuttons/ipaq_record", + "QPE/VMemo", "toggleRecord()", + "sound", "raise()" }, |