summaryrefslogtreecommitdiff
authorerik <erik>2007-02-13 21:52:06 (UTC)
committer erik <erik>2007-02-13 21:52:06 (UTC)
commit45f2e4cdc6e185439ef4bde6e2b8181a4decd032 (patch) (unidiff)
tree93af498e98728650df1d5e1e62a9711c339c65d4
parentda26f048379252aa1646d54348706c6cb3756a09 (diff)
downloadopie-45f2e4cdc6e185439ef4bde6e2b8181a4decd032.zip
opie-45f2e4cdc6e185439ef4bde6e2b8181a4decd032.tar.gz
opie-45f2e4cdc6e185439ef4bde6e2b8181a4decd032.tar.bz2
This commit fixes bug 1840. The problem is that the palm support declared
a variable inside of a case statement. When I integrated the patch for palm support I streamlined the switch. This lost the brackets that would be required to declare vars inside of switch statements. The bug slipped by because I wasn't doing arm compiles at the time. Sorry. This patch fixes it. It also slides in some corrections associated to what open and sscanf return. It should not cause any behavior change. Thanks goes to GoXbox Live for reporting the problem.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_palm.cpp24
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
@@ -178,26 +178,26 @@ bool Palm::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b
178 case Key_Left : 178 case Key_Left :
179 case Key_Right: 179 case Key_Right:
180 case Key_Up : 180 case Key_Up :
181 case Key_Down : 181 case Key_Down :
182 newkeycode = Key_Left + ( keycode - Key_Left + (int) qt_screen->transformOrientation() ) % 4; 182 newkeycode = Key_Left + ( keycode - Key_Left + (int) qt_screen->transformOrientation() ) % 4;
183 default: 183 default:
184 break; 184 break;
185 } 185 }
186 186
187 if (newkeycode!=keycode) { 187 if (newkeycode!=keycode) {
188 if ( newkeycode != Key_unknown ) { 188 if ( newkeycode != Key_unknown ) {
189 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); 189 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat );
190 } 190 }
191 return true; 191 return true;
192 } 192 }
193 193
194 } 194 }
195 195
196 return false; 196 return false;
197} 197}
198 198
199 199
200bool Palm::suspend() 200bool Palm::suspend()
201{ 201{
202 // some Palms do not implement their own power management at the moment. 202 // some Palms do not implement their own power management at the moment.
203 203
@@ -224,61 +224,65 @@ bool Palm::suspend()
224 224
225 return res; 225 return res;
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;
249 } 251 }
250 252
251 return res; 253 return res;
252} 254}
253 255
254 256
255bool Palm::setDisplayBrightness( int bright ) 257bool 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}