-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 | |||
@@ -170,42 +170,42 @@ void Palm::initButtons() | |||
170 | 170 | ||
171 | bool Palm::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) | 171 | bool Palm::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) |
172 | { | 172 | { |
173 | int newkeycode = keycode; | 173 | int newkeycode = keycode; |
174 | 174 | ||
175 | if (qt_screen->transformOrientation() != Rot0){ | 175 | if (qt_screen->transformOrientation() != Rot0){ |
176 | 176 | ||
177 | switch ( keycode ) { | 177 | switch ( keycode ) { |
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 | ||
200 | bool Palm::suspend() | 200 | bool 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 | ||
204 | bool res = false; | 204 | bool res = false; |
205 | 205 | ||
206 | if ( !isQWS( ) ) // only qwsserver is allowed to suspend | 206 | if ( !isQWS( ) ) // only qwsserver is allowed to suspend |
207 | return false; | 207 | return false; |
208 | 208 | ||
209 | switch ( d->m_model ) { | 209 | switch ( d->m_model ) { |
210 | case Model_Palm_LD: | 210 | case Model_Palm_LD: |
211 | case Model_Palm_Z72: | 211 | case Model_Palm_Z72: |
@@ -216,69 +216,73 @@ bool Palm::suspend() | |||
216 | res = ( ::system ( "apm --suspend" ) == 0 ); | 216 | res = ( ::system ( "apm --suspend" ) == 0 ); |
217 | 217 | ||
218 | QCopChannel::send( "QPE/System", "returnFromSuspend()" ); | 218 | QCopChannel::send( "QPE/System", "returnFromSuspend()" ); |
219 | } | 219 | } |
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 | } |