summaryrefslogtreecommitdiff
path: root/libopie
authorkergoth <kergoth>2003-04-18 21:54:43 (UTC)
committer kergoth <kergoth>2003-04-18 21:54:43 (UTC)
commitd0852e67c15c5a973b7bc7f7bee238a6fd00dee6 (patch) (unidiff)
tree68acc72ac204045b2492693ca668ece78e5f3a2c /libopie
parent1cdd9c974e621f6992ddc6dfccbc815baebd19ee (diff)
downloadopie-d0852e67c15c5a973b7bc7f7bee238a6fd00dee6.zip
opie-d0852e67c15c5a973b7bc7f7bee238a6fd00dee6.tar.gz
opie-d0852e67c15c5a973b7bc7f7bee238a6fd00dee6.tar.bz2
Add rotation direction to ODevice, to ensure the default is appropriate for the hardware in question.
Diffstat (limited to 'libopie') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp10
-rw-r--r--libopie/odevice.h7
2 files changed, 17 insertions, 0 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 0e1c0dd..29c8ad2 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -38,64 +38,65 @@
38#include "odevice.h" 38#include "odevice.h"
39 39
40#include <qwindowsystem_qws.h> 40#include <qwindowsystem_qws.h>
41 41
42 42
43// _IO and friends are only defined in kernel headers ... 43// _IO and friends are only defined in kernel headers ...
44 44
45#define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) 45#define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 ))
46 46
47#define OD_IO(type,number) OD_IOC(0,type,number,0) 47#define OD_IO(type,number) OD_IOC(0,type,number,0)
48#define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) 48#define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size))
49#define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) 49#define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size))
50#define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) 50#define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size))
51 51
52using namespace Opie; 52using namespace Opie;
53 53
54class ODeviceData { 54class ODeviceData {
55public: 55public:
56 bool m_qwsserver : 1; 56 bool m_qwsserver : 1;
57 57
58 QString m_vendorstr; 58 QString m_vendorstr;
59 OVendor m_vendor; 59 OVendor m_vendor;
60 60
61 QString m_modelstr; 61 QString m_modelstr;
62 OModel m_model; 62 OModel m_model;
63 63
64 QString m_systemstr; 64 QString m_systemstr;
65 OSystem m_system; 65 OSystem m_system;
66 66
67 QString m_sysverstr; 67 QString m_sysverstr;
68 68
69 Transformation m_rotation; 69 Transformation m_rotation;
70 ODirection m_direction;
70 71
71 QValueList <ODeviceButton> *m_buttons; 72 QValueList <ODeviceButton> *m_buttons;
72 uint m_holdtime; 73 uint m_holdtime;
73}; 74};
74 75
75 76
76class iPAQ : public ODevice, public QWSServer::KeyboardFilter { 77class iPAQ : public ODevice, public QWSServer::KeyboardFilter {
77protected: 78protected:
78 virtual void init ( ); 79 virtual void init ( );
79 virtual void initButtons ( ); 80 virtual void initButtons ( );
80 81
81public: 82public:
82 virtual bool setSoftSuspend ( bool soft ); 83 virtual bool setSoftSuspend ( bool soft );
83 84
84 virtual bool setDisplayBrightness ( int b ); 85 virtual bool setDisplayBrightness ( int b );
85 virtual int displayBrightnessResolution ( ) const; 86 virtual int displayBrightnessResolution ( ) const;
86 87
87 virtual void alarmSound ( ); 88 virtual void alarmSound ( );
88 89
89 virtual QValueList <OLed> ledList ( ) const; 90 virtual QValueList <OLed> ledList ( ) const;
90 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 91 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
91 virtual OLedState ledState ( OLed led ) const; 92 virtual OLedState ledState ( OLed led ) const;
92 virtual bool setLedState ( OLed led, OLedState st ); 93 virtual bool setLedState ( OLed led, OLedState st );
93 94
94 virtual bool hasLightSensor ( ) const; 95 virtual bool hasLightSensor ( ) const;
95 virtual int readLightSensor ( ); 96 virtual int readLightSensor ( );
96 virtual int lightSensorResolution ( ) const; 97 virtual int lightSensorResolution ( ) const;
97 98
98protected: 99protected:
99 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); 100 virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat );
100 virtual void timerEvent ( QTimerEvent *te ); 101 virtual void timerEvent ( QTimerEvent *te );
101 102
@@ -225,64 +226,65 @@ ODevice *ODevice::inst ( )
225 else if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" )) 226 else if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" ))
226 dev = new Zaurus ( ); 227 dev = new Zaurus ( );
227 else 228 else
228 dev = new ODevice ( ); 229 dev = new ODevice ( );
229 230
230 dev-> init ( ); 231 dev-> init ( );
231 } 232 }
232 return dev; 233 return dev;
233} 234}
234 235
235 236
236/************************************************** 237/**************************************************
237 * 238 *
238 * common 239 * common
239 * 240 *
240 **************************************************/ 241 **************************************************/
241 242
242 243
243ODevice::ODevice ( ) 244ODevice::ODevice ( )
244{ 245{
245 d = new ODeviceData; 246 d = new ODeviceData;
246 247
247 d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; 248 d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
248 249
249 d-> m_modelstr = "Unknown"; 250 d-> m_modelstr = "Unknown";
250 d-> m_model = Model_Unknown; 251 d-> m_model = Model_Unknown;
251 d-> m_vendorstr = "Unknown"; 252 d-> m_vendorstr = "Unknown";
252 d-> m_vendor = Vendor_Unknown; 253 d-> m_vendor = Vendor_Unknown;
253 d-> m_systemstr = "Unknown"; 254 d-> m_systemstr = "Unknown";
254 d-> m_system = System_Unknown; 255 d-> m_system = System_Unknown;
255 d-> m_sysverstr = "0.0"; 256 d-> m_sysverstr = "0.0";
256 d-> m_rotation = Rot0; 257 d-> m_rotation = Rot0;
258 d-> m_direction = CW;
257 259
258 d-> m_holdtime = 1000; // 1000ms 260 d-> m_holdtime = 1000; // 1000ms
259 d-> m_buttons = 0; 261 d-> m_buttons = 0;
260} 262}
261 263
262void ODevice::systemMessage ( const QCString &msg, const QByteArray & ) 264void ODevice::systemMessage ( const QCString &msg, const QByteArray & )
263{ 265{
264 if ( msg == "deviceButtonMappingChanged()" ) { 266 if ( msg == "deviceButtonMappingChanged()" ) {
265 reloadButtonMapping ( ); 267 reloadButtonMapping ( );
266 } 268 }
267} 269}
268 270
269void ODevice::init ( ) 271void ODevice::init ( )
270{ 272{
271} 273}
272 274
273/** 275/**
274 * This method initialises the button mapping 276 * This method initialises the button mapping
275 */ 277 */
276void ODevice::initButtons ( ) 278void ODevice::initButtons ( )
277{ 279{
278 if ( d-> m_buttons ) 280 if ( d-> m_buttons )
279 return; 281 return;
280 282
281 d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; 283 d-> m_qwsserver = qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false;
282 284
283 // Simulation uses iPAQ 3660 device buttons 285 // Simulation uses iPAQ 3660 device buttons
284 286
285 qDebug ( "init Buttons" ); 287 qDebug ( "init Buttons" );
286 d-> m_buttons = new QValueList <ODeviceButton>; 288 d-> m_buttons = new QValueList <ODeviceButton>;
287 289
288 for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { 290 for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) {
@@ -441,64 +443,72 @@ OModel ODevice::model ( ) const
441 * This does return the systen name 443 * This does return the systen name
442 */ 444 */
443QString ODevice::systemString ( ) const 445QString ODevice::systemString ( ) const
444{ 446{
445 return d-> m_systemstr; 447 return d-> m_systemstr;
446} 448}
447 449
448/** 450/**
449 * Return System as OSystem value 451 * Return System as OSystem value
450 */ 452 */
451OSystem ODevice::system ( ) const 453OSystem ODevice::system ( ) const
452{ 454{
453 return d-> m_system; 455 return d-> m_system;
454} 456}
455 457
456/** 458/**
457 * @return the version string of the base system 459 * @return the version string of the base system
458 */ 460 */
459QString ODevice::systemVersionString ( ) const 461QString ODevice::systemVersionString ( ) const
460{ 462{
461 return d-> m_sysverstr; 463 return d-> m_sysverstr;
462} 464}
463 465
464/** 466/**
465 * @return the current Transformation 467 * @return the current Transformation
466 */ 468 */
467Transformation ODevice::rotation ( ) const 469Transformation ODevice::rotation ( ) const
468{ 470{
469 return d-> m_rotation; 471 return d-> m_rotation;
470} 472}
471 473
472/** 474/**
475 * @return the current rotation direction
476 */
477ODirection ODevice::direction ( ) const
478{
479 return d-> m_direction;
480}
481
482/**
473 * This plays an alarmSound 483 * This plays an alarmSound
474 */ 484 */
475void ODevice::alarmSound ( ) 485void ODevice::alarmSound ( )
476{ 486{
477#ifndef QT_NO_SOUND 487#ifndef QT_NO_SOUND
478 static Sound snd ( "alarm" ); 488 static Sound snd ( "alarm" );
479 489
480 if ( snd. isFinished ( )) 490 if ( snd. isFinished ( ))
481 snd. play ( ); 491 snd. play ( );
482#endif 492#endif
483} 493}
484 494
485/** 495/**
486 * This plays a key sound 496 * This plays a key sound
487 */ 497 */
488void ODevice::keySound ( ) 498void ODevice::keySound ( )
489{ 499{
490#ifndef QT_NO_SOUND 500#ifndef QT_NO_SOUND
491 static Sound snd ( "keysound" ); 501 static Sound snd ( "keysound" );
492 502
493 if ( snd. isFinished ( )) 503 if ( snd. isFinished ( ))
494 snd. play ( ); 504 snd. play ( );
495#endif 505#endif
496} 506}
497 507
498/** 508/**
499 * This plays a touch sound 509 * This plays a touch sound
500 */ 510 */
501void ODevice::touchSound ( ) 511void ODevice::touchSound ( )
502{ 512{
503 513
504#ifndef QT_NO_SOUND 514#ifndef QT_NO_SOUND
diff --git a/libopie/odevice.h b/libopie/odevice.h
index 45a790b..0c55ea0 100644
--- a/libopie/odevice.h
+++ b/libopie/odevice.h
@@ -74,111 +74,118 @@ enum OVendor {
74enum OSystem { 74enum OSystem {
75 System_Unknown, 75 System_Unknown,
76 76
77 System_Familiar, 77 System_Familiar,
78 System_Zaurus, 78 System_Zaurus,
79 System_OpenZaurus 79 System_OpenZaurus
80}; 80};
81 81
82enum OLedState { 82enum OLedState {
83 Led_Off, 83 Led_Off,
84 Led_On, 84 Led_On,
85 Led_BlinkSlow, 85 Led_BlinkSlow,
86 Led_BlinkFast 86 Led_BlinkFast
87}; 87};
88 88
89enum OLed { 89enum OLed {
90 Led_Mail, 90 Led_Mail,
91 Led_Power, 91 Led_Power,
92 Led_BlueTooth 92 Led_BlueTooth
93}; 93};
94 94
95enum OHardKey { 95enum OHardKey {
96 HardKey_Datebook = Qt::Key_F9, 96 HardKey_Datebook = Qt::Key_F9,
97 HardKey_Contacts = Qt::Key_F10, 97 HardKey_Contacts = Qt::Key_F10,
98 HardKey_Menu = Qt::Key_F11, 98 HardKey_Menu = Qt::Key_F11,
99 HardKey_Home = Qt::Key_F12, 99 HardKey_Home = Qt::Key_F12,
100 HardKey_Mail = Qt::Key_F13, 100 HardKey_Mail = Qt::Key_F13,
101 HardKey_Record = Qt::Key_F24, 101 HardKey_Record = Qt::Key_F24,
102 HardKey_Suspend = Qt::Key_F34, 102 HardKey_Suspend = Qt::Key_F34,
103 HardKey_Backlight = Qt::Key_F35, 103 HardKey_Backlight = Qt::Key_F35,
104}; 104};
105 105
106enum ODirection {
107 CW = 0,
108 CCW = 1,
109 Flip = 2,
110};
111
106/** 112/**
107 * A singleton which gives informations about device specefic option 113 * A singleton which gives informations about device specefic option
108 * like the Hardware used, LEDs, the Base Distribution and 114 * like the Hardware used, LEDs, the Base Distribution and
109 * hardware key mappings. 115 * hardware key mappings.
110 * 116 *
111 * 117 *
112 * @short A small class for device specefic options 118 * @short A small class for device specefic options
113 * @see QObject 119 * @see QObject
114 * @author Robert Griebl 120 * @author Robert Griebl
115 * @version 1.0 121 * @version 1.0
116 */ 122 */
117class ODevice : public QObject { 123class ODevice : public QObject {
118 Q_OBJECT 124 Q_OBJECT
119 125
120private: 126private:
121 /* disable copy */ 127 /* disable copy */
122 ODevice ( const ODevice & ); 128 ODevice ( const ODevice & );
123 129
124protected: 130protected:
125 ODevice ( ); 131 ODevice ( );
126 virtual void init ( ); 132 virtual void init ( );
127 virtual void initButtons ( ); 133 virtual void initButtons ( );
128 134
129 ODeviceData *d; 135 ODeviceData *d;
130 136
131public: 137public:
132 // sandman do we want to allow destructions? -zecke? 138 // sandman do we want to allow destructions? -zecke?
133 virtual ~ODevice ( ); 139 virtual ~ODevice ( );
134 140
135 141
136 static ODevice *inst ( ); 142 static ODevice *inst ( );
137 143
138// information 144// information
139 145
140 QString modelString ( ) const; 146 QString modelString ( ) const;
141 OModel model ( ) const; 147 OModel model ( ) const;
142 inline OModel series ( ) const { return (OModel) ( model ( ) & Model_Series_Mask ); } 148 inline OModel series ( ) const { return (OModel) ( model ( ) & Model_Series_Mask ); }
143 149
144 QString vendorString ( ) const; 150 QString vendorString ( ) const;
145 OVendor vendor ( ) const; 151 OVendor vendor ( ) const;
146 152
147 QString systemString ( ) const; 153 QString systemString ( ) const;
148 OSystem system ( ) const; 154 OSystem system ( ) const;
149 155
150 QString systemVersionString ( ) const; 156 QString systemVersionString ( ) const;
151 157
152 Transformation rotation ( ) const; 158 Transformation rotation ( ) const;
159 ODirection direction ( ) const;
153 160
154// system 161// system
155 162
156 virtual bool setSoftSuspend ( bool on ); 163 virtual bool setSoftSuspend ( bool on );
157 virtual bool suspend ( ); 164 virtual bool suspend ( );
158 165
159 virtual bool setDisplayStatus ( bool on ); 166 virtual bool setDisplayStatus ( bool on );
160 virtual bool setDisplayBrightness ( int brightness ); 167 virtual bool setDisplayBrightness ( int brightness );
161 virtual int displayBrightnessResolution ( ) const; 168 virtual int displayBrightnessResolution ( ) const;
162 169
163// input / output 170// input / output
164 //FIXME playAlarmSound and al might be better -zecke 171 //FIXME playAlarmSound and al might be better -zecke
165 virtual void alarmSound ( ); 172 virtual void alarmSound ( );
166 virtual void keySound ( ); 173 virtual void keySound ( );
167 virtual void touchSound ( ); 174 virtual void touchSound ( );
168 175
169 virtual QValueList <OLed> ledList ( ) const; 176 virtual QValueList <OLed> ledList ( ) const;
170 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 177 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
171 virtual OLedState ledState ( OLed led ) const; 178 virtual OLedState ledState ( OLed led ) const;
172 virtual bool setLedState ( OLed led, OLedState st ); 179 virtual bool setLedState ( OLed led, OLedState st );
173 180
174 virtual bool hasLightSensor ( ) const; 181 virtual bool hasLightSensor ( ) const;
175 virtual int readLightSensor ( ); 182 virtual int readLightSensor ( );
176 virtual int lightSensorResolution ( ) const; 183 virtual int lightSensorResolution ( ) const;
177 184
178 /** 185 /**
179 * Returns the available buttons on this device. The number and location 186 * Returns the available buttons on this device. The number and location
180 * of buttons will vary depending on the device. Button numbers will be assigned 187 * of buttons will vary depending on the device. Button numbers will be assigned
181 * by the device manufacturer and will be from most preferred button to least preffered 188 * by the device manufacturer and will be from most preferred button to least preffered
182 * button. Note that this list only contains "user mappable" buttons. 189 * button. Note that this list only contains "user mappable" buttons.
183 */ 190 */
184 const QValueList<ODeviceButton> &buttons ( ); 191 const QValueList<ODeviceButton> &buttons ( );