[PATCH] Support common buttonmap for HH.org devices
Paul Sokolovsky <[email protected]>
| Newsgroups | gmane.comp.handhelds.opie.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello opie-devel, Dmitriy,
Since version of 2.6.17-hh3, most HandHelds.org-maintained
PDA-design (vs XDA, phone, etc.) devices switched to use common
button keycode map. This allows to overcome issues we previously had
with application buttons not working from a device to device, power
button/backlight control via long press not working, etc.
The change affects following devices supported by OPIE: h1910,
h2200, h4000, hx4700, asus716. Moreover, it allows to add support for
new devices more easily (and it will "just work").
The patch has been in testing since August, and by now has
proven to work as expected. At this time, it is applies by default to
build produced via OpenEmbedded (org.openembedded.dev branch).
So, I would like to ask it to be merged into OPIE mainline. The
change affects libopie2.
Thanks you,
--
Paul mailto:[email protected]
_______________________________________________
http://opie.handhelds.org/cgi-bin/moin.cgi/DeveloperWikiIndex
Opie-devel mailing list
[email protected]
https://handhelds.org/mailman/listinfo/opie-devel
keyboardless-buttonmap.patch
(application/octet-stream, 7.6 KB)
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()" },