summaryrefslogtreecommitdiff
path: root/libopie
Side-by-side diff
Diffstat (limited to 'libopie') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp19
-rw-r--r--libopie/odevice.h1
2 files changed, 18 insertions, 2 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index bc43c52..a33d4ad 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -711,14 +711,12 @@ int iPAQ::lightSensorResolution ( ) const
**************************************************/
void Zaurus::init ( )
{
- d-> m_modelstr = "Zaurus SL5000";
- d-> m_model = Model_Zaurus_SL5000;
d-> m_vendorstr = "Sharp";
d-> m_vendor = Vendor_Sharp;
QFile f ( "/proc/filesystems" );
if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) {
@@ -736,12 +734,29 @@ void Zaurus::init ( )
}
else {
d-> m_systemstr = "Zaurus";
d-> m_system = System_Zaurus;
}
+ f. setName ( "/proc/deviceinfo/product" );
+ if ( f. open ( IO_ReadOnly ) ) {
+ QTextStream ts ( &f );
+ QString model = ts. readLine ( );
+ f. close ( );
+ if ( model == "SL-5000D" ) {
+ d-> m_model = Model_Zaurus_SL5000;
+ d-> m_modelstr = "Zaurus SL-5000D";
+ } else if ( model == "SL-5500" ) {
+ d-> m_model = Model_Zaurus_SL5500;
+ d-> m_modelstr = "Zaurus SL-5500";
+ }
+ }
+ else {
+ d-> m_model = Model_Zaurus_SL5000;
+ d-> m_modelstr = "Zaurus SL-5000D (unverified)";
+ }
m_leds [0] = Led_Off;
}
#include <unistd.h>
#include <fcntl.h>
diff --git a/libopie/odevice.h b/libopie/odevice.h
index e50009c..86491d4 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -41,12 +41,13 @@ enum OModel {
Model_iPAQ_H38xx = ( Model_iPAQ | 0x000008 ),
Model_iPAQ_H39xx = ( Model_iPAQ | 0x000010 ),
Model_Zaurus = ( 2 << 24 ),
Model_Zaurus_SL5000 = ( Model_Zaurus | 0x000001 ),
+ Model_Zaurus_SL5500 = ( Model_Zaurus | 0x000002 ),
};
enum OVendor {
Vendor_Unknown,
Vendor_HP,