summaryrefslogtreecommitdiff
authorsandman <sandman>2002-10-27 15:52:44 (UTC)
committer sandman <sandman>2002-10-27 15:52:44 (UTC)
commitbf21c882b82bfcdbcdce6b2dc5d863a2a2fb37c7 (patch) (side-by-side diff)
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
@@ -84,4 +84,7 @@ public:
virtual OLedState ledState ( OLed led ) const;
virtual bool setLedState ( OLed led, OLedState st );
+
+ virtual bool hasLightSensor ( ) const;
+ virtual int readLightSensor ( );
//virtual QValueList <int> keyList ( ) const;
@@ -357,4 +360,13 @@ bool ODevice::setLedState ( OLed /*which*/, OLedState /*st*/ )
}
+bool ODevice::hasLightSensor ( ) const
+{
+ return false;
+}
+
+int ODevice::readLightSensor ( )
+{
+ return -1;
+}
@@ -667,4 +679,34 @@ int iPAQ::displayBrightnessResolution ( ) const
+bool iPAQ::hasLightSensor ( ) const
+{
+ return true;
+}
+
+int iPAQ::readLightSensor ( )
+{
+ int fd;
+ int val = -1;
+
+ if (( fd = ::open ( "/proc/hal/lightsensor", O_RDONLY )) >= 0 ) {
+ char buffer [5];
+
+ if ( ::read ( fd, buffer, 4 ) == 4 ) {
+ char *endptr;
+
+ buffer [4] = 0;
+ val = ::strtol ( buffer + 2, &endptr, 16 );
+
+ if ( *endptr != 0 )
+ val = -1;
+ }
+
+ ::close ( fd );
+ }
+
+ return val;
+}
+
+
/**************************************************
*
diff --git a/libopie/odevice.h b/libopie/odevice.h
index 38f3787..be2a9c7 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -31,10 +31,14 @@ enum OModel {
Model_Unknown,
- Model_iPAQ_H31xx,
- Model_iPAQ_H36xx,
- Model_iPAQ_H37xx,
- Model_iPAQ_H38xx,
+ Model_iPAQ = ( 1 << 16 ),
- Model_Zaurus_SL5000
+ Model_iPAQ_H31xx = ( Model_iPAQ | 1 ),
+ Model_iPAQ_H36xx = ( Model_iPAQ | 2 ),
+ Model_iPAQ_H37xx = ( Model_iPAQ | 3 ),
+ Model_iPAQ_H38xx = ( Model_iPAQ | 4 ),
+
+ Model_Zaurus = ( 2 << 16 ),
+
+ Model_Zaurus_SL5000 = ( Model_Zaurus | 1 ),
};
@@ -130,4 +134,7 @@ public:
virtual bool setLedState ( OLed led, OLedState st );
+ virtual bool hasLightSensor ( ) const;
+ virtual int readLightSensor ( );
+
//virtual QValueList <int> keyList ( ) const;
};