summaryrefslogtreecommitdiff
authorsandman <sandman>2002-10-27 15:52:44 (UTC)
committer sandman <sandman>2002-10-27 15:52:44 (UTC)
commitbf21c882b82bfcdbcdce6b2dc5d863a2a2fb37c7 (patch) (unidiff)
tree6f104afe571f394bea83b94cb0de9242ee742b88
parent4ad1fa6d01c9de96d309cd662e658bcb1bb899a5 (diff)
downloadopie-bf21c882b82bfcdbcdce6b2dc5d863a2a2fb37c7.zip
opie-bf21c882b82bfcdbcdce6b2dc5d863a2a2fb37c7.tar.gz
opie-bf21c882b82bfcdbcdce6b2dc5d863a2a2fb37c7.tar.bz2
- new function to check for and read the light sensor
- redone the Model enum, to make it easier to check for "any iPAQ" !! This means every application using this enum has to be recompiled !!
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp42
-rw-r--r--libopie/odevice.h17
2 files changed, 54 insertions, 5 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 58bd663..44fe35f 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -22,128 +22,131 @@
22#include <fcntl.h> 22#include <fcntl.h>
23#include <sys/ioctl.h> 23#include <sys/ioctl.h>
24#include <signal.h> 24#include <signal.h>
25#include <sys/time.h> 25#include <sys/time.h>
26#include <linux/soundcard.h> 26#include <linux/soundcard.h>
27#include <math.h> 27#include <math.h>
28 28
29#include <qapplication.h> 29#include <qapplication.h>
30 30
31#include <qfile.h> 31#include <qfile.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33#include <qpe/sound.h> 33#include <qpe/sound.h>
34#include <qpe/resource.h> 34#include <qpe/resource.h>
35#include <qpe/config.h> 35#include <qpe/config.h>
36 36
37#include "odevice.h" 37#include "odevice.h"
38 38
39#include <qwindowsystem_qws.h> 39#include <qwindowsystem_qws.h>
40 40
41 41
42// _IO and friends are only defined in kernel headers ... 42// _IO and friends are only defined in kernel headers ...
43 43
44#define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) 44#define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 ))
45 45
46#define OD_IO(type,number) OD_IOC(0,type,number,0) 46#define OD_IO(type,number) OD_IOC(0,type,number,0)
47#define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) 47#define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size))
48#define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) 48#define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size))
49#define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) 49#define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size))
50 50
51using namespace Opie; 51using namespace Opie;
52 52
53class ODeviceData { 53class ODeviceData {
54public: 54public:
55 bool m_qwsserver; 55 bool m_qwsserver;
56 56
57 QString m_vendorstr; 57 QString m_vendorstr;
58 OVendor m_vendor; 58 OVendor m_vendor;
59 59
60 QString m_modelstr; 60 QString m_modelstr;
61 OModel m_model; 61 OModel m_model;
62 62
63 QString m_systemstr; 63 QString m_systemstr;
64 OSystem m_system; 64 OSystem m_system;
65 65
66 QString m_sysverstr; 66 QString m_sysverstr;
67}; 67};
68 68
69 69
70class iPAQ : public QObject, public ODevice, public QWSServer::KeyboardFilter { 70class iPAQ : public QObject, public ODevice, public QWSServer::KeyboardFilter {
71protected: 71protected:
72 virtual void init ( ); 72 virtual void init ( );
73 73
74public: 74public:
75 virtual bool setSoftSuspend ( bool soft ); 75 virtual bool setSoftSuspend ( bool soft );
76 76
77 virtual bool setDisplayBrightness ( int b ); 77 virtual bool setDisplayBrightness ( int b );
78 virtual int displayBrightnessResolution ( ) const; 78 virtual int displayBrightnessResolution ( ) const;
79 79
80 virtual void alarmSound ( ); 80 virtual void alarmSound ( );
81 81
82 virtual QValueList <OLed> ledList ( ) const; 82 virtual QValueList <OLed> ledList ( ) const;
83 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 83 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
84 virtual OLedState ledState ( OLed led ) const; 84 virtual OLedState ledState ( OLed led ) const;
85 virtual bool setLedState ( OLed led, OLedState st ); 85 virtual bool setLedState ( OLed led, OLedState st );
86
87 virtual bool hasLightSensor ( ) const;
88 virtual int readLightSensor ( );
86 89
87 //virtual QValueList <int> keyList ( ) const; 90 //virtual QValueList <int> keyList ( ) const;
88 91
89protected: 92protected:
90 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); 93 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat );
91 virtual void timerEvent ( QTimerEvent *te ); 94 virtual void timerEvent ( QTimerEvent *te );
92 95
93 int m_power_timer; 96 int m_power_timer;
94 97
95 OLedState m_leds [2]; 98 OLedState m_leds [2];
96}; 99};
97 100
98class Zaurus : public ODevice { 101class Zaurus : public ODevice {
99protected: 102protected:
100 virtual void init ( ); 103 virtual void init ( );
101 104
102 public: 105 public:
103 virtual bool setSoftSuspend ( bool soft ); 106 virtual bool setSoftSuspend ( bool soft );
104 107
105 virtual bool setDisplayBrightness ( int b ); 108 virtual bool setDisplayBrightness ( int b );
106 virtual int displayBrightnessResolution ( ) const; 109 virtual int displayBrightnessResolution ( ) const;
107 110
108 virtual void alarmSound ( ); 111 virtual void alarmSound ( );
109 virtual void keySound ( ); 112 virtual void keySound ( );
110 virtual void touchSound ( ); 113 virtual void touchSound ( );
111 114
112 virtual QValueList <OLed> ledList ( ) const; 115 virtual QValueList <OLed> ledList ( ) const;
113 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 116 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
114 virtual OLedState ledState ( OLed led ) const; 117 virtual OLedState ledState ( OLed led ) const;
115 virtual bool setLedState ( OLed led, OLedState st ); 118 virtual bool setLedState ( OLed led, OLedState st );
116 119
117 //virtual QValueList <int> keyList ( ) const; 120 //virtual QValueList <int> keyList ( ) const;
118 121
119protected: 122protected:
120 virtual void buzzer ( int snd ); 123 virtual void buzzer ( int snd );
121 124
122 OLedState m_leds [1]; 125 OLedState m_leds [1];
123}; 126};
124 127
125 128
126 129
127 130
128 131
129 132
130 133
131ODevice *ODevice::inst ( ) 134ODevice *ODevice::inst ( )
132{ 135{
133 static ODevice *dev = 0; 136 static ODevice *dev = 0;
134 137
135 if ( !dev ) { 138 if ( !dev ) {
136 if ( QFile::exists ( "/proc/hal/model" )) 139 if ( QFile::exists ( "/proc/hal/model" ))
137 dev = new iPAQ ( ); 140 dev = new iPAQ ( );
138 else if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) 141 else if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" ))
139 dev = new Zaurus ( ); 142 dev = new Zaurus ( );
140 else 143 else
141 dev = new ODevice ( ); 144 dev = new ODevice ( );
142 145
143 dev-> init ( ); 146 dev-> init ( );
144 } 147 }
145 return dev; 148 return dev;
146} 149}
147 150
148 151
149/************************************************** 152/**************************************************
@@ -295,128 +298,137 @@ OSystem ODevice::system ( ) const
295 298
296QString ODevice::systemVersionString ( ) const 299QString ODevice::systemVersionString ( ) const
297{ 300{
298 return d-> m_sysverstr; 301 return d-> m_sysverstr;
299} 302}
300 303
301void ODevice::alarmSound ( ) 304void ODevice::alarmSound ( )
302{ 305{
303#ifndef QT_QWS_EBX 306#ifndef QT_QWS_EBX
304#ifndef QT_NO_SOUND 307#ifndef QT_NO_SOUND
305 static Sound snd ( "alarm" ); 308 static Sound snd ( "alarm" );
306 309
307 if ( snd. isFinished ( )) 310 if ( snd. isFinished ( ))
308 snd. play ( ); 311 snd. play ( );
309#endif 312#endif
310#endif 313#endif
311} 314}
312 315
313void ODevice::keySound ( ) 316void ODevice::keySound ( )
314{ 317{
315#ifndef QT_QWS_EBX 318#ifndef QT_QWS_EBX
316#ifndef QT_NO_SOUND 319#ifndef QT_NO_SOUND
317 static Sound snd ( "keysound" ); 320 static Sound snd ( "keysound" );
318 321
319 if ( snd. isFinished ( )) 322 if ( snd. isFinished ( ))
320 snd. play ( ); 323 snd. play ( );
321#endif 324#endif
322#endif 325#endif
323} 326}
324 327
325void ODevice::touchSound ( ) 328void ODevice::touchSound ( )
326{ 329{
327 330
328#ifndef QT_QWS_EBX 331#ifndef QT_QWS_EBX
329#ifndef QT_NO_SOUND 332#ifndef QT_NO_SOUND
330 static Sound snd ( "touchsound" ); 333 static Sound snd ( "touchsound" );
331 334
332 if ( snd. isFinished ( )) 335 if ( snd. isFinished ( ))
333 snd. play ( ); 336 snd. play ( );
334#endif 337#endif
335#endif 338#endif
336} 339}
337 340
338 341
339QValueList <OLed> ODevice::ledList ( ) const 342QValueList <OLed> ODevice::ledList ( ) const
340{ 343{
341 return QValueList <OLed> ( ); 344 return QValueList <OLed> ( );
342} 345}
343 346
344QValueList <OLedState> ODevice::ledStateList ( OLed /*which*/ ) const 347QValueList <OLedState> ODevice::ledStateList ( OLed /*which*/ ) const
345{ 348{
346 return QValueList <OLedState> ( ); 349 return QValueList <OLedState> ( );
347} 350}
348 351
349OLedState ODevice::ledState ( OLed /*which*/ ) const 352OLedState ODevice::ledState ( OLed /*which*/ ) const
350{ 353{
351 return Led_Off; 354 return Led_Off;
352} 355}
353 356
354bool ODevice::setLedState ( OLed /*which*/, OLedState /*st*/ ) 357bool ODevice::setLedState ( OLed /*which*/, OLedState /*st*/ )
355{ 358{
356 return false; 359 return false;
357} 360}
358 361
362bool ODevice::hasLightSensor ( ) const
363{
364 return false;
365}
366
367int ODevice::readLightSensor ( )
368{
369 return -1;
370}
359 371
360 372
361//QValueList <int> ODevice::keyList ( ) const 373//QValueList <int> ODevice::keyList ( ) const
362//{ 374//{
363 //return QValueList <int> ( ); 375 //return QValueList <int> ( );
364//} 376//}
365 377
366 378
367 379
368/************************************************** 380/**************************************************
369 * 381 *
370 * iPAQ 382 * iPAQ
371 * 383 *
372 **************************************************/ 384 **************************************************/
373 385
374void iPAQ::init ( ) 386void iPAQ::init ( )
375{ 387{
376 d-> m_vendorstr = "HP"; 388 d-> m_vendorstr = "HP";
377 d-> m_vendor = Vendor_HP; 389 d-> m_vendor = Vendor_HP;
378 390
379 QFile f ( "/proc/hal/model" ); 391 QFile f ( "/proc/hal/model" );
380 392
381 if ( f. open ( IO_ReadOnly )) { 393 if ( f. open ( IO_ReadOnly )) {
382 QTextStream ts ( &f ); 394 QTextStream ts ( &f );
383 395
384 d-> m_modelstr = "H" + ts. readLine ( ); 396 d-> m_modelstr = "H" + ts. readLine ( );
385 397
386 if ( d-> m_modelstr == "H3100" ) 398 if ( d-> m_modelstr == "H3100" )
387 d-> m_model = Model_iPAQ_H31xx; 399 d-> m_model = Model_iPAQ_H31xx;
388 else if ( d-> m_modelstr == "H3600" ) 400 else if ( d-> m_modelstr == "H3600" )
389 d-> m_model = Model_iPAQ_H36xx; 401 d-> m_model = Model_iPAQ_H36xx;
390 else if ( d-> m_modelstr == "H3700" ) 402 else if ( d-> m_modelstr == "H3700" )
391 d-> m_model = Model_iPAQ_H37xx; 403 d-> m_model = Model_iPAQ_H37xx;
392 else if ( d-> m_modelstr == "H3800" ) 404 else if ( d-> m_modelstr == "H3800" )
393 d-> m_model = Model_iPAQ_H38xx; 405 d-> m_model = Model_iPAQ_H38xx;
394 else 406 else
395 d-> m_model = Model_Unknown; 407 d-> m_model = Model_Unknown;
396 408
397 f. close ( ); 409 f. close ( );
398 } 410 }
399 411
400 f. setName ( "/etc/familiar-version" ); 412 f. setName ( "/etc/familiar-version" );
401 if ( f. open ( IO_ReadOnly )) { 413 if ( f. open ( IO_ReadOnly )) {
402 d-> m_systemstr = "Familiar"; 414 d-> m_systemstr = "Familiar";
403 d-> m_system = System_Familiar; 415 d-> m_system = System_Familiar;
404 416
405 QTextStream ts ( &f ); 417 QTextStream ts ( &f );
406 d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); 418 d-> m_sysverstr = ts. readLine ( ). mid ( 10 );
407 419
408 f. close ( ); 420 f. close ( );
409 } 421 }
410 422
411 m_leds [0] = m_leds [1] = Led_Off; 423 m_leds [0] = m_leds [1] = Led_Off;
412 424
413 m_power_timer = 0; 425 m_power_timer = 0;
414 426
415 if ( d-> m_qwsserver ) 427 if ( d-> m_qwsserver )
416 QWSServer::setKeyboardFilter ( this ); 428 QWSServer::setKeyboardFilter ( this );
417} 429}
418 430
419//#include <linux/h3600_ts.h> // including kernel headers is evil ... 431//#include <linux/h3600_ts.h> // including kernel headers is evil ...
420 432
421typedef struct { 433typedef struct {
422 unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ 434 unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */
@@ -605,128 +617,158 @@ void iPAQ::alarmSound ( )
605 617
606 if ( fd >= 0 ) { 618 if ( fd >= 0 ) {
607 if ( vol_reset ) 619 if ( vol_reset )
608 ::ioctl ( fd, MIXER_WRITE( 0 ), &vol ); 620 ::ioctl ( fd, MIXER_WRITE( 0 ), &vol );
609 ::close ( fd ); 621 ::close ( fd );
610 } 622 }
611#endif 623#endif
612#endif 624#endif
613} 625}
614 626
615 627
616bool iPAQ::setSoftSuspend ( bool soft ) 628bool iPAQ::setSoftSuspend ( bool soft )
617{ 629{
618 bool res = false; 630 bool res = false;
619 int fd; 631 int fd;
620 632
621 if (( fd = ::open ( "/proc/sys/ts/suspend_button_mode", O_WRONLY )) >= 0 ) { 633 if (( fd = ::open ( "/proc/sys/ts/suspend_button_mode", O_WRONLY )) >= 0 ) {
622 if ( ::write ( fd, soft ? "1" : "0", 1 ) == 1 ) 634 if ( ::write ( fd, soft ? "1" : "0", 1 ) == 1 )
623 res = true; 635 res = true;
624 else 636 else
625 ::perror ( "write to /proc/sys/ts/suspend_button_mode" ); 637 ::perror ( "write to /proc/sys/ts/suspend_button_mode" );
626 638
627 ::close ( fd ); 639 ::close ( fd );
628 } 640 }
629 else 641 else
630 ::perror ( "/proc/sys/ts/suspend_button_mode" ); 642 ::perror ( "/proc/sys/ts/suspend_button_mode" );
631 643
632 return res; 644 return res;
633} 645}
634 646
635 647
636bool iPAQ::setDisplayBrightness ( int bright ) 648bool iPAQ::setDisplayBrightness ( int bright )
637{ 649{
638 bool res = false; 650 bool res = false;
639 int fd; 651 int fd;
640 652
641 if ( bright > 255 ) 653 if ( bright > 255 )
642 bright = 255; 654 bright = 255;
643 if ( bright < 0 ) 655 if ( bright < 0 )
644 bright = 0; 656 bright = 0;
645 657
646 // 128 is the maximum if you want a decent lifetime for the LCD 658 // 128 is the maximum if you want a decent lifetime for the LCD
647 659
648 if ( bright > 1 ) 660 if ( bright > 1 )
649 bright = (int) ( 0.5 + ( ::pow ( 2, double( bright ) / 255.0 ) - 1 ) * 128.0 ); // logarithmic 661 bright = (int) ( 0.5 + ( ::pow ( 2, double( bright ) / 255.0 ) - 1 ) * 128.0 ); // logarithmic
650 //bright = ( bright + 1 ) / 2; 662 //bright = ( bright + 1 ) / 2;
651 663
652 if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { 664 if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) {
653 FLITE_IN bl; 665 FLITE_IN bl;
654 bl. mode = 1; 666 bl. mode = 1;
655 bl. pwr = bright ? 1 : 0; 667 bl. pwr = bright ? 1 : 0;
656 bl. brightness = bright; 668 bl. brightness = bright;
657 res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 ); 669 res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 );
658 ::close ( fd ); 670 ::close ( fd );
659 } 671 }
660 return res; 672 return res;
661} 673}
662 674
663int iPAQ::displayBrightnessResolution ( ) const 675int iPAQ::displayBrightnessResolution ( ) const
664{ 676{
665 return 255; // really 128, but logarithmic control is smoother this way 677 return 255; // really 128, but logarithmic control is smoother this way
666} 678}
667 679
668 680
681bool iPAQ::hasLightSensor ( ) const
682{
683 return true;
684}
685
686int iPAQ::readLightSensor ( )
687{
688 int fd;
689 int val = -1;
690
691 if (( fd = ::open ( "/proc/hal/lightsensor", O_RDONLY )) >= 0 ) {
692 char buffer [5];
693
694 if ( ::read ( fd, buffer, 4 ) == 4 ) {
695 char *endptr;
696
697 buffer [4] = 0;
698 val = ::strtol ( buffer + 2, &endptr, 16 );
699
700 if ( *endptr != 0 )
701 val = -1;
702 }
703
704 ::close ( fd );
705 }
706
707 return val;
708}
709
710
669/************************************************** 711/**************************************************
670 * 712 *
671 * Zaurus 713 * Zaurus
672 * 714 *
673 **************************************************/ 715 **************************************************/
674 716
675 717
676 718
677void Zaurus::init ( ) 719void Zaurus::init ( )
678{ 720{
679 d-> m_modelstr = "Zaurus SL5000"; 721 d-> m_modelstr = "Zaurus SL5000";
680 d-> m_model = Model_Zaurus_SL5000; 722 d-> m_model = Model_Zaurus_SL5000;
681 d-> m_vendorstr = "Sharp"; 723 d-> m_vendorstr = "Sharp";
682 d-> m_vendor = Vendor_Sharp; 724 d-> m_vendor = Vendor_Sharp;
683 725
684 QFile f ( "/proc/filesystems" ); 726 QFile f ( "/proc/filesystems" );
685 727
686 if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) { 728 if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) {
687 d-> m_systemstr = "OpenZaurus"; 729 d-> m_systemstr = "OpenZaurus";
688 d-> m_system = System_OpenZaurus; 730 d-> m_system = System_OpenZaurus;
689 731
690 f. close ( ); 732 f. close ( );
691 733
692 f. setName ( "/etc/oz_version" ); 734 f. setName ( "/etc/oz_version" );
693 if ( f. open ( IO_ReadOnly )) { 735 if ( f. open ( IO_ReadOnly )) {
694 QTextStream ts ( &f ); 736 QTextStream ts ( &f );
695 d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); 737 d-> m_sysverstr = ts. readLine ( ). mid ( 10 );
696 f. close ( ); 738 f. close ( );
697 } 739 }
698 } 740 }
699 else { 741 else {
700 d-> m_systemstr = "Zaurus"; 742 d-> m_systemstr = "Zaurus";
701 d-> m_system = System_Zaurus; 743 d-> m_system = System_Zaurus;
702 } 744 }
703 745
704 746
705 m_leds [0] = Led_Off; 747 m_leds [0] = Led_Off;
706} 748}
707 749
708#include <unistd.h> 750#include <unistd.h>
709#include <fcntl.h> 751#include <fcntl.h>
710#include <sys/ioctl.h> 752#include <sys/ioctl.h>
711 753
712//#include <asm/sharp_char.h> // including kernel headers is evil ... 754//#include <asm/sharp_char.h> // including kernel headers is evil ...
713 755
714#define SHARP_DEV_IOCTL_COMMAND_START 0x5680 756#define SHARP_DEV_IOCTL_COMMAND_START 0x5680
715 757
716 #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 758 #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
717#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) 759#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
718 760
719#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ 761#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
720#define SHARP_BUZ_KEYSOUND 2 /* key sound */ 762#define SHARP_BUZ_KEYSOUND 2 /* key sound */
721#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ 763#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
722 764
723/* --- for SHARP_BUZZER device --- */ 765/* --- for SHARP_BUZZER device --- */
724 766
725 //#defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 767 //#defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
726//#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) 768//#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
727 769
728#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1) 770#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1)
729#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2) 771#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2)
730#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3) 772#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3)
731#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4) 773#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4)
732#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5) 774#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5)
diff --git a/libopie/odevice.h b/libopie/odevice.h
index 38f3787..be2a9c7 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -1,138 +1,145 @@
1/* This file is part of the OPIE libraries 1/* This file is part of the OPIE libraries
2 Copyright (C) 2002 Robert Griebl (sandman@handhelds.org) 2 Copyright (C) 2002 Robert Griebl (sandman@handhelds.org)
3 3
4 This library is free software; you can redistribute it and/or 4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either 6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version. 7 version 2 of the License, or (at your option) any later version.
8 8
9 This library is distributed in the hope that it will be useful, 9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details. 12 Library General Public License for more details.
13 13
14 You should have received a copy of the GNU Library General Public License 14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to 15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. 17 Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#ifndef _LIBOPIE_ODEVICE_H_ 20#ifndef _LIBOPIE_ODEVICE_H_
21#define _LIBOPIE_ODEVICE_H_ 21#define _LIBOPIE_ODEVICE_H_
22 22
23#include <qstring.h> 23#include <qstring.h>
24#include <qnamespace.h> 24#include <qnamespace.h>
25 25
26class ODeviceData; 26class ODeviceData;
27 27
28namespace Opie { 28namespace Opie {
29 29
30enum OModel { 30enum OModel {
31 Model_Unknown, 31 Model_Unknown,
32 32
33 Model_iPAQ_H31xx, 33 Model_iPAQ = ( 1 << 16 ),
34 Model_iPAQ_H36xx,
35 Model_iPAQ_H37xx,
36 Model_iPAQ_H38xx,
37 34
38 Model_Zaurus_SL5000 35 Model_iPAQ_H31xx = ( Model_iPAQ | 1 ),
36 Model_iPAQ_H36xx = ( Model_iPAQ | 2 ),
37 Model_iPAQ_H37xx = ( Model_iPAQ | 3 ),
38 Model_iPAQ_H38xx = ( Model_iPAQ | 4 ),
39
40 Model_Zaurus = ( 2 << 16 ),
41
42 Model_Zaurus_SL5000 = ( Model_Zaurus | 1 ),
39}; 43};
40 44
41 enum OVendor { 45 enum OVendor {
42 Vendor_Unknown, 46 Vendor_Unknown,
43 47
44 Vendor_HP, 48 Vendor_HP,
45 Vendor_Sharp 49 Vendor_Sharp
46 }; 50 };
47 51
48enum OSystem { 52enum OSystem {
49 System_Unknown, 53 System_Unknown,
50 54
51 System_Familiar, 55 System_Familiar,
52 System_Zaurus, 56 System_Zaurus,
53 System_OpenZaurus 57 System_OpenZaurus
54}; 58};
55 59
56enum OLedState { 60enum OLedState {
57 Led_Off, 61 Led_Off,
58 Led_On, 62 Led_On,
59 Led_BlinkSlow, 63 Led_BlinkSlow,
60 Led_BlinkFast 64 Led_BlinkFast
61}; 65};
62 66
63enum OLed { 67enum OLed {
64 Led_Mail, 68 Led_Mail,
65 Led_Power, 69 Led_Power,
66 Led_BlueTooth 70 Led_BlueTooth
67}; 71};
68 72
69enum OHardKey { 73enum OHardKey {
70 HardKey_Datebook = Qt::Key_F9, 74 HardKey_Datebook = Qt::Key_F9,
71 HardKey_Contacts = Qt::Key_F10, 75 HardKey_Contacts = Qt::Key_F10,
72 HardKey_Menu = Qt::Key_F11, 76 HardKey_Menu = Qt::Key_F11,
73 HardKey_Home = Qt::Key_F12, 77 HardKey_Home = Qt::Key_F12,
74 HardKey_Mail = Qt::Key_F14, 78 HardKey_Mail = Qt::Key_F14,
75 HardKey_Record = Qt::Key_F24, 79 HardKey_Record = Qt::Key_F24,
76 HardKey_Suspend = Qt::Key_F34, 80 HardKey_Suspend = Qt::Key_F34,
77 HardKey_Backlight = Qt::Key_F35, 81 HardKey_Backlight = Qt::Key_F35,
78}; 82};
79 83
80 84
81class ODevice 85class ODevice
82{ 86{
83private: 87private:
84 ODevice ( const ODevice & ); 88 ODevice ( const ODevice & );
85 89
86protected: 90protected:
87 ODevice ( ); 91 ODevice ( );
88 virtual void init ( ); 92 virtual void init ( );
89 93
90 ODeviceData *d; 94 ODeviceData *d;
91 95
92public: 96public:
93 virtual ~ODevice ( ); 97 virtual ~ODevice ( );
94 98
95 static ODevice *inst ( ); 99 static ODevice *inst ( );
96 100
97 101
98 102
99// information 103// information
100 104
101 QString modelString ( ) const; 105 QString modelString ( ) const;
102 OModel model ( ) const; 106 OModel model ( ) const;
103 107
104 QString vendorString ( ) const; 108 QString vendorString ( ) const;
105 OVendor vendor ( ) const; 109 OVendor vendor ( ) const;
106 110
107 QString systemString ( ) const; 111 QString systemString ( ) const;
108 OSystem system ( ) const; 112 OSystem system ( ) const;
109 113
110 QString systemVersionString ( ) const; 114 QString systemVersionString ( ) const;
111 115
112 // system 116 // system
113 117
114 virtual bool setSoftSuspend ( bool on ); 118 virtual bool setSoftSuspend ( bool on );
115 virtual bool suspend ( ); 119 virtual bool suspend ( );
116 120
117 virtual bool setDisplayStatus ( bool on ); 121 virtual bool setDisplayStatus ( bool on );
118 virtual bool setDisplayBrightness ( int brightness ); 122 virtual bool setDisplayBrightness ( int brightness );
119 virtual int displayBrightnessResolution ( ) const; 123 virtual int displayBrightnessResolution ( ) const;
120 124
121// input / output 125// input / output
122 126
123 virtual void alarmSound ( ); 127 virtual void alarmSound ( );
124 virtual void keySound ( ); 128 virtual void keySound ( );
125 virtual void touchSound ( ); 129 virtual void touchSound ( );
126 130
127 virtual QValueList <OLed> ledList ( ) const; 131 virtual QValueList <OLed> ledList ( ) const;
128 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 132 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
129 virtual OLedState ledState ( OLed led ) const; 133 virtual OLedState ledState ( OLed led ) const;
130 virtual bool setLedState ( OLed led, OLedState st ); 134 virtual bool setLedState ( OLed led, OLedState st );
131 135
136 virtual bool hasLightSensor ( ) const;
137 virtual int readLightSensor ( );
138
132 //virtual QValueList <int> keyList ( ) const; 139 //virtual QValueList <int> keyList ( ) const;
133}; 140};
134 141
135} 142}
136 143
137#endif 144#endif
138 145