summaryrefslogtreecommitdiff
authorchicken <chicken>2003-10-22 19:22:35 (UTC)
committer chicken <chicken>2003-10-22 19:22:35 (UTC)
commita61c014e1fb43e36aa7454ce4b3cb9a7a706c6fa (patch) (unidiff)
treeea7707de2b221b08ca274ff69555323568118c04
parent3e9d8077999bd928b7103bd19f7b41f305c573d9 (diff)
downloadopie-a61c014e1fb43e36aa7454ce4b3cb9a7a706c6fa.zip
opie-a61c014e1fb43e36aa7454ce4b3cb9a7a706c6fa.tar.gz
opie-a61c014e1fb43e36aa7454ce4b3cb9a7a706c6fa.tar.bz2
improved Jornada 56X support
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp128
-rw-r--r--libopie/odevice.h3
2 files changed, 130 insertions, 1 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index aadd0bf..8624016 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -61,96 +61,108 @@ public:
61 61
62 QString m_modelstr; 62 QString m_modelstr;
63 OModel m_model; 63 OModel m_model;
64 64
65 QString m_systemstr; 65 QString m_systemstr;
66 OSystem m_system; 66 OSystem m_system;
67 67
68 QString m_sysverstr; 68 QString m_sysverstr;
69 69
70 Transformation m_rotation; 70 Transformation m_rotation;
71 ODirection m_direction; 71 ODirection m_direction;
72 72
73 QValueList <ODeviceButton> *m_buttons; 73 QValueList <ODeviceButton> *m_buttons;
74 uint m_holdtime; 74 uint m_holdtime;
75 QStrList *m_cpu_frequencies; 75 QStrList *m_cpu_frequencies;
76}; 76};
77 77
78class iPAQ : public ODevice, public QWSServer::KeyboardFilter { 78class iPAQ : public ODevice, public QWSServer::KeyboardFilter {
79protected: 79protected:
80 virtual void init ( ); 80 virtual void init ( );
81 virtual void initButtons ( ); 81 virtual void initButtons ( );
82 82
83public: 83public:
84 virtual bool setSoftSuspend ( bool soft ); 84 virtual bool setSoftSuspend ( bool soft );
85 85
86 virtual bool setDisplayBrightness ( int b ); 86 virtual bool setDisplayBrightness ( int b );
87 virtual int displayBrightnessResolution ( ) const; 87 virtual int displayBrightnessResolution ( ) const;
88 88
89 virtual void alarmSound ( ); 89 virtual void alarmSound ( );
90 90
91 virtual QValueList <OLed> ledList ( ) const; 91 virtual QValueList <OLed> ledList ( ) const;
92 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 92 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
93 virtual OLedState ledState ( OLed led ) const; 93 virtual OLedState ledState ( OLed led ) const;
94 virtual bool setLedState ( OLed led, OLedState st ); 94 virtual bool setLedState ( OLed led, OLedState st );
95 95
96 virtual bool hasLightSensor ( ) const; 96 virtual bool hasLightSensor ( ) const;
97 virtual int readLightSensor ( ); 97 virtual int readLightSensor ( );
98 virtual int lightSensorResolution ( ) const; 98 virtual int lightSensorResolution ( ) const;
99 99
100protected: 100protected:
101 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); 101 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat );
102 virtual void timerEvent ( QTimerEvent *te ); 102 virtual void timerEvent ( QTimerEvent *te );
103 103
104 int m_power_timer; 104 int m_power_timer;
105 105
106 OLedState m_leds [2]; 106 OLedState m_leds [2];
107}; 107};
108 108
109class Jornada : public ODevice {
110protected:
111 virtual void init ( );
112 virtual void initButtons ( );
113public:
114 virtual bool setSoftSuspend ( bool soft );
115 virtual bool setDisplayBrightness ( int b );
116 virtual int displayBrightnessResolution ( ) const;
117 static bool isJornada();
118
119};
120
109class Zaurus : public ODevice { 121class Zaurus : public ODevice {
110protected: 122protected:
111 virtual void init ( ); 123 virtual void init ( );
112 virtual void initButtons ( ); 124 virtual void initButtons ( );
113 125
114public: 126public:
115 virtual bool setSoftSuspend ( bool soft ); 127 virtual bool setSoftSuspend ( bool soft );
116 128
117 virtual bool setDisplayBrightness ( int b ); 129 virtual bool setDisplayBrightness ( int b );
118 virtual int displayBrightnessResolution ( ) const; 130 virtual int displayBrightnessResolution ( ) const;
119 131
120 virtual void alarmSound ( ); 132 virtual void alarmSound ( );
121 virtual void keySound ( ); 133 virtual void keySound ( );
122 virtual void touchSound ( ); 134 virtual void touchSound ( );
123 135
124 virtual QValueList <OLed> ledList ( ) const; 136 virtual QValueList <OLed> ledList ( ) const;
125 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 137 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
126 virtual OLedState ledState ( OLed led ) const; 138 virtual OLedState ledState ( OLed led ) const;
127 virtual bool setLedState ( OLed led, OLedState st ); 139 virtual bool setLedState ( OLed led, OLedState st );
128 140
129 static bool isZaurus(); 141 static bool isZaurus();
130 142
131protected: 143protected:
132 virtual void buzzer ( int snd ); 144 virtual void buzzer ( int snd );
133 145
134 OLedState m_leds [1]; 146 OLedState m_leds [1];
135 bool m_embedix; 147 bool m_embedix;
136}; 148};
137 149
138class SIMpad : public ODevice, public QWSServer::KeyboardFilter { 150class SIMpad : public ODevice, public QWSServer::KeyboardFilter {
139protected: 151protected:
140 virtual void init ( ); 152 virtual void init ( );
141 virtual void initButtons ( ); 153 virtual void initButtons ( );
142 154
143public: 155public:
144 virtual bool setSoftSuspend ( bool soft ); 156 virtual bool setSoftSuspend ( bool soft );
145 virtual bool suspend(); 157 virtual bool suspend();
146 158
147 virtual bool setDisplayStatus( bool on ); 159 virtual bool setDisplayStatus( bool on );
148 virtual bool setDisplayBrightness ( int b ); 160 virtual bool setDisplayBrightness ( int b );
149 virtual int displayBrightnessResolution ( ) const; 161 virtual int displayBrightnessResolution ( ) const;
150 162
151 virtual void alarmSound ( ); 163 virtual void alarmSound ( );
152 164
153 virtual QValueList <OLed> ledList ( ) const; 165 virtual QValueList <OLed> ledList ( ) const;
154 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 166 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
155 virtual OLedState ledState ( OLed led ) const; 167 virtual OLedState ledState ( OLed led ) const;
156 virtual bool setLedState ( OLed led, OLedState st ); 168 virtual bool setLedState ( OLed led, OLedState st );
@@ -388,96 +400,98 @@ struct yopy_button {
388 char *pix; 400 char *pix;
389 char *fpressedservice; 401 char *fpressedservice;
390 char *fpressedaction; 402 char *fpressedaction;
391 char *fheldservice; 403 char *fheldservice;
392 char *fheldaction; 404 char *fheldaction;
393} yopy_buttons [] = { 405} yopy_buttons [] = {
394 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Action Button"), 406 { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Action Button"),
395 "devicebuttons/yopy_action", 407 "devicebuttons/yopy_action",
396 "datebook", "nextView()", 408 "datebook", "nextView()",
397 "today", "raise()" }, 409 "today", "raise()" },
398 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "OK Button"), 410 { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "OK Button"),
399 "devicebuttons/yopy_ok", 411 "devicebuttons/yopy_ok",
400 "addressbook", "raise()", 412 "addressbook", "raise()",
401 "addressbook", "beamBusinessCard()" }, 413 "addressbook", "beamBusinessCard()" },
402 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "End Button"), 414 { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "End Button"),
403 "devicebuttons/yopy_end", 415 "devicebuttons/yopy_end",
404 "QPE/Launcher", "home()", 416 "QPE/Launcher", "home()",
405 "buttonsettings", "raise()" }, 417 "buttonsettings", "raise()" },
406}; 418};
407 419
408static QCString makeChannel ( const char *str ) 420static QCString makeChannel ( const char *str )
409{ 421{
410 if ( str && !::strchr ( str, '/' )) 422 if ( str && !::strchr ( str, '/' ))
411 return QCString ( "QPE/Application/" ) + str; 423 return QCString ( "QPE/Application/" ) + str;
412 else 424 else
413 return str; 425 return str;
414} 426}
415 427
416static inline bool isQWS() 428static inline bool isQWS()
417{ 429{
418 return qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; 430 return qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
419} 431}
420 432
421ODevice *ODevice::inst ( ) 433ODevice *ODevice::inst ( )
422{ 434{
423 static ODevice *dev = 0; 435 static ODevice *dev = 0;
424 436
425 if ( !dev ) { 437 if ( !dev ) {
426 if ( QFile::exists ( "/proc/hal/model" )) 438 if ( QFile::exists ( "/proc/hal/model" ))
427 dev = new iPAQ ( ); 439 dev = new iPAQ ( );
428 else if ( Zaurus::isZaurus() ) 440 else if ( Zaurus::isZaurus() )
429 dev = new Zaurus ( ); 441 dev = new Zaurus ( );
430 else if ( QFile::exists ( "/proc/ucb1x00" ) && QFile::exists ( "/proc/cs3" )) 442 else if ( QFile::exists ( "/proc/ucb1x00" ) && QFile::exists ( "/proc/cs3" ))
431 dev = new SIMpad ( ); 443 dev = new SIMpad ( );
432 else if ( QFile::exists ( "/proc/sys/board/name" )) 444 else if ( QFile::exists ( "/proc/sys/board/name" ))
433 dev = new Ramses ( ); 445 dev = new Ramses ( );
434 else if ( Yopy::isYopy() ) 446 else if ( Yopy::isYopy() )
435 dev = new Yopy ( ); 447 dev = new Yopy ( );
448 else if ( Jornada::isJornada() )
449 dev = new Jornada ( );
436 else 450 else
437 dev = new ODevice ( ); 451 dev = new ODevice ( );
438 dev-> init ( ); 452 dev-> init ( );
439 } 453 }
440 return dev; 454 return dev;
441} 455}
442 456
443 457
444/************************************************** 458/**************************************************
445 * 459 *
446 * common 460 * common
447 * 461 *
448 **************************************************/ 462 **************************************************/
449 463
450 464
451ODevice::ODevice ( ) 465ODevice::ODevice ( )
452{ 466{
453 d = new ODeviceData; 467 d = new ODeviceData;
454 468
455 d-> m_modelstr = "Unknown"; 469 d-> m_modelstr = "Unknown";
456 d-> m_model = Model_Unknown; 470 d-> m_model = Model_Unknown;
457 d-> m_vendorstr = "Unknown"; 471 d-> m_vendorstr = "Unknown";
458 d-> m_vendor = Vendor_Unknown; 472 d-> m_vendor = Vendor_Unknown;
459 d-> m_systemstr = "Unknown"; 473 d-> m_systemstr = "Unknown";
460 d-> m_system = System_Unknown; 474 d-> m_system = System_Unknown;
461 d-> m_sysverstr = "0.0"; 475 d-> m_sysverstr = "0.0";
462 d-> m_rotation = Rot0; 476 d-> m_rotation = Rot0;
463 d-> m_direction = CW; 477 d-> m_direction = CW;
464 478
465 d-> m_holdtime = 1000; // 1000ms 479 d-> m_holdtime = 1000; // 1000ms
466 d-> m_buttons = 0; 480 d-> m_buttons = 0;
467 d-> m_cpu_frequencies = new QStrList; 481 d-> m_cpu_frequencies = new QStrList;
468} 482}
469 483
470void ODevice::systemMessage ( const QCString &msg, const QByteArray & ) 484void ODevice::systemMessage ( const QCString &msg, const QByteArray & )
471{ 485{
472 if ( msg == "deviceButtonMappingChanged()" ) { 486 if ( msg == "deviceButtonMappingChanged()" ) {
473 reloadButtonMapping ( ); 487 reloadButtonMapping ( );
474 } 488 }
475} 489}
476 490
477void ODevice::init ( ) 491void ODevice::init ( )
478{ 492{
479} 493}
480 494
481/** 495/**
482 * This method initialises the button mapping 496 * This method initialises the button mapping
483 */ 497 */
@@ -938,97 +952,97 @@ void ODevice::remapPressedAction ( int button, const OQCopMessage &action )
938 buttonFile. setGroup ( "Button" + QString::number ( button )); 952 buttonFile. setGroup ( "Button" + QString::number ( button ));
939 buttonFile. writeEntry ( "PressedActionChannel", (const char*) mb_chan); 953 buttonFile. writeEntry ( "PressedActionChannel", (const char*) mb_chan);
940 buttonFile. writeEntry ( "PressedActionMessage", (const char*) b. pressedAction ( ). message ( )); 954 buttonFile. writeEntry ( "PressedActionMessage", (const char*) b. pressedAction ( ). message ( ));
941 955
942 //buttonFile. writeEntry ( "PressedActionArgs", encodeBase64 ( b. pressedAction ( ). data ( ))); 956 //buttonFile. writeEntry ( "PressedActionArgs", encodeBase64 ( b. pressedAction ( ). data ( )));
943 957
944 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); 958 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" );
945} 959}
946 960
947void ODevice::remapHeldAction ( int button, const OQCopMessage &action ) 961void ODevice::remapHeldAction ( int button, const OQCopMessage &action )
948{ 962{
949 initButtons ( ); 963 initButtons ( );
950 964
951 if ( button >= (int) d-> m_buttons-> count ( )) 965 if ( button >= (int) d-> m_buttons-> count ( ))
952 return; 966 return;
953 967
954 ODeviceButton &b = ( *d-> m_buttons ) [button]; 968 ODeviceButton &b = ( *d-> m_buttons ) [button];
955 b. setHeldAction ( action ); 969 b. setHeldAction ( action );
956 970
957 Config buttonFile ( "ButtonSettings" ); 971 Config buttonFile ( "ButtonSettings" );
958 buttonFile. setGroup ( "Button" + QString::number ( button )); 972 buttonFile. setGroup ( "Button" + QString::number ( button ));
959 buttonFile. writeEntry ( "HeldActionChannel", (const char *) b. heldAction ( ). channel ( )); 973 buttonFile. writeEntry ( "HeldActionChannel", (const char *) b. heldAction ( ). channel ( ));
960 buttonFile. writeEntry ( "HeldActionMessage", (const char *) b. heldAction ( ). message ( )); 974 buttonFile. writeEntry ( "HeldActionMessage", (const char *) b. heldAction ( ). message ( ));
961 975
962 //buttonFile. writeEntry ( "HeldActionArgs", decodeBase64 ( b. heldAction ( ). data ( ))); 976 //buttonFile. writeEntry ( "HeldActionArgs", decodeBase64 ( b. heldAction ( ). data ( )));
963 977
964 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); 978 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" );
965} 979}
966void ODevice::virtual_hook(int, void* ){ 980void ODevice::virtual_hook(int, void* ){
967 981
968} 982}
969 983
970/************************************************** 984/**************************************************
971 * 985 *
972 * Yopy 3500/3700 986 * Yopy 3500/3700
973 * 987 *
974 **************************************************/ 988 **************************************************/
975 989
976bool Yopy::isYopy ( ) 990bool Yopy::isYopy ( )
977{ 991{
978 QFile f( "/proc/cpuinfo" ); 992 QFile f( "/proc/cpuinfo" );
979 if ( f. open ( IO_ReadOnly ) ) { 993 if ( f. open ( IO_ReadOnly ) ) {
980 QTextStream ts ( &f ); 994 QTextStream ts ( &f );
981 QString line; 995 QString line;
982 while( line = ts. readLine ( ) ) { 996 while( line = ts. readLine ( ) ) {
983 if ( line. left ( 8 ) == "Hardware" ) { 997 if ( line. left ( 8 ) == "Hardware" ) {
984 int loc = line. find ( ":" ); 998 int loc = line. find ( ":" );
985 if ( loc != -1 ) { 999 if ( loc != -1 ) {
986 QString model = 1000 QString model =
987 line. mid ( loc + 2 ). simplifyWhiteSpace( ); 1001 line. mid ( loc + 2 ). simplifyWhiteSpace( );
988 return ( model == "Yopy" ); 1002 return ( model == "Yopy" );
989 } 1003 }
990 } 1004 }
991 } 1005 }
992 } 1006 }
993 return false; 1007 return false;
994} 1008}
995 1009
996void Yopy::init ( ) 1010void Yopy::init ( )
997{ 1011{
998 d-> m_vendorstr = "G.Mate"; 1012 d-> m_vendorstr = "G.Mate";
999 d-> m_vendor = Vendor_GMate; 1013 d-> m_vendor = Vendor_GMate;
1000 d-> m_modelstr = "Yopy3700"; 1014 d-> m_modelstr = "Yopy3700";
1001 d-> m_model = Model_Yopy_3700; 1015 d-> m_model = Model_Yopy_3700;
1002 d-> m_rotation = Rot0; 1016 d-> m_rotation = Rot0;
1003 1017
1004 d-> m_systemstr = "Linupy"; 1018 d-> m_systemstr = "Linupy";
1005 d-> m_system = System_Linupy; 1019 d-> m_system = System_Linupy;
1006 1020
1007 QFile f ( "/etc/issue" ); 1021 QFile f ( "/etc/issue" );
1008 if ( f. open ( IO_ReadOnly )) { 1022 if ( f. open ( IO_ReadOnly )) {
1009 QTextStream ts ( &f ); 1023 QTextStream ts ( &f );
1010 ts.readLine(); 1024 ts.readLine();
1011 d-> m_sysverstr = ts. readLine ( ); 1025 d-> m_sysverstr = ts. readLine ( );
1012 f. close ( ); 1026 f. close ( );
1013 } 1027 }
1014} 1028}
1015 1029
1016void Yopy::initButtons ( ) 1030void Yopy::initButtons ( )
1017{ 1031{
1018 if ( d-> m_buttons ) 1032 if ( d-> m_buttons )
1019 return; 1033 return;
1020 1034
1021 d-> m_buttons = new QValueList <ODeviceButton>; 1035 d-> m_buttons = new QValueList <ODeviceButton>;
1022 1036
1023 for (uint i = 0; i < ( sizeof( yopy_buttons ) / sizeof(yopy_button)); i++) { 1037 for (uint i = 0; i < ( sizeof( yopy_buttons ) / sizeof(yopy_button)); i++) {
1024 1038
1025 yopy_button *ib = yopy_buttons + i; 1039 yopy_button *ib = yopy_buttons + i;
1026 1040
1027 ODeviceButton b; 1041 ODeviceButton b;
1028 1042
1029 b. setKeycode ( ib-> code ); 1043 b. setKeycode ( ib-> code );
1030 b. setUserText ( QObject::tr ( "Button", ib-> utext )); 1044 b. setUserText ( QObject::tr ( "Button", ib-> utext ));
1031 b. setPixmap ( Resource::loadPixmap ( ib-> pix )); 1045 b. setPixmap ( Resource::loadPixmap ( ib-> pix ));
1032 b. setFactoryPresetPressedAction 1046 b. setFactoryPresetPressedAction
1033 (OQCopMessage(makeChannel(ib->fpressedservice), ib->fpressedaction)); 1047 (OQCopMessage(makeChannel(ib->fpressedservice), ib->fpressedaction));
1034 b. setFactoryPresetHeldAction 1048 b. setFactoryPresetHeldAction
@@ -2407,48 +2421,160 @@ bool Ramses::setDisplayBrightness(int bright)
2407 // scale backlight brightness to hardware 2421 // scale backlight brightness to hardware
2408 bright = 500-(bright * 500 / 255); 2422 bright = 500-(bright * 500 / 255);
2409 if ((fd = ::open("/proc/sys/board/pwm1", O_WRONLY)) >= 0) { 2423 if ((fd = ::open("/proc/sys/board/pwm1", O_WRONLY)) >= 0) {
2410 qDebug(" %d -> pwm1", bright); 2424 qDebug(" %d -> pwm1", bright);
2411 char writeCommand[100]; 2425 char writeCommand[100];
2412 const int count = sprintf(writeCommand, "%d\n", bright); 2426 const int count = sprintf(writeCommand, "%d\n", bright);
2413 res = (::write(fd, writeCommand, count) != -1); 2427 res = (::write(fd, writeCommand, count) != -1);
2414 ::close(fd); 2428 ::close(fd);
2415 } 2429 }
2416 return res; 2430 return res;
2417} 2431}
2418 2432
2419 2433
2420int Ramses::displayBrightnessResolution() const 2434int Ramses::displayBrightnessResolution() const
2421{ 2435{
2422 return 32; 2436 return 32;
2423} 2437}
2424 2438
2425bool Ramses::setDisplayContrast(int contr) 2439bool Ramses::setDisplayContrast(int contr)
2426{ 2440{
2427 qDebug("Ramses::setDisplayContrast(%d)", contr); 2441 qDebug("Ramses::setDisplayContrast(%d)", contr);
2428 bool res = false; 2442 bool res = false;
2429 int fd; 2443 int fd;
2430 2444
2431 // pwm0 contrast: 20 steps 79..90 (dunkel->hell) 2445 // pwm0 contrast: 20 steps 79..90 (dunkel->hell)
2432 2446
2433 if (contr > 255 ) 2447 if (contr > 255 )
2434 contr = 255; 2448 contr = 255;
2435 if (contr < 0) 2449 if (contr < 0)
2436 contr = 0; 2450 contr = 0;
2437 contr = 90 - (contr * 20 / 255); 2451 contr = 90 - (contr * 20 / 255);
2438 2452
2439 if ((fd = ::open("/proc/sys/board/pwm0", O_WRONLY)) >= 0) { 2453 if ((fd = ::open("/proc/sys/board/pwm0", O_WRONLY)) >= 0) {
2440 qDebug(" %d -> pwm0", contr); 2454 qDebug(" %d -> pwm0", contr);
2441 char writeCommand[100]; 2455 char writeCommand[100];
2442 const int count = sprintf(writeCommand, "%d\n", contr); 2456 const int count = sprintf(writeCommand, "%d\n", contr);
2443 res = (::write(fd, writeCommand, count) != -1); 2457 res = (::write(fd, writeCommand, count) != -1);
2444 res = true; 2458 res = true;
2445 ::close(fd); 2459 ::close(fd);
2446 } 2460 }
2447 return res; 2461 return res;
2448} 2462}
2449 2463
2450 2464
2451int Ramses::displayContrastResolution() const 2465int Ramses::displayContrastResolution() const
2452{ 2466{
2453 return 20; 2467 return 20;
2454} 2468}
2469
2470
2471/**************************************************
2472 * *
2473 * Jornada *
2474 * *
2475 **************************************************/
2476
2477
2478bool Jornada::isJornada ( )
2479{
2480 QFile f( "/proc/cpuinfo" );
2481 if ( f. open ( IO_ReadOnly ) ) {
2482 QTextStream ts ( &f );
2483 QString line;
2484 while( line = ts. readLine ( ) ) {
2485 if ( line. left ( 8 ) == "Hardware" ) {
2486 int loc = line. find ( ":" );
2487 if ( loc != -1 ) {
2488 QString model =
2489 line. mid ( loc + 2 ). simplifyWhiteSpace( );
2490 return ( model == "HP Jornada 56x" );
2491 }
2492 }
2493 }
2494 }
2495 return false;
2496}
2497
2498void Jornada::init ( )
2499{
2500 d-> m_vendorstr = "HP";
2501 d-> m_vendor = Vendor_HP;
2502 d-> m_modelstr = "Jornada 56x";
2503 d-> m_model = Model_Jornada_56x;
2504 d-> m_systemstr = "Familiar";
2505 d-> m_system = System_Familiar;
2506 d-> m_rotation = Rot0;
2507}
2508
2509void Jornada::initButtons ( )
2510{
2511 if ( d-> m_buttons )
2512 return;
2513
2514 // Simulation uses iPAQ 3660 device buttons
2515
2516 qDebug ( "init Buttons" );
2517 d-> m_buttons = new QValueList <ODeviceButton>;
2518
2519 for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) {
2520 i_button *ib = ipaq_buttons + i;
2521 ODeviceButton b;
2522
2523 if (( ib-> model & Model_iPAQ_H36xx ) == Model_iPAQ_H36xx ) {
2524 b. setKeycode ( ib-> code );
2525 b. setUserText ( QObject::tr ( "Button", ib-> utext ));
2526 b. setPixmap ( Resource::loadPixmap ( ib-> pix ));
2527 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction ));
2528 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction ));
2529 d-> m_buttons-> append ( b );
2530 }
2531 }
2532 reloadButtonMapping ( );
2533
2534 QCopChannel *sysch = new QCopChannel ( "QPE/System", this );
2535 connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & )));
2536}
2537
2538int Jornada::displayBrightnessResolution ( ) const
2539{
2540}
2541
2542bool Jornada::setDisplayBrightness ( int bright )
2543{
2544 bool res = false;
2545 int fd;
2546
2547 if ( bright > 255 )
2548 bright = 255;
2549 if ( bright < 0 )
2550 bright = 0;
2551
2552 if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) {
2553 FLITE_IN bl;
2554 bl. mode = 1;
2555 bl. pwr = bright ? 1 : 0;
2556 bl. brightness = ( bright * ( displayBrightnessResolution ( ) - 1 ) + 127 ) / 255;
2557 res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 );
2558 ::close ( fd );
2559 }
2560 return res;
2561}
2562
2563bool Jornada::setSoftSuspend ( bool soft )
2564{
2565 bool res = false;
2566 int fd;
2567
2568 if (( fd = ::open ( "/proc/sys/ts/suspend_button_mode", O_WRONLY )) >= 0 ) {
2569 if ( ::write ( fd, soft ? "1" : "0", 1 ) == 1 )
2570 res = true;
2571 else
2572 ::perror ( "write to /proc/sys/ts/suspend_button_mode" );
2573
2574 ::close ( fd );
2575 }
2576 else
2577 ::perror ( "/proc/sys/ts/suspend_button_mode" );
2578
2579 return res;
2580}
diff --git a/libopie/odevice.h b/libopie/odevice.h
index 2a5e494..35e3eff 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -6,96 +6,99 @@
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#ifndef _LIBOPIE_ODEVICE_H_ 21#ifndef _LIBOPIE_ODEVICE_H_
22#define _LIBOPIE_ODEVICE_H_ 22#define _LIBOPIE_ODEVICE_H_
23 23
24#include <qobject.h> 24#include <qobject.h>
25#include <qstring.h> 25#include <qstring.h>
26#include <qnamespace.h> 26#include <qnamespace.h>
27#include <qstrlist.h> 27#include <qstrlist.h>
28 28
29#include <opie/odevicebutton.h> 29#include <opie/odevicebutton.h>
30 30
31#include <qpe/qpeapplication.h> /* for Transformation enum.. */ 31#include <qpe/qpeapplication.h> /* for Transformation enum.. */
32 32
33class ODeviceData; 33class ODeviceData;
34 34
35namespace Opie { 35namespace Opie {
36 36
37/** 37/**
38 * The available devices 38 * The available devices
39 */ 39 */
40enum OModel { 40enum OModel {
41 Model_Unknown, // = 0 41 Model_Unknown, // = 0
42 42
43 Model_Series_Mask = 0xff000000, 43 Model_Series_Mask = 0xff000000,
44 44
45 Model_iPAQ = ( 1 << 24 ), 45 Model_iPAQ = ( 1 << 24 ),
46 46
47 Model_iPAQ_All = ( Model_iPAQ | 0xffffff ), 47 Model_iPAQ_All = ( Model_iPAQ | 0xffffff ),
48 Model_iPAQ_H31xx = ( Model_iPAQ | 0x000001 ), 48 Model_iPAQ_H31xx = ( Model_iPAQ | 0x000001 ),
49 Model_iPAQ_H36xx = ( Model_iPAQ | 0x000002 ), 49 Model_iPAQ_H36xx = ( Model_iPAQ | 0x000002 ),
50 Model_iPAQ_H37xx = ( Model_iPAQ | 0x000004 ), 50 Model_iPAQ_H37xx = ( Model_iPAQ | 0x000004 ),
51 Model_iPAQ_H38xx = ( Model_iPAQ | 0x000008 ), 51 Model_iPAQ_H38xx = ( Model_iPAQ | 0x000008 ),
52 Model_iPAQ_H39xx = ( Model_iPAQ | 0x000010 ), 52 Model_iPAQ_H39xx = ( Model_iPAQ | 0x000010 ),
53 53
54 Model_Jornada = ( 6 << 24 ),
55 Model_Jornada_56x = ( Model_Jornada | 0x000001 ),
56
54 Model_Zaurus = ( 2 << 24 ), 57 Model_Zaurus = ( 2 << 24 ),
55 58
56 Model_Zaurus_SL5000 = ( Model_Zaurus | 0x000001 ), 59 Model_Zaurus_SL5000 = ( Model_Zaurus | 0x000001 ),
57 Model_Zaurus_SL5500 = ( Model_Zaurus | 0x000002 ), 60 Model_Zaurus_SL5500 = ( Model_Zaurus | 0x000002 ),
58 Model_Zaurus_SLA300 = ( Model_Zaurus | 0x000003 ), 61 Model_Zaurus_SLA300 = ( Model_Zaurus | 0x000003 ),
59 Model_Zaurus_SLB600 = ( Model_Zaurus | 0x000004 ), 62 Model_Zaurus_SLB600 = ( Model_Zaurus | 0x000004 ),
60 Model_Zaurus_SLC700 = ( Model_Zaurus | 0x000005 ), 63 Model_Zaurus_SLC700 = ( Model_Zaurus | 0x000005 ),
61 64
62 Model_SIMpad = ( 3 << 24 ), 65 Model_SIMpad = ( 3 << 24 ),
63 66
64 Model_SIMpad_All = ( Model_SIMpad | 0xffffff ), 67 Model_SIMpad_All = ( Model_SIMpad | 0xffffff ),
65 Model_SIMpad_CL4 = ( Model_SIMpad | 0x000001 ), 68 Model_SIMpad_CL4 = ( Model_SIMpad | 0x000001 ),
66 Model_SIMpad_SL4 = ( Model_SIMpad | 0x000002 ), 69 Model_SIMpad_SL4 = ( Model_SIMpad | 0x000002 ),
67 Model_SIMpad_SLC = ( Model_SIMpad | 0x000004 ), 70 Model_SIMpad_SLC = ( Model_SIMpad | 0x000004 ),
68 Model_SIMpad_TSinus = ( Model_SIMpad | 0x000008 ), 71 Model_SIMpad_TSinus = ( Model_SIMpad | 0x000008 ),
69 72
70 Model_Ramses = ( 4 << 24 ), 73 Model_Ramses = ( 4 << 24 ),
71 74
72 Model_Ramses_All = ( Model_Ramses | 0xffffff ), 75 Model_Ramses_All = ( Model_Ramses | 0xffffff ),
73 Model_Ramses_MNCI = ( Model_Ramses | 0x000001 ), 76 Model_Ramses_MNCI = ( Model_Ramses | 0x000001 ),
74 77
75 Model_Yopy = ( 5 << 24 ), 78 Model_Yopy = ( 5 << 24 ),
76 79
77 Model_Yopy_All = ( Model_Yopy | 0xffffff ), 80 Model_Yopy_All = ( Model_Yopy | 0xffffff ),
78 Model_Yopy_3000 = ( Model_Yopy | 0x000001 ), 81 Model_Yopy_3000 = ( Model_Yopy | 0x000001 ),
79 Model_Yopy_3500 = ( Model_Yopy | 0x000002 ), 82 Model_Yopy_3500 = ( Model_Yopy | 0x000002 ),
80 Model_Yopy_3700 = ( Model_Yopy | 0x000003 ), 83 Model_Yopy_3700 = ( Model_Yopy | 0x000003 ),
81 84
82}; 85};
83 86
84/** 87/**
85 * The vendor of the device 88 * The vendor of the device
86 */ 89 */
87enum OVendor { 90enum OVendor {
88 Vendor_Unknown, 91 Vendor_Unknown,
89 92
90 Vendor_HP, 93 Vendor_HP,
91 Vendor_Sharp, 94 Vendor_Sharp,
92 Vendor_SIEMENS, 95 Vendor_SIEMENS,
93 Vendor_MundN, 96 Vendor_MundN,
94 Vendor_GMate, 97 Vendor_GMate,
95}; 98};
96 99
97/** 100/**
98 * The System used 101 * The System used
99 */ 102 */
100enum OSystem { 103enum OSystem {
101 System_Unknown, 104 System_Unknown,