-rw-r--r-- | libopie/odevice.cpp | 55 | ||||
-rw-r--r-- | libopie/odevice.h | 10 |
2 files changed, 54 insertions, 11 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index d39d72f..78eb416 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp @@ -66,4 +66,6 @@ public: QString m_sysverstr; + + Transformation m_rotation; QValueList <ODeviceButton> m_buttons; @@ -250,4 +252,5 @@ ODevice::ODevice ( ) d-> m_system = System_Unknown; d-> m_sysverstr = "0.0"; + d-> m_rotation = None; d-> m_holdtime = 1000; // 1000ms @@ -401,4 +404,9 @@ QString ODevice::systemVersionString ( ) const } +Transformation ODevice::rotation ( ) const +{ + return d-> m_rotation; +} + void ODevice::alarmSound ( ) { @@ -588,4 +596,17 @@ void iPAQ::init ( ) } + switch ( d-> m_model ) { + case Model_iPAQ_H31xx: + case Model_iPAQ_H38xx: + d-> m_rotation = Rot90; + break; + case Model_iPAQ_H36xx: + case Model_iPAQ_H37xx: + case Model_iPAQ_H39xx: + default: + d-> m_rotation = Rot270; + break; + } + f. setName ( "/etc/familiar-version" ); if ( f. open ( IO_ReadOnly )) { @@ -642,5 +663,4 @@ typedef struct { - QValueList <OLed> iPAQ::ledList ( ) const { @@ -938,15 +958,34 @@ void Zaurus::init ( ) 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_modelstr = QString("Zaurus ") + model; + if ( model == "SL-5500" ) d-> m_model = Model_Zaurus_SL5500; - d-> m_modelstr = "Zaurus SL-5500"; - } + else if ( model == "SL-C700" ) + d-> m_model = Model_Zaurus_SLC700; + else if ( model == "SL-A300" ) + d-> m_model = Model_Zaurus_SLA300; + else if ( model == "SL-B600" || model == "SL-5600" ) + d-> m_model = Model_Zaurus_SLB600; + else + d-> m_model = Model_Zaurus_SL5000; } else { d-> m_model = Model_Zaurus_SL5000; - d-> m_modelstr = "Zaurus SL-5000D (unverified)"; + d-> m_modelstr = "Zaurus (model unknown)"; + } + + switch ( d-> m_model ) { + case Model_Zaurus_SLC700: + /* note for C700, we must check the display rotation + * sensor to set an appropriate value + */ + case Model_Zaurus_SLA300: + case Model_Zaurus_SLB600: + case Model_Zaurus_SL5500: + case Model_Zaurus_SL5000: + default: + d-> m_rotation = Rot270; + break; } diff --git a/libopie/odevice.h b/libopie/odevice.h index 54b85a2..8164c4d 100644 --- a/libopie/odevice.h +++ b/libopie/odevice.h @@ -27,4 +27,6 @@ #include <opie/odevicebutton.h> +enum Transformation { None, Rot90, Rot180, Rot270 }; /* from qgfxtransformed_qws.cpp */ + class ODeviceData; @@ -49,4 +51,7 @@ enum OModel { Model_Zaurus_SL5000 = ( Model_Zaurus | 0x000001 ), Model_Zaurus_SL5500 = ( Model_Zaurus | 0x000002 ), + Model_Zaurus_SLA300 = ( Model_Zaurus | 0x000003 ), + Model_Zaurus_SLB600 = ( Model_Zaurus | 0x000004 ), + Model_Zaurus_SLC700 = ( Model_Zaurus | 0x000005 ), }; @@ -90,5 +95,4 @@ enum OHardKey { }; - class ODevice : public QObject { Q_OBJECT @@ -108,6 +112,4 @@ public: static ODevice *inst ( ); - - // information @@ -124,4 +126,6 @@ public: QString systemVersionString ( ) const; + Transformation rotation ( ) const; + // system |