summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_palm.cpp16
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
@@ -226,23 +226,25 @@ bool Palm::suspend()
226} 226}
227 227
228 228
229int Palm::displayBrightnessResolution() const 229int Palm::displayBrightnessResolution() const
230{ 230{
231 int res = 1; 231 int res = 1;
232 int fd = -1;
232 233
233 switch ( d->m_model ) 234 switch ( d->m_model )
234 { 235 {
235 case Model_Palm_LD: 236 case Model_Palm_LD:
236 case Model_Palm_TX: 237 case Model_Palm_TX:
237 case Model_Palm_Z72: 238 case Model_Palm_Z72:
238 int fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK ); 239 fd = ::open( m_backlightdev + "max_brightness", O_RDONLY|O_NONBLOCK );
239 if ( fd ) 240 if ( fd != -1)
240 { 241 {
241 char buf[100]; 242 char buf[100];
242 if ( ::read( fd, &buf[0], sizeof buf ) ) ::sscanf( &buf[0], "%d", &res ); 243 if ( ::read( fd, &buf[0], sizeof buf ) > 0 )
244 ::sscanf( &buf[0], "%d", &res );
243 ::close( fd ); 245 ::close( fd );
244 } 246 }
245 break; 247 break;
246 248
247 default: 249 default:
248 res = 1; 250 res = 1;
@@ -258,27 +260,29 @@ bool Palm::setDisplayBrightness( int bright )
258 260
259 if ( bright > 255 ) bright = 255; 261 if ( bright > 255 ) bright = 255;
260 if ( bright < 0 ) bright = 0; 262 if ( bright < 0 ) bright = 0;
261 263
262 int numberOfSteps = displayBrightnessResolution(); 264 int numberOfSteps = displayBrightnessResolution();
263 int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255; 265 int val = ( bright == 1 ) ? 1 : ( bright * numberOfSteps ) / 255;
266 int fd = -1;
264 267
265 switch ( d->m_model ) 268 switch ( d->m_model )
266 { 269 {
267 270
268 case Model_Palm_LD: 271 case Model_Palm_LD:
269 case Model_Palm_TX: 272 case Model_Palm_TX:
270 case Model_Palm_Z72: 273 case Model_Palm_Z72:
271 int fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK ); 274 fd = ::open( m_backlightdev + "brightness", O_WRONLY|O_NONBLOCK );
272 if ( fd ) 275 if ( fd != -1 )
273 { 276 {
274 char buf[100]; 277 char buf[100];
275 int len = ::snprintf( &buf[0], sizeof buf, "%d", val ); 278 int len = ::snprintf( &buf[0], sizeof buf, "%d", val );
276 res = ( ::write( fd, &buf[0], len ) == 0 ); 279 res = ( ::write( fd, &buf[0], len ) == 0 );
277 ::close( fd ); 280 ::close( fd );
278 } 281 }
279 break; 282 break;
280 283
281 default: res = false; 284 default:
285 res = false;
282 } 286 }
283 return res; 287 return res;
284} 288}