-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 | |||
@@ -220,65 +220,69 @@ bool Palm::suspend() | |||
220 | break; | 220 | break; |
221 | default: | 221 | default: |
222 | break; | 222 | break; |
223 | } | 223 | } |
224 | 224 | ||
225 | return res; | 225 | return res; |
226 | } | 226 | } |
227 | 227 | ||
228 | 228 | ||
229 | int Palm::displayBrightnessResolution() const | 229 | int 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; |
249 | } | 251 | } |
250 | 252 | ||
251 | return res; | 253 | return res; |
252 | } | 254 | } |
253 | 255 | ||
254 | 256 | ||
255 | bool Palm::setDisplayBrightness( int bright ) | 257 | bool Palm::setDisplayBrightness( int bright ) |
256 | { | 258 | { |
257 | bool res = false; | 259 | bool res = false; |
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 | } |