-rw-r--r-- | libopie2/opiecore/device/odevice_palm.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/libopie2/opiecore/device/odevice_palm.cpp b/libopie2/opiecore/device/odevice_palm.cpp index 399c08c..d40dfce 100644 --- a/libopie2/opiecore/device/odevice_palm.cpp +++ b/libopie2/opiecore/device/odevice_palm.cpp @@ -138,147 +138,151 @@ void Palm::init(const QString& cpu_info) void Palm::initButtons() { if ( d->m_buttons ) return ; if ( isQWS( ) ) { addPreHandler(this); } d->m_buttons = new QValueList <ODeviceButton>; for ( uint i = 0; i < ( sizeof( palm_buttons ) / sizeof( palm_button ) ); i++ ) { palm_button *ib = palm_buttons + i; ODeviceButton b; if (( ib->model & d->m_model ) == d->m_model ) { 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; 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 return false; switch ( d->m_model ) { case Model_Palm_LD: case Model_Palm_Z72: { QCopChannel::send( "QPE/System", "aboutToSuspend()" ); ::sync(); // flush fs caches res = ( ::system ( "apm --suspend" ) == 0 ); QCopChannel::send( "QPE/System", "returnFromSuspend()" ); } break; default: break; } return res; } int Palm::displayBrightnessResolution() const { int res = 1; + int fd = -1; switch ( d->m_model ) { case Model_Palm_LD: case Model_Palm_TX: case Model_Palm_Z72: - int fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK ); - if ( fd ) + fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK ); + if ( fd != -1) { char buf[100]; - if ( ::read( fd, &buf[0], sizeof buf ) ) ::sscanf( &buf[0], "%d", &res ); + if ( ::read( fd, &buf[0], sizeof buf ) > 0 ) + ::sscanf( &buf[0], "%d", &res ); ::close( fd ); } break; default: res = 1; } - + return res; } bool Palm::setDisplayBrightness( int bright ) { bool res = false; if ( bright > 255 ) bright = 255; if ( bright < 0 ) bright = 0; int numberOfSteps = displayBrightnessResolution(); int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255; + int fd = -1; switch ( d->m_model ) { case Model_Palm_LD: case Model_Palm_TX: case Model_Palm_Z72: - int fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK ); - if ( fd ) + fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK ); + if ( fd != -1 ) { char buf[100]; int len = ::snprintf( &buf[0], sizeof buf, "%d", val ); res = ( ::write( fd, &buf[0], len ) == 0 ); ::close( fd ); } break; - - default: res = false; + + default: + res = false; } return res; } |