diff options
Diffstat (limited to 'recipes/libopie')
20 files changed, 770 insertions, 0 deletions
diff --git a/recipes/libopie/libopie2.inc b/recipes/libopie/libopie2.inc new file mode 100644 index 0000000000..a5a5cef0bd --- /dev/null +++ b/recipes/libopie/libopie2.inc @@ -0,0 +1,99 @@ +DESCRIPTION = "Base libraries for the Open Palmtop Integrated Environment" +HOMEPAGE = "http://opie.handhelds.org" +SECTION = "opie/libs" +LICENSE = "LGPL" +I18N_FILES = "libopiecore2.ts libopiesecurity2.ts" +DEPENDS = "libqpe-opie libpcap sqlite3 bluez-libs" +PROVIDES = "libopiecore2 libopiedb2 libopiemm2 libopiesecurity2 libopienet2 libopiepim2 libopieui2" + +S = "${WORKDIR}/libopie2" + +inherit opie + +PARALLEL_MAKE = "" + +#FIXME: Add machine specific bits here. Best use oe_machinstall and read from a given file + +EXTRA_QMAKEVARS_POST += 'DEFINES+=OPIE_NEW_MALLOC \ + DEFINES+="OPIE_SOUND_FRAGMENT_SHIFT=16" \ + DEFINES+=OPIE_NO_ERASE_RECT_HACKFIX \ + LIBS+=-L${S} LIBS+="-Wl,-rpath-link,${S}"' + +ENABLE_SQL_PIM_BACKEND = "y" +# NOTE: Machines with too little amount of flash may want to disable SQL backend support +# (known not to fit in 16MB). Also, XML backend is still used by default, as SQL doesn't +# support sync yet. +#ENABLE_SQL_PIM_BACKEND_smallmachine = "n" +EXTRA_QMAKEVARS_PRE += 'ENABLE_SQL_PIM_BACKEND=${ENABLE_SQL_PIM_BACKEND}' + +MODULES = "opiecore opiedb opiemm opienet opiepim opiesecurity opieui opiebluez" +LIBS = "core2 db2 mm2 net2 pim2 security2 ui2 bluez2" +PRIVATE = "opimcontactsortvector.h opimoccurrence_p.h opimsortvector.h opimtodosortvector.h vobject_p.h opimeventsortvector.h" + +# uclibc doesn't have backtrace() +python __anonymous () { + import bb, re + if (re.match('.*uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None): + bb.data.setVar("EXTRA_QMAKEVARS_POST_append", " DEFINES+=OPIE_NO_BACKTRACE ", d) +} + +do_compile() { + install -d ${STAGING_INCDIR}/opie2 + install -d ${STAGING_INCDIR}/opie2/private + for module in ${MODULES} + do + cd $module + for i in `find . -name "*.h"` + do + install -m 0644 $i ${STAGING_INCDIR}/opie2/`basename $i` + done + cd .. + done + + for header in ${PRIVATE} + do + install -m 0644 opiepim/private/$header ${STAGING_INCDIR}/opie2/private/ + done + + oe_runmake MOC=${STAGING_BINDIR_NATIVE}/moc UIC=${STAGING_BINDIR_NATIVE}/uic DESTDIR=${S} +} + +do_stage() { + for f in ${LIBS} + do + oe_libinstall -so libopie$f ${STAGING_LIBDIR}/ + done + install -m 0644 ${WORKDIR}/include.pro ${OPIEDIR}/include.pro + # special case for uic-created header files + install -m 0644 opiepim/ui/opimrecurrencebase.h ${STAGING_INCDIR}/opie2/ + install -m 0644 opieui/otimepickerbase.h ${STAGING_INCDIR}/opie2/ + install -m 0644 opiepim/core/opimtemplatebase.h ${STAGING_INCDIR}/opie2/ +} + +do_install() { + install -d ${D}${libdir} + for f in ${LIBS} + do + oe_libinstall -so libopie$f ${D}${libdir} + done +} + +PACKAGES_prepend = " libopiecore2 libopiedb2 libopiesecurity2 libopiemm2 libopienet2 libopiepim2 libopieui2 libopiebluez2 " + +DESCRIPTION_libopiecore2 = "Opie Development Platform 1.x Core Library" +FILES_libopiecore2 = "${libdir}/libopiecore2.so.*" +DESCRIPTION_libopiedb2 = "Opie Development Platform 1.x Database Library" +FILES_libopiedb2 = "${libdir}/libopiedb2.so.*" +DESCRIPTION_libopiemm2 = "Opie Development Platform 1.x Multimedia Library" +FILES_libopiemm2 = "${libdir}/libopiemm2.so.*" +DESCRIPTION_libopienet2 = "Opie Development Platform 1.x Network Library" +FILES_libopienet2 = "${libdir}/libopienet2.so.*" +DESCRIPTION_libopiepim2 = "Opie Development Platform 1.x PIM Library" +FILES_libopiepim2 = "${libdir}/libopiepim2.so.*" +DESCRIPTION_libopieui2 = "Opie Development Platform 1.x User Interface Library" +FILES_libopieui2 = "${libdir}/libopieui2.so.*" +DESCRIPTION_libopiesecurity2 = "Opie Development Platform 1.x Security Library" +FILES_libopiesecurity2 = "${libdir}/libopiesecurity2.so.*" +DESCRIPTION_libopiebluez2 = "Opie Development Platform 1.x Bluetooth Library" +FILES_libopiebluez2 = "${libdir}/libopiebluez2.so.*" + diff --git a/recipes/libopie/libopie2/c7x0_w100_disable.patch b/recipes/libopie/libopie2/c7x0_w100_disable.patch new file mode 100644 index 0000000000..959c56c443 --- /dev/null +++ b/recipes/libopie/libopie2/c7x0_w100_disable.patch @@ -0,0 +1,20 @@ +--- libopie2/opiecore/device/odevice_zaurus.cpp 10 Aug 2008 09:07:32 -0000 1.55 ++++ libopie2/opiecore/device/odevice_zaurus.cpp 20 Sep 2008 23:56:20 -0000 +@@ -313,14 +313,14 @@ + } + + // set default qte driver +- switch( d->m_model ) ++/* switch( d->m_model ) + { + case Model_Zaurus_SLC7x0: + d->m_qteDriver = "W100"; + break; +- default: ++ default:*/ + d->m_qteDriver = "Transformed"; +- } ++// } + + m_leds[0] = Led_Off; + diff --git a/recipes/libopie/libopie2/exports.patch b/recipes/libopie/libopie2/exports.patch new file mode 100644 index 0000000000..2ff06287be --- /dev/null +++ b/recipes/libopie/libopie2/exports.patch @@ -0,0 +1,11 @@ +--- libopie2/opiecore/ostorageinfo.h.org 2007-03-09 11:20:17.000000000 +0000 ++++ libopie2/opiecore/ostorageinfo.h 2007-03-08 23:43:56.000000000 +0000 +@@ -35,7 +35,7 @@ + namespace Opie { + namespace Core { + +-class OStorageInfo : public StorageInfo ++class Q_EXPORT OStorageInfo : public StorageInfo + { + Q_OBJECT + diff --git a/recipes/libopie/libopie2/gcc-syntax-fix.patch b/recipes/libopie/libopie2/gcc-syntax-fix.patch new file mode 100644 index 0000000000..12b64d7d37 --- /dev/null +++ b/recipes/libopie/libopie2/gcc-syntax-fix.patch @@ -0,0 +1,13 @@ +diff --git a/opiedb/osqldriver.h b/opiedb/osqldriver.h +index 492b8dd..29fbfd6 100644 +--- a/opiedb/osqldriver.h ++++ b/opiedb/osqldriver.h +@@ -77,7 +77,7 @@ public: + /** + * Get a list of tables + */ +- virtual OSQLTable::ValueList tables() const = 0l; ++ virtual OSQLTable::ValueList tables() const = 0; + virtual bool sync(); + + diff --git a/recipes/libopie/libopie2/h4000_and_default_rot.patch b/recipes/libopie/libopie2/h4000_and_default_rot.patch new file mode 100644 index 0000000000..c10160d0b8 --- /dev/null +++ b/recipes/libopie/libopie2/h4000_and_default_rot.patch @@ -0,0 +1,25 @@ +--- libopie2/opiecore/device/odevice_ipaq.cpp.org 2007-09-09 02:44:41.000000000 +0300 ++++ libopie2/opiecore/device/odevice_ipaq.cpp 2007-11-09 12:01:56.000000000 +0200 +@@ -178,6 +178,10 @@ + d->m_model = Model_iPAQ_HX4700; + else if ( d->m_modelstr == "H4000" ) + d->m_model = Model_iPAQ_H4xxx; ++ else if ( d->m_modelstr == "H4100" ) ++ d->m_model = Model_iPAQ_H4xxx; ++ else if ( d->m_modelstr == "H4300" ) ++ d->m_model = Model_iPAQ_H4xxx; + + else + d->m_model = Model_Unknown; +@@ -198,8 +202,10 @@ + case Model_iPAQ_H36xx: + case Model_iPAQ_H37xx: + case Model_iPAQ_H39xx: +- default: + d->m_rotation = Rot270; ++ break; ++ default: ++ d->m_rotation = Rot0; + break; + + } diff --git a/recipes/libopie/libopie2/include.pro b/recipes/libopie/libopie2/include.pro new file mode 100644 index 0000000000..c76634a239 --- /dev/null +++ b/recipes/libopie/libopie2/include.pro @@ -0,0 +1,36 @@ +# we don't want to modify subdir .pro's +!contains( TEMPLATE, subdirs ) { +# if it's already a lib, we ignore it +!contains( TEMPLATE, lib ) { + + contains( CONFIG, quick-app ) { + message ( Building a quicklaunch application ) + TEMPLATE = lib + CONFIG += plugin + DEFINES += OPIE_APP_INTERFACE + DEFINES += QUICKAPP_NAME="\"$${TARGET}\"" + + system ( touch visibility_qmake_test.c ) + # Test if the compiler supports visibility + system ( $$(CC) -fvisibility=hidden -c -o visibility_qmake_test.o visibility_qmake_test.c ) { + message ( "Your compiler does support visibility, we will use it" ) + DEFINES += GCC_SUPPORTS_VISIBILITY + QMAKE_CFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden + QMAKE_CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden + system ( rm visibility_qmake_test.o ) + } + system ( rm visibility_qmake_test.c ) + + } + + !contains ( CONFIG, quick-app ) { + message( Building a standalone application ) + TEMPLATE = app + DEFINES -= OPIE_APP_INTERFACE + DEFINES += QUICKAPP_NAME="\"$${TARGET}\"" + } +} +} + +DEFINES += OPIE_NEW_MALLOC +DEFINES += OPIE_NO_ERASE_RECT_HACKFIX diff --git a/recipes/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch b/recipes/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch new file mode 100644 index 0000000000..4095502c32 --- /dev/null +++ b/recipes/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/recipes/libopie/libopie2/ipaq-lcd-rotate-cleanup.patch b/recipes/libopie/libopie2/ipaq-lcd-rotate-cleanup.patch new file mode 100644 index 0000000000..735663f343 --- /dev/null +++ b/recipes/libopie/libopie2/ipaq-lcd-rotate-cleanup.patch @@ -0,0 +1,39 @@ +Index: libopie2/opiecore/device/odevice_ipaq.cpp +=================================================================== +--- libopie2.orig/opiecore/device/odevice_ipaq.cpp 2007-02-05 21:40:33.000000000 +0000 ++++ libopie2/opiecore/device/odevice_ipaq.cpp 2007-02-05 21:51:43.000000000 +0000 +@@ -317,24 +317,20 @@ + break; + } + +- // Rotate cursor keys 180 or 270 ++ // QT has strange screen coordinate system, so depending ++ // on native device screen orientation, we need to rotate cursor keys + case Key_Left : + case Key_Right: + case Key_Up : + case Key_Down : { +- if (( d->m_model == Model_iPAQ_H31xx ) || +- ( d->m_model == Model_iPAQ_H38xx )) { +- newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; +- } +- // Rotate the cursor keys by 270 +- // keycode - Key_Left = position of the button starting from left clockwise +- // 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 ) || +- ( d->m_model == Model_iPAQ_H191x ) || +- ( d->m_model == Model_iPAQ_H4xxx ) || +- ( d->m_model == Model_iPAQ_H1940 )) +- newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; ++ int quarters; ++ switch (d->m_rotation) { ++ case Rot0: quarters = 3/*270deg*/; break; ++ case Rot90: quarters = 2/*270deg*/; break; ++ case Rot180: quarters = 1/*270deg*/; break; ++ case Rot270: quarters = 0/*270deg*/; break; ++ } ++ newkeycode = Key_Left + ( keycode - Key_Left + quarters ) % 4; + break; + } + diff --git a/recipes/libopie/libopie2/ipaq_rotate_fix.patch b/recipes/libopie/libopie2/ipaq_rotate_fix.patch new file mode 100644 index 0000000000..9dfdb4fbf7 --- /dev/null +++ b/recipes/libopie/libopie2/ipaq_rotate_fix.patch @@ -0,0 +1,23 @@ +--- libopie2/opiecore/device/odevice_ipaq.cpp 2008-05-26 16:33:01.000000000 +0100 ++++ libopie2/opiecore/device/odevice_ipaq.cpp 2008-05-26 16:33:40.000000000 +0100 +@@ -331,16 +331,10 @@ + case Key_Down : { + int quarters; + switch (d->m_rotation) { +- case Rot0: quarters = 3/*270deg*/; break; +- case Rot90: quarters = 2/*270deg*/; break; +- case Rot180: quarters = 1/*270deg*/; break; +- case Rot270: quarters = 0/*270deg*/; break; +- } +- if( d->m_model == Model_iPAQ_H22xx ) { +- // FIXME: there's something screwed with the keycodes being sent on h2200. I have +- // added a temporary workaround for this here, but the bug should be fixed properly +- // later in the right place. - Paul Eggleton 25/07/2007 +- quarters = 0; ++ case Rot0: quarters = 0/*0deg*/; break; ++ case Rot90: quarters = 1/*90deg*/; break; ++ case Rot180: quarters = 2/*180deg*/; break; ++ case Rot270: quarters = 3/*270deg*/; break; + } + newkeycode = Key_Left + ( keycode - Key_Left + quarters ) % 4; + break; diff --git a/recipes/libopie/libopie2/keyboardless-buttonmap.patch b/recipes/libopie/libopie2/keyboardless-buttonmap.patch new file mode 100644 index 0000000000..288f28a68a --- /dev/null +++ b/recipes/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()" }, diff --git a/recipes/libopie/libopie2/libopie2-tosa.patch b/recipes/libopie/libopie2/libopie2-tosa.patch new file mode 100644 index 0000000000..f62c4643d1 --- /dev/null +++ b/recipes/libopie/libopie2/libopie2-tosa.patch @@ -0,0 +1,14 @@ +Index: libopie2/opiecore/device/odevice_zaurus.cpp +=================================================================== +--- libopie2.orig/opiecore/device/odevice_zaurus.cpp 2008-12-01 06:38:14.670256416 +0300 ++++ libopie2/opiecore/device/odevice_zaurus.cpp 2008-12-01 07:47:16.045256590 +0300 +@@ -286,6 +286,9 @@ void Zaurus::init(const QString& cpu_inf + case Model_Zaurus_SL5500: + m_backlightdev = "/sys/class/backlight/locomo-bl/"; + break; ++ case Model_Zaurus_SL6000: ++ m_backlightdev = "/sys/class/backlight/tosa_bl/"; ++ break; + default: + m_backlightdev = "/sys/class/backlight/corgi-bl/"; + } diff --git a/recipes/libopie/libopie2/odevice.h-jornada-fixup.patch b/recipes/libopie/libopie2/odevice.h-jornada-fixup.patch new file mode 100644 index 0000000000..6b50f5de79 --- /dev/null +++ b/recipes/libopie/libopie2/odevice.h-jornada-fixup.patch @@ -0,0 +1,13 @@ +--- libopie2/opiecore/device/odevice.h_orig 2006-08-06 14:22:16.000000000 +0000 ++++ libopie2/opiecore/device/odevice.h 2006-08-06 14:22:58.000000000 +0000 +@@ -73,7 +73,9 @@ + Model_iPAQ_HX4700 = ( Model_iPAQ | 0x000A ), + Model_Jornada = ( 6 << 16 ), + Model_Jornada_56x = ( Model_Jornada | 0x0001 ), +- Model_Jornada_720 = ( Model_Jornada | 0x0002 ), ++ Model_Jornada_6xx = ( Model_Jornada | 0x0003 ), ++ Model_Jornada_7xx = ( Model_Jornada | 0x0002 ), ++ + + Model_Zaurus = ( 2 << 16 ), + diff --git a/recipes/libopie/libopie2/odevice_jornada.cpp-fixup.patch b/recipes/libopie/libopie2/odevice_jornada.cpp-fixup.patch new file mode 100644 index 0000000000..8481f0f419 --- /dev/null +++ b/recipes/libopie/libopie2/odevice_jornada.cpp-fixup.patch @@ -0,0 +1,57 @@ +--- libopie2/opiecore/device/odevice_jornada.cpp_orig 2006-08-06 14:34:15.000000000 +0000 ++++ libopie2/opiecore/device/odevice_jornada.cpp 2006-08-06 14:34:53.000000000 +0000 +@@ -125,9 +125,12 @@ + if ( model == "HP Jornada 56x" ) { + d->m_modelstr = "Jornada 56x"; + d->m_model = Model_Jornada_56x; +- } else if ( model == "HP Jornada 720" ) { +- d->m_modelstr = "Jornada 720"; +- d->m_model = Model_Jornada_720; ++ } else if ( model == "HP Jornada 7xx" ) { ++ d->m_modelstr = "Jornada 7xx"; ++ d->m_model = Model_Jornada_7xx; ++ } else if ( model == "HP Jornada 6xx" ) { ++ d->m_modelstr = "Jornada 6xx"; ++ d->m_model = Model_Jornada_6xx; + } + + d->m_rotation = Rot0; //all Jornadas need this rotation +@@ -162,7 +165,9 @@ + { + if ( d->m_model == Model_Jornada_56x ) + return 190; +- else if (d->m_model == Model_Jornada_720 ) ++ else if (d->m_model == Model_Jornada_7xx ) ++ return 255; ++ else if (d->m_model == Model_Jornada_6xx ) + return 255; + else + return 0; +@@ -185,10 +190,11 @@ + cmdline = QString::fromLatin1( "echo 4 > /sys/class/backlight/sa1100fb/power"); + else + cmdline = QString::fromLatin1( "echo 0 > /sys/class/backlight/sa1100fb/power; echo %1 > /sys/class/backlight/sa1100fb/brightness" ).arg( bright ); +- } else if ( d->m_model == Model_Jornada_720 ) { ++ } else if ( d->m_model == Model_Jornada_7xx ) { + cmdline = QString::fromLatin1( "echo %1 > /sys/class/backlight/e1356fb/brightness" ).arg( bright ); ++ } else if ( d->m_model == Model_Jornada_6xx ) { ++ cmdline = QString::fromLatin1( "echo %1 > /sys/class/backlight/hp680-bl/brightness" ).arg( bright ); + } +- + // No Global::shellQuote as we gurantee it to be sane + res = ( ::system( QFile::encodeName(cmdline) ) == 0 ); + +@@ -204,9 +210,11 @@ + + if ( d->m_model == Model_Jornada_56x ) { + cmdline = QString::fromLatin1( "echo %1 > /sys/class/lcd/sa1100fb/power; echo %2 > /sys/class/backlight/sa1100fb/power").arg( on ? "0" : "4" ).arg( on ? "0" : "4" ); +- } else if ( d->m_model == Model_Jornada_720 ) { ++ } else if ( d->m_model == Model_Jornada_7xx ) { + cmdline = QString::fromLatin1( "echo %1 > /sys/class/lcd/e1356fb/power").arg( on ? "0" : "4" ); +- } ++ } else if ( d->m_model == Model_Jornada_6xx ) { ++ cmdline = QString::fromLatin1( "echo %1 > /sys/class/lcd/hp680-bl/power").arg( on ? "0" : "4" ); ++ } + + res = ( ::system( QFile::encodeName(cmdline) ) == 0 ); + diff --git a/recipes/libopie/libopie2/poodle-2.6-hotkeys.patch b/recipes/libopie/libopie2/poodle-2.6-hotkeys.patch new file mode 100644 index 0000000000..748f316a33 --- /dev/null +++ b/recipes/libopie/libopie2/poodle-2.6-hotkeys.patch @@ -0,0 +1,16 @@ +--- libopie2/opiecore/device/odevice_zaurus.cpp.orig 2006-05-16 13:53:40.190417936 +0200 ++++ libopie2/opiecore/device/odevice_zaurus.cpp 2006-05-16 13:53:56.606922248 +0200 +@@ -61,11 +61,11 @@ + using namespace Opie::Core::Internal; + + struct z_button z_buttons [] = { +- { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), ++ { Qt::Key_Control, QT_TRANSLATE_NOOP("Button", "Calendar Button"), + "devicebuttons/z_calendar", + "datebook", "nextView()", + "today", "raise()" }, +- { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), ++ { Qt::Key_Alt, QT_TRANSLATE_NOOP("Button", "Contacts Button"), + "devicebuttons/z_contact", + "addressbook", "raise()", + "addressbook", "beamBusinessCard()" }, diff --git a/recipes/libopie/libopie2/spitz_rotate_fix.patch b/recipes/libopie/libopie2/spitz_rotate_fix.patch new file mode 100644 index 0000000000..428ec0d4cf --- /dev/null +++ b/recipes/libopie/libopie2/spitz_rotate_fix.patch @@ -0,0 +1,23 @@ +--- libopie2/opiecore/device/odevice_zaurus.cpp 30 Jul 2007 19:10:52 -0000 1.53 ++++ libopie2/opiecore/device/odevice_zaurus.cpp 8 Aug 2008 23:15:15 -0000 +@@ -760,9 +760,18 @@ + case Key_Up : + case Key_Down : + { +- if (rotation()==Rot90) { +- newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; ++ if (d->m_model == Model_Zaurus_SLC3000) { ++ // This ensures that the cursor keys work correctly and that the ++ // side wheel works as expected when the screen is flipped over ++ if (rotation() == Rot270) ++ newkeycode = Key_Left + ( keycode - Key_Left + 1 ) % 4; + } ++ else { ++ if (rotation()==Rot90) ++ newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; ++ } ++ break; ++ + } + break; + diff --git a/recipes/libopie/libopie2/wireless.patch b/recipes/libopie/libopie2/wireless.patch new file mode 100644 index 0000000000..c0b2fa0f55 --- /dev/null +++ b/recipes/libopie/libopie2/wireless.patch @@ -0,0 +1,12 @@ +diff --git a/opienet/onetwork.h b/opienet/onetwork.h +index b13c7a3..370ad59 100644 +--- a/opienet/onetwork.h ++++ b/opienet/onetwork.h +@@ -45,6 +45,7 @@ + // hacky workarounds until we have a true user space wireless.h + #include <net/if.h> + #define _LINUX_IF_H ++#include <linux/types.h> + #include <linux/wireless.h> + #ifndef IW_MAX_PRIV_DEF + #define IW_MAX_PRIV_DEF 128 diff --git a/recipes/libopie/libopie2_1.2.2.bb b/recipes/libopie/libopie2_1.2.2.bb new file mode 100644 index 0000000000..8409e4c523 --- /dev/null +++ b/recipes/libopie/libopie2_1.2.2.bb @@ -0,0 +1,9 @@ +require ${PN}.inc +PR = "r2" + +SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/libopie2 \ + file://include.pro \ + file://odevice.h-jornada-fixup.patch;patch=1 \ + file://odevice_jornada.cpp-fixup.patch;patch=1" + +SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch;patch=1" diff --git a/recipes/libopie/libopie2_1.2.3.bb b/recipes/libopie/libopie2_1.2.3.bb new file mode 100644 index 0000000000..d0f9e9e17a --- /dev/null +++ b/recipes/libopie/libopie2_1.2.3.bb @@ -0,0 +1,13 @@ +require ${PN}.inc + +PR = "r6" + +SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/libopie2 \ + file://include.pro \ + file://gcc-syntax-fix.patch;patch=1 \ + file://h4000_and_default_rot.patch;patch=1 \ + file://ipaq_rotate_fix.patch;patch=1 \ + file://spitz_rotate_fix.patch;patch=1 \ + file://c7x0_w100_disable.patch;patch=1" + +SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch;patch=1" diff --git a/recipes/libopie/libopie2_1.2.4.bb b/recipes/libopie/libopie2_1.2.4.bb new file mode 100644 index 0000000000..0634ad7d22 --- /dev/null +++ b/recipes/libopie/libopie2_1.2.4.bb @@ -0,0 +1,10 @@ +require ${PN}.inc + +PR = "r1" + +SRC_URI = "${HANDHELDS_CVS};tag=${TAG};module=opie/libopie2 \ + file://include.pro \ + file://libopie2-tosa.patch;patch=1 \ + file://c7x0_w100_disable.patch;patch=1" + +SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch;patch=1" diff --git a/recipes/libopie/libopie2_cvs.bb b/recipes/libopie/libopie2_cvs.bb new file mode 100644 index 0000000000..c9f11b23e2 --- /dev/null +++ b/recipes/libopie/libopie2_cvs.bb @@ -0,0 +1,17 @@ +require ${PN}.inc + +PV = "${OPIE_CVS_PV}" +PR = "r12" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "${HANDHELDS_CVS};module=opie/libopie2 \ + file://c7x0_w100_disable.patch;patch=1 \ + file://include.pro" + +# Patches merged upstream, keep for reference (for 1.2.2) +# file://ipaq-lcd-rotate-cleanup.patch;patch=1 \ +# file://exports.patch;patch=1 \ +# file://wireless.patch;patch=1" + +SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch;patch=1" |