-rw-r--r-- | libopie2/opiecore/device/odevice_palm.cpp | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/libopie2/opiecore/device/odevice_palm.cpp b/libopie2/opiecore/device/odevice_palm.cpp index 892083e..6d94687 100644 --- a/libopie2/opiecore/device/odevice_palm.cpp +++ b/libopie2/opiecore/device/odevice_palm.cpp @@ -40,100 +40,105 @@ /* OPIE */ #include <qpe/config.h> #include <qpe/sound.h> #include <qpe/qcopenvelope_qws.h> #include <opie2/okeyfilter.h> #include <opie2/oresource.h> /* STD */ #include <fcntl.h> #include <math.h> #include <stdlib.h> #include <signal.h> #include <sys/ioctl.h> #include <sys/time.h> #include <unistd.h> #ifndef QT_NO_SOUND #include <linux/soundcard.h> #endif using namespace Opie::Core; using namespace Opie::Core::Internal; struct palm_button palm_buttons [] = { + { Model_Palm_LD, + Qt::Key_F6, QT_TRANSLATE_NOOP( "Button", "Rotate Button" ), + "devicebuttons/palm_rotate", + "QPE/Rotation", "flip()", + 0, 0 }, + { Model_Palm_LD | Model_Palm_Z72 | Model_Palm_T600 | Model_Palm_T650 | + Model_Palm_T680 | Model_Palm_T700W | Model_Palm_T700P | + Model_Palm_T750 | Model_Palm_T755P, + Qt::Key_F7, QT_TRANSLATE_NOOP( "Button", "Record Button" ), + "devicebuttons/palm_record", + "QPE/VMemo", "toggleRecord()", + "sound", "raise()" }, + { Model_Palm_TT | Model_Palm_TT2 | Model_Palm_TT3 | Model_Palm_TT5 | + Model_Palm_TE | Model_Palm_TE2 | Model_Palm_TC | Model_Palm_LD | + Model_Palm_TX | Model_Palm_Z71 | Model_Palm_Z72 | Model_Palm_T600 | + Model_Palm_T650 | Model_Palm_T680 | Model_Palm_T700W | + Model_Palm_T700P | Model_Palm_T750 | Model_Palm_T755P, + Qt::Key_F8, QT_TRANSLATE_NOOP( "Button", "Suspend Button" ), + "devicebuttons/palm_suspend", + "suspend", "raise()", + "suspend", "raise()" }, { Model_Palm_TT | Model_Palm_TT2 | Model_Palm_TT3 | Model_Palm_TT5 | Model_Palm_TE | Model_Palm_TE2 | Model_Palm_TC | Model_Palm_LD | Model_Palm_TX | Model_Palm_Z71 | Model_Palm_Z72 | Model_Palm_T600 | Model_Palm_T650 | Model_Palm_T680 | Model_Palm_T700W | Model_Palm_T700P | Model_Palm_T750 | Model_Palm_T755P, Qt::Key_F9, QT_TRANSLATE_NOOP( "Button", "Home Button" ), "devicebuttons/palm_home", "QPE/Launcher", "home()", "buttonsettings", "raise()" }, { Model_Palm_TT | Model_Palm_TT2 | Model_Palm_TT3 | Model_Palm_TT5 | Model_Palm_TE | Model_Palm_TE2 | Model_Palm_TC | Model_Palm_LD | Model_Palm_TX | Model_Palm_Z71 | Model_Palm_Z72 | Model_Palm_T600 | Model_Palm_T650 | Model_Palm_T680 | Model_Palm_T700W | Model_Palm_T700P | Model_Palm_T750 | Model_Palm_T755P, Qt::Key_F10, QT_TRANSLATE_NOOP( "Button", "Calendar Button" ), "devicebuttons/palm_calendar", "datebook", "nextView()", "today", "raise()" }, { Model_Palm_TT | Model_Palm_TT2 | Model_Palm_TT3 | Model_Palm_TT5 | Model_Palm_TE | Model_Palm_TE2 | Model_Palm_TC | Model_Palm_LD | Model_Palm_TX | Model_Palm_Z71 | Model_Palm_Z72 | Model_Palm_T600 | Model_Palm_T650 | Model_Palm_T680 | Model_Palm_T700W | Model_Palm_T700P | Model_Palm_T750 | Model_Palm_T755P, Qt::Key_F11, QT_TRANSLATE_NOOP( "Button", "Todo Button" ), "devicebuttons/palm_todo", "todolist", "raise()", "todolist", "create()" }, { Model_Palm_TT | Model_Palm_TT2 | Model_Palm_TT3 | Model_Palm_TT5 | Model_Palm_TE | Model_Palm_TE2 | Model_Palm_TC | Model_Palm_LD | Model_Palm_TX | Model_Palm_Z71 | Model_Palm_Z72 | Model_Palm_T600 | Model_Palm_T650 | Model_Palm_T680 | Model_Palm_T700W | Model_Palm_T700P | Model_Palm_T750 | Model_Palm_T755P, Qt::Key_F12, QT_TRANSLATE_NOOP( "Button", "Mail Button" ), "devicebuttons/palm_mail", "opiemail", "raise()", "opiemail", "newmail()" }, - { Model_Palm_LD | Model_Palm_Z72 | Model_Palm_T600 | Model_Palm_T650 | - Model_Palm_T680 | Model_Palm_T700W | Model_Palm_T700P | - Model_Palm_T750 | Model_Palm_T755P, - Qt::Key_F7, QT_TRANSLATE_NOOP( "Button", "Record Button" ), - "devicebuttons/palm_record", - "QPE/VMemo", "toggleRecord()", - "sound", "raise()" }, - { Model_Palm_TT | Model_Palm_TT2 | Model_Palm_TT3 | Model_Palm_TT5 | - Model_Palm_TE | Model_Palm_TE2 | Model_Palm_TC | Model_Palm_LD | - Model_Palm_TX | Model_Palm_Z71 | Model_Palm_Z72 | Model_Palm_T600 | - Model_Palm_T650 | Model_Palm_T680 | Model_Palm_T700W | - Model_Palm_T700P | Model_Palm_T750 | Model_Palm_T755P, - Qt::Key_F8, QT_TRANSLATE_NOOP( "Button", "Suspend Button" ), - "devicebuttons/palm_suspend", - "suspend", "raise()", - "suspend", "raise()" }, }; void Palm::init(const QString& cpu_info) { d->m_vendorstr = "Palm"; d->m_vendor = Vendor_Palm; QString model = "unknown"; int loc = cpu_info.find( ":" ); if ( loc != -1 ) model = cpu_info.mid( loc+2 ).simplifyWhiteSpace(); else model = cpu_info; if ( model == "Palm Tungsten T" ) { d->m_modelstr = "Palm Tungsten|T"; d->m_model = Model_Palm_TT; } else if ( model == "Palm Tungsten T2" ) { d->m_modelstr = "Palm Tungsten|T2"; d->m_model = Model_Palm_TT2; } else if ( model == "Palm Tungsten T3" ) { @@ -195,61 +200,61 @@ void Palm::init(const QString& cpu_info) else if ( model == "Palm Treo 750" ) { d->m_modelstr = "Palm Treo 750"; d->m_model = Model_Palm_T750; } else if ( model == "Palm Treo 755p" ) { d->m_modelstr = "Palm Treo 755"; d->m_model = Model_Palm_T755P; } else if ( model == "Palm Foleo" ) { d->m_modelstr = "Palm Foleo"; d->m_model = Model_Palm_FOLEO; } else d->m_model = Model_Unknown; switch ( d->m_model ) { case Model_Palm_TT3: case Model_Palm_TT5: case Model_Palm_TC: case Model_Palm_LD: case Model_Palm_TX: case Model_Palm_TE2: case Model_Palm_Z72: + case Model_Palm_T650: m_backlightdev = "/sys/class/backlight/pxapwm-bl/"; d->m_rotation = Rot0; d->m_direction = CCW; d->m_qteDriver = "Transformed"; break; case Model_Palm_T600: case Model_Palm_TT: case Model_Palm_TT2: case Model_Palm_TE: case Model_Palm_Z71: m_backlightdev = "/sys/class/backlight/omap-bl/"; break; - case Model_Palm_T650: case Model_Palm_T680: case Model_Palm_T700W: case Model_Palm_T700P: case Model_Palm_T750: case Model_Palm_T755P: m_backlightdev = "/sys/class/backlight/corgi-bl/"; break; default: m_backlightdev = ""; } } void Palm::initButtons() { if ( d->m_buttons ) return ; if ( isQWS( ) ) { addPreHandler(this); } @@ -265,49 +270,49 @@ void Palm::initButtons() b. setKeycode ( ib->code ); b. setUserText ( QObject::tr ( "Button", ib->utext )); b. setPixmap ( OResource::loadPixmap ( ib->pix )); b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib->fpressedservice ), ib->fpressedaction )); b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib->fheldservice ), ib->fheldaction )); d->m_buttons->append ( b ); } } reloadButtonMapping(); } bool Palm::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) { int newkeycode = keycode; if (qt_screen->transformOrientation() != Rot0){ switch ( keycode ) { case Key_Left : case Key_Right: case Key_Up : case Key_Down : - newkeycode = Key_Left + ( keycode - Key_Left + (int) qt_screen->transformOrientation() ) % 4; + newkeycode = Key_Left + ( keycode - Key_Left + 4 ) % 4; default: break; } if (newkeycode!=keycode) { if ( newkeycode != Key_unknown ) { QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); } return true; } } return false; } bool Palm::suspend() { // some Palms do not implement their own power management at the moment. bool res = false; if ( !isQWS( ) ) // only qwsserver is allowed to suspend |