summaryrefslogtreecommitdiff
path: root/packages/libopie/libopie2
diff options
context:
space:
mode:
Diffstat (limited to 'packages/libopie/libopie2')
-rw-r--r--packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch144
-rw-r--r--packages/libopie/libopie2/keyboardless-buttonmap.patch176
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()" },