summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-04-21 17:15:01 (UTC)
committer kergoth <kergoth>2003-04-21 17:15:01 (UTC)
commitb3ec819dfed40b05b2bea1b1392de774bc1f572d (patch) (side-by-side diff)
treec0e30307ba6623f49cda10ce35e7f3323b4062f8
parenteecb4b6d3c22466f273c3498b6370b1e1c67c726 (diff)
downloadopie-b3ec819dfed40b05b2bea1b1392de774bc1f572d.zip
opie-b3ec819dfed40b05b2bea1b1392de774bc1f572d.tar.gz
opie-b3ec819dfed40b05b2bea1b1392de774bc1f572d.tar.bz2
Final fix for the suspend bug
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 501b601..62e3569 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -51,18 +51,16 @@
#define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size))
#define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size))
#define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size))
using namespace Opie;
class ODeviceData {
public:
- bool m_qwsserver : 1;
-
QString m_vendorstr;
OVendor m_vendor;
QString m_modelstr;
OModel m_model;
QString m_systemstr;
OSystem m_system;
@@ -234,18 +232,20 @@ struct z_button z_buttons_c700 [] = {
static QCString makeChannel ( const char *str )
{
if ( str && !::strchr ( str, '/' ))
return QCString ( "QPE/Application/" ) + str;
else
return str;
}
-
-
+static inline bool isQWS()
+{
+ return qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
+}
ODevice *ODevice::inst ( )
{
static ODevice *dev = 0;
if ( !dev ) {
if ( QFile::exists ( "/proc/hal/model" ))
dev = new iPAQ ( );
@@ -266,18 +266,16 @@ ODevice *ODevice::inst ( )
*
**************************************************/
ODevice::ODevice ( )
{
d = new ODeviceData;
- d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
-
d-> m_modelstr = "Unknown";
d-> m_model = Model_Unknown;
d-> m_vendorstr = "Unknown";
d-> m_vendor = Vendor_Unknown;
d-> m_systemstr = "Unknown";
d-> m_system = System_Unknown;
d-> m_sysverstr = "0.0";
d-> m_rotation = Rot0;
@@ -301,18 +299,16 @@ void ODevice::init ( )
/**
* This method initialises the button mapping
*/
void ODevice::initButtons ( )
{
if ( d-> m_buttons )
return;
- d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
-
// Simulation uses iPAQ 3660 device buttons
qDebug ( "init Buttons" );
d-> m_buttons = new QValueList <ODeviceButton>;
for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) {
i_button *ib = ipaq_buttons + i;
ODeviceButton b;
@@ -354,17 +350,17 @@ bool ODevice::setSoftSuspend ( bool /*soft*/ )
* do have asynchronus apm implementations.
* This method will either fail and return false or it'll suspend the
* device and return once the device got woken up
*
* @return if the device got suspended
*/
bool ODevice::suspend ( )
{
- if ( !d-> m_qwsserver ) // only qwsserver is allowed to suspend
+ if ( !isQWS( ) ) // only qwsserver is allowed to suspend
return false;
if ( d-> m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices
return false;
bool res = false;
struct timeval tvs, tvn;
@@ -802,19 +798,17 @@ void iPAQ::init ( )
}
void iPAQ::initButtons ( )
{
if ( d-> m_buttons )
return;
- d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
-
- if ( d-> m_qwsserver )
+ if ( isQWS( ) )
QWSServer::setKeyboardFilter ( this );
d-> m_buttons = new QValueList <ODeviceButton>;
for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) {
i_button *ib = ipaq_buttons + i;
ODeviceButton b;
@@ -1202,18 +1196,16 @@ void Zaurus::init ( )
m_leds [0] = Led_Off;
}
void Zaurus::initButtons ( )
{
if ( d-> m_buttons )
return;
- d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
-
d-> m_buttons = new QValueList <ODeviceButton>;
struct z_button * pz_buttons;
int buttoncount;
switch ( d-> m_model ) {
case Model_Zaurus_SLC700:
pz_buttons = z_buttons_c700;
buttoncount = ARRAY_SIZE(z_buttons_c700);