summaryrefslogtreecommitdiff
path: root/libopie2/opiecore/device/odevice_zaurus.cpp
Side-by-side diff
Diffstat (limited to 'libopie2/opiecore/device/odevice_zaurus.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.cpp36
1 files changed, 4 insertions, 32 deletions
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp
index 82e127e..67dfa41 100644
--- a/libopie2/opiecore/device/odevice_zaurus.cpp
+++ b/libopie2/opiecore/device/odevice_zaurus.cpp
@@ -123,24 +123,28 @@ struct z_button z_buttons_c700 [] = {
// Zaurus-Poodle (PXA-model w/ 320x240 lcd, for SL5600)
// Zaurus-Corgi (PXA-model w/ 640x480 lcd, for C700, C750, C760, C860, C3000)
// Zaurus-Tosa (PXA-model w/ 480x640 lcd, for SL6000)
//
// Only question right now is: Do we really need to do it? Because as soon
// as the OpenZaurus kernel is ready, there will be a unified interface for all
// Zaurus models (concerning apm, backlight, buttons, etc.)
//
// Comments? - mickeyl.
void Zaurus::init(const QString& cpu_info)
{
+ // Set the time to wait until the system is realy suspended
+ // the delta between apm --suspend and sleeping
+ setAPMTimeOut( 15000 );
+
// generic distribution code already scanned /etc/issue at that point -
// embedix releases contain "Embedix <version> | Linux for Embedded Devices"
if ( d->m_sysverstr.contains( "embedix", false ) )
{
d->m_vendorstr = "Sharp";
d->m_vendor = Vendor_Sharp;
d->m_systemstr = "Zaurus";
d->m_system = System_Zaurus;
m_embedix = true;
}
else
{
@@ -473,56 +477,24 @@ bool Zaurus::setDisplayStatus( bool on )
if ( fd )
{
char buf[10];
buf[0] = on ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN;
buf[1] = '\0';
res = ( ::write( fd, &buf[0], 2 ) == 0 );
::close( fd );
}
}
return res;
}
-bool Zaurus::suspend()
-{
- qDebug("ODevice::suspend");
- if ( !isQWS( ) ) // only qwsserver is allowed to suspend
- return false;
-
- if ( d->m_model == Model_Unknown ) // better don't suspend on unknown devices
- return false;
-
- bool res = false;
- ODevice::sendSuspendmsg();
-
- struct timeval tvs, tvn;
- ::gettimeofday ( &tvs, 0 );
-
- ::sync(); // flush fs caches
- res = ( ::system ( "apm --suspend" ) == 0 );
-
- // This is needed because the apm implementation is asynchronous and we
- // can not be sure when exactly the device is really suspended
- if ( res ) {
- do { // Yes, wait 15 seconds. This APM sucks big time.
- ::usleep ( 200 * 1000 );
- ::gettimeofday ( &tvn, 0 );
- } while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 15000 );
- }
-
- QCopEnvelope ( "QPE/Rotation", "rotateDefault()" );
- return res;
-}
-
-
Transformation Zaurus::rotation() const
{
qDebug( "Zaurus::rotation()" );
Transformation rot;
switch ( d->m_model ) {
case Model_Zaurus_SLC3000: // fallthrough
case Model_Zaurus_SLC7x0:
{
OHingeStatus hs = readHingeSensor();
qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs );