author | mickeyl <mickeyl> | 2005-01-23 20:52:18 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-01-23 20:52:18 (UTC) |
commit | be26adf324ea0b723cabcd735b0833e16410ceea (patch) (side-by-side diff) | |
tree | d196481a0e503fb61ec8fad05d0835b877c186cc | |
parent | ab0242ff1bbc40ec8bc38c3cb748a44797ffe3db (diff) | |
download | opie-be26adf324ea0b723cabcd735b0833e16410ceea.zip opie-be26adf324ea0b723cabcd735b0833e16410ceea.tar.gz opie-be26adf324ea0b723cabcd735b0833e16410ceea.tar.bz2 |
- consolidate reading hinge sensor into one place
- return proper rotation and direction if hinge sensor not present (like in 2.6 atm.)
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.cpp | 33 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.h | 2 |
2 files changed, 10 insertions, 25 deletions
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp index d3ab63a..b22ee70 100644 --- a/libopie2/opiecore/device/odevice_zaurus.cpp +++ b/libopie2/opiecore/device/odevice_zaurus.cpp @@ -545,20 +545,12 @@ Transformation Zaurus::rotation() const switch ( d->m_model ) { case Model_Zaurus_SLC3000: // fallthrough case Model_Zaurus_SLC7x0: - handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK); - if (handle == -1) { - return Rot270; - } else { - retval = ::ioctl(handle, SHARP_IOCTL_GET_ROTATION); - ::close (handle); - - if (retval == 2 ) - rot = Rot0; - else - rot = Rot270; - } + OHingeStatus hs = readHingeSensor(); + if ( hs == CASE_PORTRAIT ) rot = Rot0; + else if ( hs == CASE_UNKNOWN ) rot = Rot0; + else rot = Rot270; break; case Model_Zaurus_SL6000: case Model_Zaurus_SLB600: case Model_Zaurus_SLA300: @@ -578,19 +570,12 @@ ODirection Zaurus::direction() const int retval = 0; switch ( d->m_model ) { case Model_Zaurus_SLC3000: // fallthrough case Model_Zaurus_SLC7x0: - handle = ::open( "/dev/apm_bios", O_RDWR|O_NONBLOCK ); - if (handle == -1) { - dir = CW; - } else { - retval = ::ioctl( handle, SHARP_IOCTL_GET_ROTATION ); - ::close (handle); - if (retval == 2 ) - dir = CCW; - else - dir = CW; - } + OHingeStatus hs = readHingeSensor(); + if ( hs == CASE_PORTRAIT ) dir = CCW; + else if ( hs == CASE_UNKNOWN ) dir = CCW; + else dir = CW; break; case Model_Zaurus_SL6000: case Model_Zaurus_SLA300: case Model_Zaurus_SLB600: @@ -607,9 +592,9 @@ bool Zaurus::hasHingeSensor() const { return d->m_model == Model_Zaurus_SLC7x0 || d->m_model == Model_Zaurus_SLC3000; } -OHingeStatus Zaurus::readHingeSensor() +OHingeStatus Zaurus::readHingeSensor() const { if (m_embedix) { int handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK); diff --git a/libopie2/opiecore/device/odevice_zaurus.h b/libopie2/opiecore/device/odevice_zaurus.h index ed9cf67..c763798 100644 --- a/libopie2/opiecore/device/odevice_zaurus.h +++ b/libopie2/opiecore/device/odevice_zaurus.h @@ -109,9 +109,9 @@ class Zaurus : public ODevice virtual OLedState ledState( OLed led ) const; virtual bool setLedState( OLed led, OLedState st ); virtual bool hasHingeSensor() const; - virtual OHingeStatus readHingeSensor(); + virtual OHingeStatus readHingeSensor() const; virtual bool suspend(); virtual Transformation rotation() const; virtual ODirection direction() const; |