summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp8
-rw-r--r--libopie/odevice.h2
2 files changed, 1 insertions, 9 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 6572fb6..1da8862 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -102,83 +102,77 @@ ODevice *ODevice::inst ( )
}
return dev;
}
ODevice::ODevice ( )
{
d = new ODeviceData;
d-> m_modelstr = "Unknown";
d-> m_model = OMODEL_Unknown;
d-> m_vendorstr = "Unkown";
d-> m_vendor = OVENDOR_Unknown;
d-> m_systemstr = "Unkown";
d-> m_system = OSYSTEM_Unknown;
d-> m_sysverstr = "0.0";
}
void ODevice::init ( )
{
}
ODevice::~ODevice ( )
{
delete d;
}
//#include <linux/apm_bios.h>
//#define APM_IOC_SUSPEND _IO('A',2)
#define APM_IOC_SUSPEND (( 0<<30 ) | ( 'A'<<8 ) | ( 2 ) | ( 0<<16 ))
-
-void ODevice::tstp_sighandler ( int )
-{
-}
-
-
bool ODevice::suspend ( )
{
if ( d-> m_model == OMODEL_Unknown ) // better don't suspend in qvfb / on unkown devices
return false;
int fd;
bool res = false;
if ((( fd = ::open ( "/dev/apm_bios", O_RDWR )) >= 0 ) ||
(( fd = ::open ( "/dev/misc/apm_bios",O_RDWR )) >= 0 )) {
struct timeval tvs, tvn;
- ::signal ( SIGTSTP, tstp_sighandler ); // we don't want to be stopped
+ ::signal ( SIGTSTP, SIG_IGN ); // we don't want to be stopped
::gettimeofday ( &tvs, 0 );
res = ( ::ioctl ( fd, APM_IOC_SUSPEND ) == 0 ); // tell the kernel to "start" suspending
::close ( fd );
if ( res ) {
::kill ( -::getpid ( ), SIGTSTP ); // stop everthing in out process group
do { // wait at most 1.5 sec: either suspend didn't work or the device resumed
::usleep ( 200 * 1000 );
::gettimeofday ( &tvn, 0 );
} while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 1500 );
::kill ( -::getpid ( ), SIGCONT ); // continue everything in our process group
}
::signal ( SIGTSTP, SIG_DFL );
}
return res;
}
QString ODevice::vendorString ( )
{
return d-> m_vendorstr;
}
OVendor ODevice::vendor ( )
{
return d-> m_vendor;
}
diff --git a/libopie/odevice.h b/libopie/odevice.h
index cda504a..5009b91 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -73,39 +73,37 @@ public:
QString modelString ( );
OModel model ( );
QString vendorString ( );
OVendor vendor ( );
QString systemString ( );
OSystem system ( );
QString systemVersionString ( );
// input / output
virtual void alarmSound ( );
virtual void keySound ( );
virtual void touchSound ( );
virtual uint hasLeds ( ) const;
virtual OLedState led ( uint which ) const;
virtual bool setLed ( uint which, OLedState st );
virtual ~ODevice ( );
protected:
ODevice ( );
virtual void init ( );
ODeviceData *d;
private:
ODevice ( const ODevice & );
-
- static void tstp_sighandler ( int );
};
#endif