-rw-r--r-- | libopie2/opiecore/device/odevice_palm.cpp | 16 |
1 files changed, 10 insertions, 6 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 @@ -216,69 +216,73 @@ bool Palm::suspend() 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; } |