summaryrefslogtreecommitdiff
Unidiff
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
@@ -97,24 +97,36 @@ public:
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 ( );
@@ -424,24 +436,26 @@ ODevice *ODevice::inst ( )
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 *
@@ -974,25 +988,25 @@ void ODevice::virtual_hook(int, void* ){
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";
@@ -2443,12 +2457,124 @@ bool Ramses::setDisplayContrast(int 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
@@ -42,24 +42,27 @@ enum OModel {
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 ),