-rw-r--r-- | libopie/odevice.cpp | 15 | ||||
-rw-r--r-- | libopie/odevicebutton.cpp | 3 |
2 files changed, 12 insertions, 6 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index 9e97c56..d5e3c5c 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp | |||
@@ -251,65 +251,64 @@ ODevice::ODevice ( ) | |||
251 | d-> m_systemstr = "Unknown"; | 251 | d-> m_systemstr = "Unknown"; |
252 | d-> m_system = System_Unknown; | 252 | d-> m_system = System_Unknown; |
253 | d-> m_sysverstr = "0.0"; | 253 | d-> m_sysverstr = "0.0"; |
254 | d-> m_rotation = Rot0; | 254 | d-> m_rotation = Rot0; |
255 | 255 | ||
256 | d-> m_holdtime = 1000; // 1000ms | 256 | d-> m_holdtime = 1000; // 1000ms |
257 | 257 | ||
258 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); | 258 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); |
259 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); | 259 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); |
260 | } | 260 | } |
261 | 261 | ||
262 | void ODevice::systemMessage ( const QCString &msg, const QByteArray & ) | 262 | void ODevice::systemMessage ( const QCString &msg, const QByteArray & ) |
263 | { | 263 | { |
264 | if ( msg == "deviceButtonMappingChanged()" ) { | 264 | if ( msg == "deviceButtonMappingChanged()" ) { |
265 | reloadButtonMapping ( ); | 265 | reloadButtonMapping ( ); |
266 | } | 266 | } |
267 | } | 267 | } |
268 | 268 | ||
269 | void ODevice::init ( ) | 269 | void ODevice::init ( ) |
270 | { | 270 | { |
271 | // Simulation uses iPAQ 3660 device buttons | 271 | // Simulation uses iPAQ 3660 device buttons |
272 | 272 | ||
273 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { | 273 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { |
274 | i_button *ib = ipaq_buttons + i; | 274 | i_button *ib = ipaq_buttons + i; |
275 | ODeviceButton b; | 275 | ODeviceButton b; |
276 | 276 | ||
277 | if (( ib-> model & Model_iPAQ_H36xx ) == Model_iPAQ_H36xx ) { | 277 | if (( ib-> model & Model_iPAQ_H36xx ) == Model_iPAQ_H36xx ) { |
278 | b. setKeycode ( ib-> code ); | 278 | b. setKeycode ( ib-> code ); |
279 | b. setUserText ( qApp-> translate ( "Button", ib-> utext )); | 279 | b. setUserText ( qApp-> translate ( "Button", ib-> utext )); |
280 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); | 280 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); |
281 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); | 281 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); |
282 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); | 282 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); |
283 | |||
284 | d-> m_buttons. append ( b ); | 283 | d-> m_buttons. append ( b ); |
285 | } | 284 | } |
286 | } | 285 | } |
287 | reloadButtonMapping ( ); | 286 | reloadButtonMapping ( ); |
288 | } | 287 | } |
289 | 288 | ||
290 | ODevice::~ODevice ( ) | 289 | ODevice::~ODevice ( ) |
291 | { | 290 | { |
292 | delete d; | 291 | delete d; |
293 | } | 292 | } |
294 | 293 | ||
295 | bool ODevice::setSoftSuspend ( bool /*soft*/ ) | 294 | bool ODevice::setSoftSuspend ( bool /*soft*/ ) |
296 | { | 295 | { |
297 | return false; | 296 | return false; |
298 | } | 297 | } |
299 | 298 | ||
300 | //#include <linux/apm_bios.h> | 299 | //#include <linux/apm_bios.h> |
301 | 300 | ||
302 | #define APM_IOC_SUSPEND OD_IO( 'A', 2 ) | 301 | #define APM_IOC_SUSPEND OD_IO( 'A', 2 ) |
303 | 302 | ||
304 | 303 | ||
305 | bool ODevice::suspend ( ) | 304 | bool ODevice::suspend ( ) |
306 | { | 305 | { |
307 | if ( !d-> m_qwsserver ) // only qwsserver is allowed to suspend | 306 | if ( !d-> m_qwsserver ) // only qwsserver is allowed to suspend |
308 | return false; | 307 | return false; |
309 | 308 | ||
310 | if ( d-> m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices | 309 | if ( d-> m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices |
311 | return false; | 310 | return false; |
312 | 311 | ||
313 | bool res = false; | 312 | bool res = false; |
314 | 313 | ||
315 | struct timeval tvs, tvn; | 314 | struct timeval tvs, tvn; |
@@ -487,95 +486,101 @@ uint ODevice::buttonHoldTime ( ) const | |||
487 | 486 | ||
488 | const ODeviceButton *ODevice::buttonForKeycode ( ushort code ) | 487 | const ODeviceButton *ODevice::buttonForKeycode ( ushort code ) |
489 | { | 488 | { |
490 | for ( QValueListConstIterator<ODeviceButton> it = d-> m_buttons. begin ( ); it != d-> m_buttons. end ( ); ++it ) { | 489 | for ( QValueListConstIterator<ODeviceButton> it = d-> m_buttons. begin ( ); it != d-> m_buttons. end ( ); ++it ) { |
491 | if ( (*it). keycode ( ) == code ) | 490 | if ( (*it). keycode ( ) == code ) |
492 | return &(*it); | 491 | return &(*it); |
493 | } | 492 | } |
494 | return 0; | 493 | return 0; |
495 | } | 494 | } |
496 | 495 | ||
497 | void ODevice::reloadButtonMapping ( ) | 496 | void ODevice::reloadButtonMapping ( ) |
498 | { | 497 | { |
499 | Config cfg ( "ButtonSettings" ); | 498 | Config cfg ( "ButtonSettings" ); |
500 | 499 | ||
501 | for ( uint i = 0; i < d-> m_buttons. count ( ); i++ ) { | 500 | for ( uint i = 0; i < d-> m_buttons. count ( ); i++ ) { |
502 | ODeviceButton &b = d-> m_buttons [i]; | 501 | ODeviceButton &b = d-> m_buttons [i]; |
503 | QString group = "Button" + QString::number ( i ); | 502 | QString group = "Button" + QString::number ( i ); |
504 | 503 | ||
505 | QCString pch, hch; | 504 | QCString pch, hch; |
506 | QCString pm, hm; | 505 | QCString pm, hm; |
507 | QByteArray pdata, hdata; | 506 | QByteArray pdata, hdata; |
508 | 507 | ||
509 | if ( cfg. hasGroup ( group )) { | 508 | if ( cfg. hasGroup ( group )) { |
510 | cfg. setGroup ( group ); | 509 | cfg. setGroup ( group ); |
511 | pch = cfg. readEntry ( "PressedActionChannel" ). latin1 ( ); | 510 | pch = cfg. readEntry ( "PressedActionChannel" ). latin1 ( ); |
512 | pm = cfg. readEntry ( "PressedActionMessage" ). latin1 ( ); | 511 | pm = cfg. readEntry ( "PressedActionMessage" ). latin1 ( ); |
513 | // pdata = decodeBase64 ( buttonFile. readEntry ( "PressedActionArgs" )); | 512 | // pdata = decodeBase64 ( buttonFile. readEntry ( "PressedActionArgs" )); |
514 | 513 | ||
515 | hch = cfg. readEntry ( "HeldActionChannel" ). latin1 ( ); | 514 | hch = cfg. readEntry ( "HeldActionChannel" ). latin1 ( ); |
516 | hm = cfg. readEntry ( "HeldActionMessage" ). latin1 ( ); | 515 | hm = cfg. readEntry ( "HeldActionMessage" ). latin1 ( ); |
517 | // hdata = decodeBase64 ( buttonFile. readEntry ( "HeldActionArgs" )); | 516 | // hdata = decodeBase64 ( buttonFile. readEntry ( "HeldActionArgs" )); |
518 | } | 517 | } |
519 | 518 | ||
520 | b. setPressedAction ( OQCopMessage ( pch, pm, pdata )); | 519 | b. setPressedAction ( OQCopMessage ( pch, pm, pdata )); |
520 | |||
521 | b. setHeldAction ( OQCopMessage ( hch, hm, hdata )); | 521 | b. setHeldAction ( OQCopMessage ( hch, hm, hdata )); |
522 | } | 522 | } |
523 | } | 523 | } |
524 | 524 | ||
525 | void ODevice::remapPressedAction ( int button, const OQCopMessage &action ) | 525 | void ODevice::remapPressedAction ( int button, const OQCopMessage &action ) |
526 | { | 526 | { |
527 | QString mb_chan; | ||
528 | |||
527 | if ( button >= (int) d-> m_buttons. count ( )) | 529 | if ( button >= (int) d-> m_buttons. count ( )) |
528 | return; | 530 | return; |
531 | |||
529 | 532 | ||
530 | ODeviceButton &b = d-> m_buttons [button]; | 533 | ODeviceButton &b = d-> m_buttons [button]; |
531 | b. setPressedAction ( action ); | 534 | b. setPressedAction ( action ); |
535 | |||
536 | mb_chan=b. pressedAction ( ). channel ( ); | ||
532 | 537 | ||
533 | Config buttonFile ( "ButtonSettings" ); | 538 | Config buttonFile ( "ButtonSettings" ); |
534 | buttonFile. setGroup ( "Button" + QString::number ( button )); | 539 | buttonFile. setGroup ( "Button" + QString::number ( button )); |
535 | buttonFile. writeEntry ( "PressedActionChannel", (const char*) b. pressedAction ( ). channel ( )); | 540 | buttonFile. writeEntry ( "PressedActionChannel", (const char*) mb_chan); |
536 | buttonFile. writeEntry ( "PressedActionMessage", (const char*) b. pressedAction ( ). message ( )); | 541 | buttonFile. writeEntry ( "PressedActionMessage", (const char*) b. pressedAction ( ). message ( )); |
537 | 542 | ||
538 | //buttonFile. writeEntry ( "PressedActionArgs", encodeBase64 ( b. pressedAction ( ). data ( ))); | 543 | //buttonFile. writeEntry ( "PressedActionArgs", encodeBase64 ( b. pressedAction ( ). data ( ))); |
539 | 544 | ||
540 | QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); | 545 | QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); |
541 | } | 546 | } |
542 | 547 | ||
543 | void ODevice::remapHeldAction ( int button, const OQCopMessage &action ) | 548 | void ODevice::remapHeldAction ( int button, const OQCopMessage &action ) |
544 | { | 549 | { |
545 | if ( button >= (int) d-> m_buttons. count ( )) | 550 | if ( button >= (int) d-> m_buttons. count ( )) |
546 | return; | 551 | return; |
547 | 552 | ||
548 | ODeviceButton &b = d-> m_buttons [button]; | 553 | ODeviceButton &b = d-> m_buttons [button]; |
549 | b. setHeldAction ( action ); | 554 | b. setHeldAction ( action ); |
550 | 555 | ||
551 | Config buttonFile ( "ButtonSettings" ); | 556 | Config buttonFile ( "ButtonSettings" ); |
552 | buttonFile. setGroup ( "Button" + QString::number ( button )); | 557 | buttonFile. setGroup ( "Button" + QString::number ( button )); |
553 | buttonFile. writeEntry ( "HeldActionChannel", (const char *) b. heldAction ( ). channel ( )); | 558 | buttonFile. writeEntry ( "HeldActionChannel", (const char *) b. heldAction ( ). channel ( )); |
554 | buttonFile. writeEntry ( "HeldActionMessage", (const char *) b. heldAction ( ). message ( )); | 559 | buttonFile. writeEntry ( "HeldActionMessage", (const char *) b. heldAction ( ). message ( )); |
555 | 560 | ||
556 | //buttonFile. writeEntry ( "HeldActionArgs", decodeBase64 ( b. heldAction ( ). data ( ))); | 561 | //buttonFile. writeEntry ( "HeldActionArgs", decodeBase64 ( b. heldAction ( ). data ( ))); |
557 | 562 | ||
558 | QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); | 563 | QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); |
559 | } | 564 | } |
560 | 565 | ||
561 | 566 | ||
562 | 567 | ||
563 | 568 | ||
564 | /************************************************** | 569 | /************************************************** |
565 | * | 570 | * |
566 | * iPAQ | 571 | * iPAQ |
567 | * | 572 | * |
568 | **************************************************/ | 573 | **************************************************/ |
569 | 574 | ||
570 | void iPAQ::init ( ) | 575 | void iPAQ::init ( ) |
571 | { | 576 | { |
572 | d-> m_vendorstr = "HP"; | 577 | d-> m_vendorstr = "HP"; |
573 | d-> m_vendor = Vendor_HP; | 578 | d-> m_vendor = Vendor_HP; |
574 | 579 | ||
575 | QFile f ( "/proc/hal/model" ); | 580 | QFile f ( "/proc/hal/model" ); |
576 | 581 | ||
577 | if ( f. open ( IO_ReadOnly )) { | 582 | if ( f. open ( IO_ReadOnly )) { |
578 | QTextStream ts ( &f ); | 583 | QTextStream ts ( &f ); |
579 | 584 | ||
580 | d-> m_modelstr = "H" + ts. readLine ( ); | 585 | d-> m_modelstr = "H" + ts. readLine ( ); |
581 | 586 | ||
diff --git a/libopie/odevicebutton.cpp b/libopie/odevicebutton.cpp index 2270343..4b22358 100644 --- a/libopie/odevicebutton.cpp +++ b/libopie/odevicebutton.cpp | |||
@@ -41,65 +41,65 @@ OQCopMessage::OQCopMessage ( ) | |||
41 | init ( QCString ( ), QCString ( ), QByteArray ( )); | 41 | init ( QCString ( ), QCString ( ), QByteArray ( )); |
42 | } | 42 | } |
43 | 43 | ||
44 | OQCopMessage::OQCopMessage ( const OQCopMessage © ) | 44 | OQCopMessage::OQCopMessage ( const OQCopMessage © ) |
45 | : d ( 0 ) | 45 | : d ( 0 ) |
46 | { | 46 | { |
47 | init ( copy. channel ( ), copy. message ( ), copy. data ( )); | 47 | init ( copy. channel ( ), copy. message ( ), copy. data ( )); |
48 | } | 48 | } |
49 | 49 | ||
50 | OQCopMessage &OQCopMessage::operator = ( const OQCopMessage &assign ) | 50 | OQCopMessage &OQCopMessage::operator = ( const OQCopMessage &assign ) |
51 | { | 51 | { |
52 | init ( assign. channel ( ), assign. message ( ), assign. data ( )); | 52 | init ( assign. channel ( ), assign. message ( ), assign. data ( )); |
53 | return *this; | 53 | return *this; |
54 | } | 54 | } |
55 | 55 | ||
56 | OQCopMessage::OQCopMessage ( const QCString &ch, const QCString &m, const QByteArray &arg ) | 56 | OQCopMessage::OQCopMessage ( const QCString &ch, const QCString &m, const QByteArray &arg ) |
57 | : d ( 0 ) | 57 | : d ( 0 ) |
58 | { | 58 | { |
59 | init ( ch, m, arg ); | 59 | init ( ch, m, arg ); |
60 | } | 60 | } |
61 | 61 | ||
62 | void OQCopMessage::init ( const QCString &ch, const QCString &m, const QByteArray &arg ) | 62 | void OQCopMessage::init ( const QCString &ch, const QCString &m, const QByteArray &arg ) |
63 | { | 63 | { |
64 | if ( !d ) | 64 | if ( !d ) |
65 | d = new OQCopMessageData ( ); | 65 | d = new OQCopMessageData ( ); |
66 | d-> m_channel = ch; | 66 | d-> m_channel = ch; |
67 | d-> m_message = m; | 67 | d-> m_message = m; |
68 | d-> m_data = arg; | 68 | d-> m_data = arg; |
69 | } | 69 | } |
70 | 70 | ||
71 | bool OQCopMessage::send ( ) | 71 | bool OQCopMessage::send ( ) |
72 | { | 72 | { |
73 | if ( d-> m_channel. isEmpty ( ) || d-> m_message. isEmpty ( )) | 73 | if ( d-> m_channel. isEmpty ( ) || d-> m_message. isEmpty ( ) ) |
74 | return false; | 74 | return false; |
75 | 75 | ||
76 | QCopEnvelope e ( d-> m_channel, d-> m_message ); | 76 | QCopEnvelope e ( d-> m_channel, d-> m_message ); |
77 | 77 | ||
78 | if ( d-> m_data. size ( )) | 78 | if ( d-> m_data. size ( )) |
79 | e. writeRawBytes ( d-> m_data. data ( ), d-> m_data. size ( )); | 79 | e. writeRawBytes ( d-> m_data. data ( ), d-> m_data. size ( )); |
80 | 80 | ||
81 | return true; | 81 | return true; |
82 | } | 82 | } |
83 | 83 | ||
84 | QCString OQCopMessage::channel ( ) const | 84 | QCString OQCopMessage::channel ( ) const |
85 | { | 85 | { |
86 | return d-> m_channel; | 86 | return d-> m_channel; |
87 | } | 87 | } |
88 | 88 | ||
89 | QCString OQCopMessage::message ( ) const | 89 | QCString OQCopMessage::message ( ) const |
90 | { | 90 | { |
91 | return d-> m_message; | 91 | return d-> m_message; |
92 | } | 92 | } |
93 | 93 | ||
94 | QByteArray OQCopMessage::data ( ) const | 94 | QByteArray OQCopMessage::data ( ) const |
95 | { | 95 | { |
96 | return d-> m_data; | 96 | return d-> m_data; |
97 | } | 97 | } |
98 | 98 | ||
99 | void OQCopMessage::setChannel ( const QCString &ch ) | 99 | void OQCopMessage::setChannel ( const QCString &ch ) |
100 | { | 100 | { |
101 | d-> m_channel = ch; | 101 | d-> m_channel = ch; |
102 | } | 102 | } |
103 | 103 | ||
104 | void OQCopMessage::setMessage ( const QCString &m ) | 104 | void OQCopMessage::setMessage ( const QCString &m ) |
105 | { | 105 | { |
@@ -189,46 +189,47 @@ OQCopMessage ODeviceButton::factoryPresetHeldAction() const | |||
189 | 189 | ||
190 | /*! | 190 | /*! |
191 | This function returns the user assigned action for when this button is pressed | 191 | This function returns the user assigned action for when this button is pressed |
192 | and held. If no action is assigned, factoryPresetAction() is returned. | 192 | and held. If no action is assigned, factoryPresetAction() is returned. |
193 | */ | 193 | */ |
194 | OQCopMessage ODeviceButton::heldAction() const | 194 | OQCopMessage ODeviceButton::heldAction() const |
195 | { | 195 | { |
196 | if (m_HeldAction.channel().isEmpty()) | 196 | if (m_HeldAction.channel().isEmpty()) |
197 | return factoryPresetHeldAction(); | 197 | return factoryPresetHeldAction(); |
198 | return m_HeldAction; | 198 | return m_HeldAction; |
199 | } | 199 | } |
200 | 200 | ||
201 | void ODeviceButton::setKeycode(ushort keycode) | 201 | void ODeviceButton::setKeycode(ushort keycode) |
202 | { | 202 | { |
203 | m_Keycode = keycode; | 203 | m_Keycode = keycode; |
204 | } | 204 | } |
205 | 205 | ||
206 | void ODeviceButton::setUserText(const QString& text) | 206 | void ODeviceButton::setUserText(const QString& text) |
207 | { | 207 | { |
208 | m_UserText = text; | 208 | m_UserText = text; |
209 | } | 209 | } |
210 | 210 | ||
211 | void ODeviceButton::setPixmap(const QPixmap& picture) | 211 | void ODeviceButton::setPixmap(const QPixmap& picture) |
212 | { | 212 | { |
213 | m_Pixmap = picture; | 213 | m_Pixmap = picture; |
214 | } | 214 | } |
215 | 215 | ||
216 | void ODeviceButton::setFactoryPresetPressedAction(const OQCopMessage& action) | 216 | void ODeviceButton::setFactoryPresetPressedAction(const OQCopMessage& action) |
217 | { | 217 | { |
218 | m_FactoryPresetPressedAction = action; | 218 | m_FactoryPresetPressedAction = action; |
219 | } | 219 | } |
220 | 220 | ||
221 | |||
221 | void ODeviceButton::setPressedAction(const OQCopMessage& action) | 222 | void ODeviceButton::setPressedAction(const OQCopMessage& action) |
222 | { | 223 | { |
223 | m_PressedAction = action; | 224 | m_PressedAction = action; |
224 | } | 225 | } |
225 | 226 | ||
226 | void ODeviceButton::setFactoryPresetHeldAction(const OQCopMessage& action) | 227 | void ODeviceButton::setFactoryPresetHeldAction(const OQCopMessage& action) |
227 | { | 228 | { |
228 | m_FactoryPresetHeldAction = action; | 229 | m_FactoryPresetHeldAction = action; |
229 | } | 230 | } |
230 | 231 | ||
231 | void ODeviceButton::setHeldAction(const OQCopMessage& action) | 232 | void ODeviceButton::setHeldAction(const OQCopMessage& action) |
232 | { | 233 | { |
233 | m_HeldAction = action; | 234 | m_HeldAction = action; |
234 | } | 235 | } |