summaryrefslogtreecommitdiff
path: root/libopie/odevice.cpp
authorkergoth <kergoth>2003-01-26 01:01:32 (UTC)
committer kergoth <kergoth>2003-01-26 01:01:32 (UTC)
commit7b5f4142a1ace5fba9fdf9b8e5538669a56ba60b (patch) (side-by-side diff)
tree29ab0dfa5c6d35621857af78a6fa3eaae517be33 /libopie/odevice.cpp
parent7d07568352e368fe473e4c1c5493df2ebb0090d2 (diff)
downloadopie-7b5f4142a1ace5fba9fdf9b8e5538669a56ba60b.zip
opie-7b5f4142a1ace5fba9fdf9b8e5538669a56ba60b.tar.gz
opie-7b5f4142a1ace5fba9fdf9b8e5538669a56ba60b.tar.bz2
1) Add Sharp Zaurus A300/B600|5600/C700 models, will add the model specific bits
later. 2) Add rotation data and method, to set a default rotation based on model .. so we can ditch the use of the startup script to set that.
Diffstat (limited to 'libopie/odevice.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp55
1 files changed, 47 insertions, 8 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index d39d72f..78eb416 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -60,16 +60,18 @@ public:
QString m_modelstr;
OModel m_model;
QString m_systemstr;
OSystem m_system;
QString m_sysverstr;
+
+ Transformation m_rotation;
QValueList <ODeviceButton> m_buttons;
uint m_holdtime;
};
class iPAQ : public ODevice, public QWSServer::KeyboardFilter {
protected:
@@ -244,16 +246,17 @@ ODevice::ODevice ( )
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 = None;
d-> m_holdtime = 1000; // 1000ms
QCopChannel *sysch = new QCopChannel ( "QPE/System", this );
connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & )));
}
void ODevice::systemMessage ( const QCString &msg, const QByteArray & )
@@ -395,16 +398,21 @@ OSystem ODevice::system ( ) const
return d-> m_system;
}
QString ODevice::systemVersionString ( ) const
{
return d-> m_sysverstr;
}
+Transformation ODevice::rotation ( ) const
+{
+ return d-> m_rotation;
+}
+
void ODevice::alarmSound ( )
{
#ifndef QT_NO_SOUND
static Sound snd ( "alarm" );
if ( snd. isFinished ( ))
snd. play ( );
#endif
@@ -582,16 +590,29 @@ void iPAQ::init ( )
else if ( d-> m_modelstr == "H3900" )
d-> m_model = Model_iPAQ_H39xx;
else
d-> m_model = Model_Unknown;
f. close ( );
}
+ 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 )) {
d-> m_systemstr = "Familiar";
d-> m_system = System_Familiar;
QTextStream ts ( &f );
d-> m_sysverstr = ts. readLine ( ). mid ( 10 );
@@ -636,17 +657,16 @@ typedef struct {
unsigned char pwr;
unsigned char brightness;
} FLITE_IN;
#define LED_ON OD_IOW( 'f', 5, LED_IN )
#define FLITE_ON OD_IOW( 'f', 7, FLITE_IN )
-
QValueList <OLed> iPAQ::ledList ( ) const
{
QValueList <OLed> vl;
vl << Led_Power;
if ( d-> m_model == Model_iPAQ_H38xx )
vl << Led_BlueTooth;
return vl;
@@ -932,27 +952,46 @@ void Zaurus::init ( )
d-> m_system = System_Zaurus;
}
f. setName ( "/proc/deviceinfo/product" );
if ( f. open ( IO_ReadOnly ) ) {
QTextStream ts ( &f );
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;
}
for ( uint i = 0; i < ( sizeof( z_buttons ) / sizeof( z_button )); i++ ) {
z_button *zb = z_buttons + i;
ODeviceButton b;
b. setKeycode ( zb-> code );
b. setUserText ( qApp-> translate ( "Button", zb-> utext ));