-rw-r--r-- | libopie/odevice.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index 82a0099..35d6cb4 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp | |||
@@ -1,815 +1,815 @@ | |||
1 | /* This file is part of the OPIE libraries | 1 | /* This file is part of the OPIE libraries |
2 | Copyright (C) 2002 Robert Griebl (sandman@handhelds.org) | 2 | Copyright (C) 2002 Robert Griebl (sandman@handhelds.org) |
3 | 3 | ||
4 | This library is free software; you can redistribute it and/or | 4 | This library is free software; you can redistribute it and/or |
5 | modify it under the terms of the GNU Library General Public | 5 | modify it under the terms of the GNU Library General Public |
6 | License as published by the Free Software Foundation; either | 6 | License as published by the Free Software Foundation; either |
7 | version 2 of the License, or (at your option) any later version. | 7 | version 2 of the License, or (at your option) any later version. |
8 | 8 | ||
9 | This library is distributed in the hope that it will be useful, | 9 | This library is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | Library General Public License for more details. | 12 | Library General Public License for more details. |
13 | 13 | ||
14 | You should have received a copy of the GNU Library General Public License | 14 | You should have received a copy of the GNU Library General Public License |
15 | along with this library; see the file COPYING.LIB. If not, write to | 15 | along with this library; see the file COPYING.LIB. If not, write to |
16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 16 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
17 | Boston, MA 02111-1307, USA. | 17 | Boston, MA 02111-1307, USA. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <stdlib.h> | 20 | #include <stdlib.h> |
21 | #include <unistd.h> | 21 | #include <unistd.h> |
22 | #include <fcntl.h> | 22 | #include <fcntl.h> |
23 | #include <sys/ioctl.h> | 23 | #include <sys/ioctl.h> |
24 | #include <signal.h> | 24 | #include <signal.h> |
25 | #include <sys/time.h> | 25 | #include <sys/time.h> |
26 | #ifndef QT_NO_SOUND | 26 | #ifndef QT_NO_SOUND |
27 | #include <linux/soundcard.h> | 27 | #include <linux/soundcard.h> |
28 | #endif | 28 | #endif |
29 | #include <math.h> | 29 | #include <math.h> |
30 | 30 | ||
31 | #include <qapplication.h> | 31 | #include <qapplication.h> |
32 | 32 | ||
33 | #include <qfile.h> | 33 | #include <qfile.h> |
34 | #include <qtextstream.h> | 34 | #include <qtextstream.h> |
35 | #include <qpe/sound.h> | 35 | #include <qpe/sound.h> |
36 | #include <qpe/resource.h> | 36 | #include <qpe/resource.h> |
37 | #include <qpe/config.h> | 37 | #include <qpe/config.h> |
38 | #include <qpe/qcopenvelope_qws.h> | 38 | #include <qpe/qcopenvelope_qws.h> |
39 | 39 | ||
40 | #include "odevice.h" | 40 | #include "odevice.h" |
41 | 41 | ||
42 | #include <qwindowsystem_qws.h> | 42 | #include <qwindowsystem_qws.h> |
43 | 43 | ||
44 | #ifndef ARRAY_SIZE | 44 | #ifndef ARRAY_SIZE |
45 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) | 45 | #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) |
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | // _IO and friends are only defined in kernel headers ... | 48 | // _IO and friends are only defined in kernel headers ... |
49 | 49 | ||
50 | #define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) | 50 | #define OD_IOC(dir,type,number,size) (( dir << 30 ) | ( type << 8 ) | ( number ) | ( size << 16 )) |
51 | 51 | ||
52 | #define OD_IO(type,number) OD_IOC(0,type,number,0) | 52 | #define OD_IO(type,number) OD_IOC(0,type,number,0) |
53 | #define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) | 53 | #define OD_IOW(type,number,size) OD_IOC(1,type,number,sizeof(size)) |
54 | #define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) | 54 | #define OD_IOR(type,number,size) OD_IOC(2,type,number,sizeof(size)) |
55 | #define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) | 55 | #define OD_IORW(type,number,size) OD_IOC(3,type,number,sizeof(size)) |
56 | 56 | ||
57 | using namespace Opie; | 57 | using namespace Opie; |
58 | 58 | ||
59 | class ODeviceData { | 59 | class ODeviceData { |
60 | public: | 60 | public: |
61 | QString m_vendorstr; | 61 | QString m_vendorstr; |
62 | OVendor m_vendor; | 62 | OVendor m_vendor; |
63 | 63 | ||
64 | QString m_modelstr; | 64 | QString m_modelstr; |
65 | OModel m_model; | 65 | OModel m_model; |
66 | 66 | ||
67 | QString m_systemstr; | 67 | QString m_systemstr; |
68 | OSystem m_system; | 68 | OSystem m_system; |
69 | 69 | ||
70 | QString m_sysverstr; | 70 | QString m_sysverstr; |
71 | 71 | ||
72 | Transformation m_rotation; | 72 | Transformation m_rotation; |
73 | ODirection m_direction; | 73 | ODirection m_direction; |
74 | 74 | ||
75 | QValueList <ODeviceButton> *m_buttons; | 75 | QValueList <ODeviceButton> *m_buttons; |
76 | uint m_holdtime; | 76 | uint m_holdtime; |
77 | QStrList *m_cpu_frequencies; | 77 | QStrList *m_cpu_frequencies; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | class iPAQ : public ODevice, public QWSServer::KeyboardFilter { | 80 | class iPAQ : public ODevice, public QWSServer::KeyboardFilter { |
81 | protected: | 81 | protected: |
82 | virtual void init ( ); | 82 | virtual void init ( ); |
83 | virtual void initButtons ( ); | 83 | virtual void initButtons ( ); |
84 | 84 | ||
85 | public: | 85 | public: |
86 | virtual bool setSoftSuspend ( bool soft ); | 86 | virtual bool setSoftSuspend ( bool soft ); |
87 | 87 | ||
88 | virtual bool setDisplayBrightness ( int b ); | 88 | virtual bool setDisplayBrightness ( int b ); |
89 | virtual int displayBrightnessResolution ( ) const; | 89 | virtual int displayBrightnessResolution ( ) const; |
90 | 90 | ||
91 | virtual void alarmSound ( ); | 91 | virtual void alarmSound ( ); |
92 | 92 | ||
93 | virtual QValueList <OLed> ledList ( ) const; | 93 | virtual QValueList <OLed> ledList ( ) const; |
94 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; | 94 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; |
95 | virtual OLedState ledState ( OLed led ) const; | 95 | virtual OLedState ledState ( OLed led ) const; |
96 | virtual bool setLedState ( OLed led, OLedState st ); | 96 | virtual bool setLedState ( OLed led, OLedState st ); |
97 | 97 | ||
98 | virtual bool hasLightSensor ( ) const; | 98 | virtual bool hasLightSensor ( ) const; |
99 | virtual int readLightSensor ( ); | 99 | virtual int readLightSensor ( ); |
100 | virtual int lightSensorResolution ( ) const; | 100 | virtual int lightSensorResolution ( ) const; |
101 | 101 | ||
102 | protected: | 102 | protected: |
103 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); | 103 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); |
104 | virtual void timerEvent ( QTimerEvent *te ); | 104 | virtual void timerEvent ( QTimerEvent *te ); |
105 | 105 | ||
106 | int m_power_timer; | 106 | int m_power_timer; |
107 | 107 | ||
108 | OLedState m_leds [2]; | 108 | OLedState m_leds [2]; |
109 | }; | 109 | }; |
110 | 110 | ||
111 | class Jornada : public ODevice { | 111 | class Jornada : public ODevice { |
112 | protected: | 112 | protected: |
113 | virtual void init ( ); | 113 | virtual void init ( ); |
114 | //virtual void initButtons ( ); | 114 | //virtual void initButtons ( ); |
115 | public: | 115 | public: |
116 | virtual bool setSoftSuspend ( bool soft ); | 116 | virtual bool setSoftSuspend ( bool soft ); |
117 | virtual bool setDisplayBrightness ( int b ); | 117 | virtual bool setDisplayBrightness ( int b ); |
118 | virtual int displayBrightnessResolution ( ) const; | 118 | virtual int displayBrightnessResolution ( ) const; |
119 | static bool isJornada(); | 119 | static bool isJornada(); |
120 | 120 | ||
121 | }; | 121 | }; |
122 | 122 | ||
123 | class Zaurus : public ODevice { | 123 | class Zaurus : public ODevice { |
124 | protected: | 124 | protected: |
125 | virtual void init ( ); | 125 | virtual void init ( ); |
126 | virtual void initButtons ( ); | 126 | virtual void initButtons ( ); |
127 | 127 | ||
128 | public: | 128 | public: |
129 | virtual bool setSoftSuspend ( bool soft ); | 129 | virtual bool setSoftSuspend ( bool soft ); |
130 | 130 | ||
131 | virtual bool setDisplayBrightness ( int b ); | 131 | virtual bool setDisplayBrightness ( int b ); |
132 | virtual int displayBrightnessResolution ( ) const; | 132 | virtual int displayBrightnessResolution ( ) const; |
133 | 133 | ||
134 | virtual void alarmSound ( ); | 134 | virtual void alarmSound ( ); |
135 | virtual void keySound ( ); | 135 | virtual void keySound ( ); |
136 | virtual void touchSound ( ); | 136 | virtual void touchSound ( ); |
137 | 137 | ||
138 | virtual QValueList <OLed> ledList ( ) const; | 138 | virtual QValueList <OLed> ledList ( ) const; |
139 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; | 139 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; |
140 | virtual OLedState ledState ( OLed led ) const; | 140 | virtual OLedState ledState ( OLed led ) const; |
141 | virtual bool setLedState ( OLed led, OLedState st ); | 141 | virtual bool setLedState ( OLed led, OLedState st ); |
142 | 142 | ||
143 | virtual bool hasHingeSensor() const; | 143 | virtual bool hasHingeSensor() const; |
144 | virtual OHingeStatus readHingeSensor(); | 144 | virtual OHingeStatus readHingeSensor(); |
145 | 145 | ||
146 | static bool isZaurus(); | 146 | static bool isZaurus(); |
147 | 147 | ||
148 | // Does this break BC? | 148 | // Does this break BC? |
149 | virtual bool suspend ( ); | 149 | virtual bool suspend ( ); |
150 | virtual Transformation rotation ( ) const; | 150 | virtual Transformation rotation ( ) const; |
151 | virtual ODirection direction ( ) const; | 151 | virtual ODirection direction ( ) const; |
152 | 152 | ||
153 | protected: | 153 | protected: |
154 | virtual void buzzer ( int snd ); | 154 | virtual void buzzer ( int snd ); |
155 | 155 | ||
156 | OLedState m_leds [1]; | 156 | OLedState m_leds [1]; |
157 | bool m_embedix; | 157 | bool m_embedix; |
158 | }; | 158 | }; |
159 | 159 | ||
160 | class SIMpad : public ODevice, public QWSServer::KeyboardFilter { | 160 | class SIMpad : public ODevice, public QWSServer::KeyboardFilter { |
161 | protected: | 161 | protected: |
162 | virtual void init ( ); | 162 | virtual void init ( ); |
163 | virtual void initButtons ( ); | 163 | virtual void initButtons ( ); |
164 | 164 | ||
165 | public: | 165 | public: |
166 | virtual bool setSoftSuspend ( bool soft ); | 166 | virtual bool setSoftSuspend ( bool soft ); |
167 | virtual bool suspend(); | 167 | virtual bool suspend(); |
168 | 168 | ||
169 | virtual bool setDisplayStatus( bool on ); | 169 | virtual bool setDisplayStatus( bool on ); |
170 | virtual bool setDisplayBrightness ( int b ); | 170 | virtual bool setDisplayBrightness ( int b ); |
171 | virtual int displayBrightnessResolution ( ) const; | 171 | virtual int displayBrightnessResolution ( ) const; |
172 | 172 | ||
173 | virtual void alarmSound ( ); | 173 | virtual void alarmSound ( ); |
174 | 174 | ||
175 | virtual QValueList <OLed> ledList ( ) const; | 175 | virtual QValueList <OLed> ledList ( ) const; |
176 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; | 176 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; |
177 | virtual OLedState ledState ( OLed led ) const; | 177 | virtual OLedState ledState ( OLed led ) const; |
178 | virtual bool setLedState ( OLed led, OLedState st ); | 178 | virtual bool setLedState ( OLed led, OLedState st ); |
179 | 179 | ||
180 | protected: | 180 | protected: |
181 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); | 181 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); |
182 | virtual void timerEvent ( QTimerEvent *te ); | 182 | virtual void timerEvent ( QTimerEvent *te ); |
183 | 183 | ||
184 | int m_power_timer; | 184 | int m_power_timer; |
185 | 185 | ||
186 | OLedState m_leds [1]; //FIXME check if really only one | 186 | OLedState m_leds [1]; //FIXME check if really only one |
187 | }; | 187 | }; |
188 | 188 | ||
189 | class Ramses : public ODevice, public QWSServer::KeyboardFilter { | 189 | class Ramses : public ODevice, public QWSServer::KeyboardFilter { |
190 | protected: | 190 | protected: |
191 | virtual void init ( ); | 191 | virtual void init ( ); |
192 | 192 | ||
193 | public: | 193 | public: |
194 | virtual bool setSoftSuspend ( bool soft ); | 194 | virtual bool setSoftSuspend ( bool soft ); |
195 | virtual bool suspend ( ); | 195 | virtual bool suspend ( ); |
196 | 196 | ||
197 | virtual bool setDisplayStatus( bool on ); | 197 | virtual bool setDisplayStatus( bool on ); |
198 | virtual bool setDisplayBrightness ( int b ); | 198 | virtual bool setDisplayBrightness ( int b ); |
199 | virtual int displayBrightnessResolution ( ) const; | 199 | virtual int displayBrightnessResolution ( ) const; |
200 | virtual bool setDisplayContrast ( int b ); | 200 | virtual bool setDisplayContrast ( int b ); |
201 | virtual int displayContrastResolution ( ) const; | 201 | virtual int displayContrastResolution ( ) const; |
202 | 202 | ||
203 | protected: | 203 | protected: |
204 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); | 204 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); |
205 | virtual void timerEvent ( QTimerEvent *te ); | 205 | virtual void timerEvent ( QTimerEvent *te ); |
206 | 206 | ||
207 | int m_power_timer; | 207 | int m_power_timer; |
208 | }; | 208 | }; |
209 | 209 | ||
210 | struct i_button { | 210 | struct i_button { |
211 | uint model; | 211 | uint model; |
212 | Qt::Key code; | 212 | Qt::Key code; |
213 | char *utext; | 213 | char *utext; |
214 | char *pix; | 214 | char *pix; |
215 | char *fpressedservice; | 215 | char *fpressedservice; |
216 | char *fpressedaction; | 216 | char *fpressedaction; |
217 | char *fheldservice; | 217 | char *fheldservice; |
218 | char *fheldaction; | 218 | char *fheldaction; |
219 | } ipaq_buttons [] = { | 219 | } ipaq_buttons [] = { |
220 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 220 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
221 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 221 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
222 | "devicebuttons/ipaq_calendar", | 222 | "devicebuttons/ipaq_calendar", |
223 | "datebook", "nextView()", | 223 | "datebook", "nextView()", |
224 | "today", "raise()" }, | 224 | "today", "raise()" }, |
225 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 225 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
226 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 226 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
227 | "devicebuttons/ipaq_contact", | 227 | "devicebuttons/ipaq_contact", |
228 | "addressbook", "raise()", | 228 | "addressbook", "raise()", |
229 | "addressbook", "beamBusinessCard()" }, | 229 | "addressbook", "beamBusinessCard()" }, |
230 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, | 230 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, |
231 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), | 231 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), |
232 | "devicebuttons/ipaq_menu", | 232 | "devicebuttons/ipaq_menu", |
233 | "QPE/TaskBar", "toggleMenu()", | 233 | "QPE/TaskBar", "toggleMenu()", |
234 | "QPE/TaskBar", "toggleStartMenu()" }, | 234 | "QPE/TaskBar", "toggleStartMenu()" }, |
235 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 235 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
236 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), | 236 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), |
237 | "devicebuttons/ipaq_mail", | 237 | "devicebuttons/ipaq_mail", |
238 | "mail", "raise()", | 238 | "mail", "raise()", |
239 | "mail", "newMail()" }, | 239 | "mail", "newMail()" }, |
240 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 240 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
241 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 241 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
242 | "devicebuttons/ipaq_home", | 242 | "devicebuttons/ipaq_home", |
243 | "QPE/Launcher", "home()", | 243 | "QPE/Launcher", "home()", |
244 | "buttonsettings", "raise()" }, | 244 | "buttonsettings", "raise()" }, |
245 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, | 245 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
246 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), | 246 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), |
247 | "devicebuttons/ipaq_record", | 247 | "devicebuttons/ipaq_record", |
248 | "QPE/VMemo", "toggleRecord()", | 248 | "QPE/VMemo", "toggleRecord()", |
249 | "sound", "raise()" }, | 249 | "sound", "raise()" }, |
250 | }; | 250 | }; |
251 | 251 | ||
252 | struct z_button { | 252 | struct z_button { |
253 | Qt::Key code; | 253 | Qt::Key code; |
254 | char *utext; | 254 | char *utext; |
255 | char *pix; | 255 | char *pix; |
256 | char *fpressedservice; | 256 | char *fpressedservice; |
257 | char *fpressedaction; | 257 | char *fpressedaction; |
258 | char *fheldservice; | 258 | char *fheldservice; |
259 | char *fheldaction; | 259 | char *fheldaction; |
260 | } z_buttons [] = { | 260 | } z_buttons [] = { |
261 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 261 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
262 | "devicebuttons/z_calendar", | 262 | "devicebuttons/z_calendar", |
263 | "datebook", "nextView()", | 263 | "datebook", "nextView()", |
264 | "today", "raise()" }, | 264 | "today", "raise()" }, |
265 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 265 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
266 | "devicebuttons/z_contact", | 266 | "devicebuttons/z_contact", |
267 | "addressbook", "raise()", | 267 | "addressbook", "raise()", |
268 | "addressbook", "beamBusinessCard()" }, | 268 | "addressbook", "beamBusinessCard()" }, |
269 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 269 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
270 | "devicebuttons/z_home", | 270 | "devicebuttons/z_home", |
271 | "QPE/Launcher", "home()", | 271 | "QPE/Launcher", "home()", |
272 | "buttonsettings", "raise()" }, | 272 | "buttonsettings", "raise()" }, |
273 | { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), | 273 | { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), |
274 | "devicebuttons/z_menu", | 274 | "devicebuttons/z_menu", |
275 | "QPE/TaskBar", "toggleMenu()", | 275 | "QPE/TaskBar", "toggleMenu()", |
276 | "QPE/TaskBar", "toggleStartMenu()" }, | 276 | "QPE/TaskBar", "toggleStartMenu()" }, |
277 | { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), | 277 | { Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), |
278 | "devicebuttons/z_mail", | 278 | "devicebuttons/z_mail", |
279 | "mail", "raise()", | 279 | "mail", "raise()", |
280 | "mail", "newMail()" }, | 280 | "mail", "newMail()" }, |
281 | }; | 281 | }; |
282 | 282 | ||
283 | struct z_button z_buttons_c700 [] = { | 283 | struct z_button z_buttons_c700 [] = { |
284 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 284 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
285 | "devicebuttons/z_calendar", | 285 | "devicebuttons/z_calendar", |
286 | "datebook", "nextView()", | 286 | "datebook", "nextView()", |
287 | "today", "raise()" }, | 287 | "today", "raise()" }, |
288 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 288 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
289 | "devicebuttons/z_contact", | 289 | "devicebuttons/z_contact", |
290 | "addressbook", "raise()", | 290 | "addressbook", "raise()", |
291 | "addressbook", "beamBusinessCard()" }, | 291 | "addressbook", "beamBusinessCard()" }, |
292 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 292 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
293 | "devicebuttons/z_home", | 293 | "devicebuttons/z_home", |
294 | "QPE/Launcher", "home()", | 294 | "QPE/Launcher", "home()", |
295 | "buttonsettings", "raise()" }, | 295 | "buttonsettings", "raise()" }, |
296 | { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), | 296 | { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), |
297 | "devicebuttons/z_menu", | 297 | "devicebuttons/z_menu", |
298 | "QPE/TaskBar", "toggleMenu()", | 298 | "QPE/TaskBar", "toggleMenu()", |
299 | "QPE/TaskBar", "toggleStartMenu()" }, | 299 | "QPE/TaskBar", "toggleStartMenu()" }, |
300 | { Qt::Key_F14, QT_TRANSLATE_NOOP("Button", "Display Rotate"), | 300 | { Qt::Key_F14, QT_TRANSLATE_NOOP("Button", "Display Rotate"), |
301 | "", | 301 | "devicebuttons/z_hinge", |
302 | "QPE/Rotation", "rotateDefault()", | 302 | "QPE/Rotation", "rotateDefault()", |
303 | "QPE/Rotation", "rotateDefault()" }, | 303 | "QPE/Dummy", "doNothing()" }, |
304 | }; | 304 | }; |
305 | 305 | ||
306 | struct s_button { | 306 | struct s_button { |
307 | uint model; | 307 | uint model; |
308 | Qt::Key code; | 308 | Qt::Key code; |
309 | char *utext; | 309 | char *utext; |
310 | char *pix; | 310 | char *pix; |
311 | char *fpressedservice; | 311 | char *fpressedservice; |
312 | char *fpressedaction; | 312 | char *fpressedaction; |
313 | char *fheldservice; | 313 | char *fheldservice; |
314 | char *fheldaction; | 314 | char *fheldaction; |
315 | } simpad_buttons [] = { | 315 | } simpad_buttons [] = { |
316 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 316 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
317 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Lower+Up"), | 317 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Lower+Up"), |
318 | "devicebuttons/simpad_lower_up", | 318 | "devicebuttons/simpad_lower_up", |
319 | "datebook", "nextView()", | 319 | "datebook", "nextView()", |
320 | "today", "raise()" }, | 320 | "today", "raise()" }, |
321 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 321 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
322 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Lower+Down"), | 322 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Lower+Down"), |
323 | "devicebuttons/simpad_lower_down", | 323 | "devicebuttons/simpad_lower_down", |
324 | "addressbook", "raise()", | 324 | "addressbook", "raise()", |
325 | "addressbook", "beamBusinessCard()" }, | 325 | "addressbook", "beamBusinessCard()" }, |
326 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 326 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
327 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Lower+Right"), | 327 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Lower+Right"), |
328 | "devicebuttons/simpad_lower_right", | 328 | "devicebuttons/simpad_lower_right", |
329 | "QPE/TaskBar", "toggleMenu()", | 329 | "QPE/TaskBar", "toggleMenu()", |
330 | "QPE/TaskBar", "toggleStartMenu()" }, | 330 | "QPE/TaskBar", "toggleStartMenu()" }, |
331 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 331 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
332 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Lower+Left"), | 332 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Lower+Left"), |
333 | "devicebuttons/simpad_lower_left", | 333 | "devicebuttons/simpad_lower_left", |
334 | "mail", "raise()", | 334 | "mail", "raise()", |
335 | "mail", "newMail()" }, | 335 | "mail", "newMail()" }, |
336 | 336 | ||
337 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 337 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
338 | Qt::Key_F5, QT_TRANSLATE_NOOP("Button", "Upper+Up"), | 338 | Qt::Key_F5, QT_TRANSLATE_NOOP("Button", "Upper+Up"), |
339 | "devicebuttons/simpad_upper_up", | 339 | "devicebuttons/simpad_upper_up", |
340 | "QPE/Launcher", "home()", | 340 | "QPE/Launcher", "home()", |
341 | "buttonsettings", "raise()" }, | 341 | "buttonsettings", "raise()" }, |
342 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 342 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
343 | Qt::Key_F6, QT_TRANSLATE_NOOP("Button", "Upper+Down"), | 343 | Qt::Key_F6, QT_TRANSLATE_NOOP("Button", "Upper+Down"), |
344 | "devicebuttons/simpad_upper_down", | 344 | "devicebuttons/simpad_upper_down", |
345 | "addressbook", "raise()", | 345 | "addressbook", "raise()", |
346 | "addressbook", "beamBusinessCard()" }, | 346 | "addressbook", "beamBusinessCard()" }, |
347 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 347 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
348 | Qt::Key_F7, QT_TRANSLATE_NOOP("Button", "Upper+Right"), | 348 | Qt::Key_F7, QT_TRANSLATE_NOOP("Button", "Upper+Right"), |
349 | "devicebuttons/simpad_upper_right", | 349 | "devicebuttons/simpad_upper_right", |
350 | "QPE/TaskBar", "toggleMenu()", | 350 | "QPE/TaskBar", "toggleMenu()", |
351 | "QPE/TaskBar", "toggleStartMenu()" }, | 351 | "QPE/TaskBar", "toggleStartMenu()" }, |
352 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 352 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
353 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Upper+Left"), | 353 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Upper+Left"), |
354 | "devicebuttons/simpad_upper_left", | 354 | "devicebuttons/simpad_upper_left", |
355 | "QPE/Rotation", "flip()", | 355 | "QPE/Rotation", "flip()", |
356 | "QPE/Rotation", "flip()" }, | 356 | "QPE/Rotation", "flip()" }, |
357 | /* | 357 | /* |
358 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 358 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
359 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"), | 359 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"), |
360 | "devicebuttons/simpad_lower_upper", | 360 | "devicebuttons/simpad_lower_upper", |
361 | "QPE/Launcher", "home()", | 361 | "QPE/Launcher", "home()", |
362 | "buttonsettings", "raise()" }, | 362 | "buttonsettings", "raise()" }, |
363 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, | 363 | { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, |
364 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"), | 364 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"), |
365 | "devicebuttons/simpad_upper_lower", | 365 | "devicebuttons/simpad_upper_lower", |
366 | "QPE/Launcher", "home()", | 366 | "QPE/Launcher", "home()", |
367 | "buttonsettings", "raise()" }, | 367 | "buttonsettings", "raise()" }, |
368 | */ | 368 | */ |
369 | }; | 369 | }; |
370 | 370 | ||
371 | struct r_button { | 371 | struct r_button { |
372 | uint model; | 372 | uint model; |
373 | Qt::Key code; | 373 | Qt::Key code; |
374 | char *utext; | 374 | char *utext; |
375 | char *pix; | 375 | char *pix; |
376 | char *fpressedservice; | 376 | char *fpressedservice; |
377 | char *fpressedaction; | 377 | char *fpressedaction; |
378 | char *fheldservice; | 378 | char *fheldservice; |
379 | char *fheldaction; | 379 | char *fheldaction; |
380 | } ramses_buttons [] = { | 380 | } ramses_buttons [] = { |
381 | { Model_Ramses_MNCI, | 381 | { Model_Ramses_MNCI, |
382 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), | 382 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), |
383 | "devicebuttons/z_menu", | 383 | "devicebuttons/z_menu", |
384 | "QPE/TaskBar", "toggleMenu()", | 384 | "QPE/TaskBar", "toggleMenu()", |
385 | "QPE/TaskBar", "toggleStartMenu()" }, | 385 | "QPE/TaskBar", "toggleStartMenu()" }, |
386 | { Model_Ramses_MNCI, | 386 | { Model_Ramses_MNCI, |
387 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 387 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
388 | "devicebuttons/ipaq_home", | 388 | "devicebuttons/ipaq_home", |
389 | "QPE/Launcher", "home()", | 389 | "QPE/Launcher", "home()", |
390 | "buttonsettings", "raise()" }, | 390 | "buttonsettings", "raise()" }, |
391 | }; | 391 | }; |
392 | 392 | ||
393 | class Yopy : public ODevice { | 393 | class Yopy : public ODevice { |
394 | protected: | 394 | protected: |
395 | virtual void init ( ); | 395 | virtual void init ( ); |
396 | virtual void initButtons ( ); | 396 | virtual void initButtons ( ); |
397 | 397 | ||
398 | public: | 398 | public: |
399 | virtual bool suspend ( ); | 399 | virtual bool suspend ( ); |
400 | 400 | ||
401 | virtual bool setDisplayBrightness ( int b ); | 401 | virtual bool setDisplayBrightness ( int b ); |
402 | virtual int displayBrightnessResolution ( ) const; | 402 | virtual int displayBrightnessResolution ( ) const; |
403 | 403 | ||
404 | static bool isYopy ( ); | 404 | static bool isYopy ( ); |
405 | }; | 405 | }; |
406 | 406 | ||
407 | struct yopy_button { | 407 | struct yopy_button { |
408 | Qt::Key code; | 408 | Qt::Key code; |
409 | char *utext; | 409 | char *utext; |
410 | char *pix; | 410 | char *pix; |
411 | char *fpressedservice; | 411 | char *fpressedservice; |
412 | char *fpressedaction; | 412 | char *fpressedaction; |
413 | char *fheldservice; | 413 | char *fheldservice; |
414 | char *fheldaction; | 414 | char *fheldaction; |
415 | } yopy_buttons [] = { | 415 | } yopy_buttons [] = { |
416 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Action Button"), | 416 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Action Button"), |
417 | "devicebuttons/yopy_action", | 417 | "devicebuttons/yopy_action", |
418 | "datebook", "nextView()", | 418 | "datebook", "nextView()", |
419 | "today", "raise()" }, | 419 | "today", "raise()" }, |
420 | { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "OK Button"), | 420 | { Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "OK Button"), |
421 | "devicebuttons/yopy_ok", | 421 | "devicebuttons/yopy_ok", |
422 | "addressbook", "raise()", | 422 | "addressbook", "raise()", |
423 | "addressbook", "beamBusinessCard()" }, | 423 | "addressbook", "beamBusinessCard()" }, |
424 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "End Button"), | 424 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "End Button"), |
425 | "devicebuttons/yopy_end", | 425 | "devicebuttons/yopy_end", |
426 | "QPE/Launcher", "home()", | 426 | "QPE/Launcher", "home()", |
427 | "buttonsettings", "raise()" }, | 427 | "buttonsettings", "raise()" }, |
428 | }; | 428 | }; |
429 | 429 | ||
430 | static QCString makeChannel ( const char *str ) | 430 | static QCString makeChannel ( const char *str ) |
431 | { | 431 | { |
432 | if ( str && !::strchr ( str, '/' )) | 432 | if ( str && !::strchr ( str, '/' )) |
433 | return QCString ( "QPE/Application/" ) + str; | 433 | return QCString ( "QPE/Application/" ) + str; |
434 | else | 434 | else |
435 | return str; | 435 | return str; |
436 | } | 436 | } |
437 | 437 | ||
438 | static inline bool isQWS() | 438 | static inline bool isQWS() |
439 | { | 439 | { |
440 | return qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; | 440 | return qApp ? ( qApp-> type ( ) == QApplication::GuiServer ) : false; |
441 | } | 441 | } |
442 | 442 | ||
443 | ODevice *ODevice::inst ( ) | 443 | ODevice *ODevice::inst ( ) |
444 | { | 444 | { |
445 | static ODevice *dev = 0; | 445 | static ODevice *dev = 0; |
446 | 446 | ||
447 | if ( !dev ) { | 447 | if ( !dev ) { |
448 | if ( QFile::exists ( "/proc/hal/model" )) | 448 | if ( QFile::exists ( "/proc/hal/model" )) |
449 | dev = new iPAQ ( ); | 449 | dev = new iPAQ ( ); |
450 | else if ( Zaurus::isZaurus() ) | 450 | else if ( Zaurus::isZaurus() ) |
451 | dev = new Zaurus ( ); | 451 | dev = new Zaurus ( ); |
452 | else if ( QFile::exists ( "/proc/ucb1x00" ) && QFile::exists ( "/proc/cs3" )) | 452 | else if ( QFile::exists ( "/proc/ucb1x00" ) && QFile::exists ( "/proc/cs3" )) |
453 | dev = new SIMpad ( ); | 453 | dev = new SIMpad ( ); |
454 | else if ( QFile::exists ( "/proc/sys/board/name" )) | 454 | else if ( QFile::exists ( "/proc/sys/board/name" )) |
455 | dev = new Ramses ( ); | 455 | dev = new Ramses ( ); |
456 | else if ( Yopy::isYopy() ) | 456 | else if ( Yopy::isYopy() ) |
457 | dev = new Yopy ( ); | 457 | dev = new Yopy ( ); |
458 | else if ( Jornada::isJornada() ) | 458 | else if ( Jornada::isJornada() ) |
459 | dev = new Jornada ( ); | 459 | dev = new Jornada ( ); |
460 | else | 460 | else |
461 | dev = new ODevice ( ); | 461 | dev = new ODevice ( ); |
462 | dev-> init ( ); | 462 | dev-> init ( ); |
463 | } | 463 | } |
464 | return dev; | 464 | return dev; |
465 | } | 465 | } |
466 | 466 | ||
467 | 467 | ||
468 | /************************************************** | 468 | /************************************************** |
469 | * | 469 | * |
470 | * common | 470 | * common |
471 | * | 471 | * |
472 | **************************************************/ | 472 | **************************************************/ |
473 | 473 | ||
474 | 474 | ||
475 | ODevice::ODevice ( ) | 475 | ODevice::ODevice ( ) |
476 | { | 476 | { |
477 | d = new ODeviceData; | 477 | d = new ODeviceData; |
478 | 478 | ||
479 | d-> m_modelstr = "Unknown"; | 479 | d-> m_modelstr = "Unknown"; |
480 | d-> m_model = Model_Unknown; | 480 | d-> m_model = Model_Unknown; |
481 | d-> m_vendorstr = "Unknown"; | 481 | d-> m_vendorstr = "Unknown"; |
482 | d-> m_vendor = Vendor_Unknown; | 482 | d-> m_vendor = Vendor_Unknown; |
483 | d-> m_systemstr = "Unknown"; | 483 | d-> m_systemstr = "Unknown"; |
484 | d-> m_system = System_Unknown; | 484 | d-> m_system = System_Unknown; |
485 | d-> m_sysverstr = "0.0"; | 485 | d-> m_sysverstr = "0.0"; |
486 | d-> m_rotation = Rot0; | 486 | d-> m_rotation = Rot0; |
487 | d-> m_direction = CW; | 487 | d-> m_direction = CW; |
488 | 488 | ||
489 | d-> m_holdtime = 1000; // 1000ms | 489 | d-> m_holdtime = 1000; // 1000ms |
490 | d-> m_buttons = 0; | 490 | d-> m_buttons = 0; |
491 | d-> m_cpu_frequencies = new QStrList; | 491 | d-> m_cpu_frequencies = new QStrList; |
492 | } | 492 | } |
493 | 493 | ||
494 | void ODevice::systemMessage ( const QCString &msg, const QByteArray & ) | 494 | void ODevice::systemMessage ( const QCString &msg, const QByteArray & ) |
495 | { | 495 | { |
496 | if ( msg == "deviceButtonMappingChanged()" ) { | 496 | if ( msg == "deviceButtonMappingChanged()" ) { |
497 | reloadButtonMapping ( ); | 497 | reloadButtonMapping ( ); |
498 | } | 498 | } |
499 | } | 499 | } |
500 | 500 | ||
501 | void ODevice::init ( ) | 501 | void ODevice::init ( ) |
502 | { | 502 | { |
503 | } | 503 | } |
504 | 504 | ||
505 | /** | 505 | /** |
506 | * This method initialises the button mapping | 506 | * This method initialises the button mapping |
507 | */ | 507 | */ |
508 | void ODevice::initButtons ( ) | 508 | void ODevice::initButtons ( ) |
509 | { | 509 | { |
510 | if ( d-> m_buttons ) | 510 | if ( d-> m_buttons ) |
511 | return; | 511 | return; |
512 | 512 | ||
513 | // Simulation uses iPAQ 3660 device buttons | 513 | // Simulation uses iPAQ 3660 device buttons |
514 | 514 | ||
515 | qDebug ( "init Buttons" ); | 515 | qDebug ( "init Buttons" ); |
516 | d-> m_buttons = new QValueList <ODeviceButton>; | 516 | d-> m_buttons = new QValueList <ODeviceButton>; |
517 | 517 | ||
518 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { | 518 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { |
519 | i_button *ib = ipaq_buttons + i; | 519 | i_button *ib = ipaq_buttons + i; |
520 | ODeviceButton b; | 520 | ODeviceButton b; |
521 | 521 | ||
522 | if (( ib-> model & Model_iPAQ_H36xx ) == Model_iPAQ_H36xx ) { | 522 | if (( ib-> model & Model_iPAQ_H36xx ) == Model_iPAQ_H36xx ) { |
523 | b. setKeycode ( ib-> code ); | 523 | b. setKeycode ( ib-> code ); |
524 | b. setUserText ( QObject::tr ( "Button", ib-> utext )); | 524 | b. setUserText ( QObject::tr ( "Button", ib-> utext )); |
525 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); | 525 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); |
526 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); | 526 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); |
527 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); | 527 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); |
528 | d-> m_buttons-> append ( b ); | 528 | d-> m_buttons-> append ( b ); |
529 | } | 529 | } |
530 | } | 530 | } |
531 | reloadButtonMapping ( ); | 531 | reloadButtonMapping ( ); |
532 | 532 | ||
533 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); | 533 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); |
534 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); | 534 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); |
535 | } | 535 | } |
536 | 536 | ||
537 | ODevice::~ODevice ( ) | 537 | ODevice::~ODevice ( ) |
538 | { | 538 | { |
539 | // we leak m_devicebuttons and m_cpu_frequency | 539 | // we leak m_devicebuttons and m_cpu_frequency |
540 | // but it's a singleton and it is not so importantant | 540 | // but it's a singleton and it is not so importantant |
541 | // -zecke | 541 | // -zecke |
542 | delete d; | 542 | delete d; |
543 | } | 543 | } |
544 | 544 | ||
545 | bool ODevice::setSoftSuspend ( bool /*soft*/ ) | 545 | bool ODevice::setSoftSuspend ( bool /*soft*/ ) |
546 | { | 546 | { |
547 | return false; | 547 | return false; |
548 | } | 548 | } |
549 | 549 | ||
550 | //#include <linux/apm_bios.h> | 550 | //#include <linux/apm_bios.h> |
551 | 551 | ||
552 | #define APM_IOC_SUSPEND OD_IO( 'A', 2 ) | 552 | #define APM_IOC_SUSPEND OD_IO( 'A', 2 ) |
553 | 553 | ||
554 | /** | 554 | /** |
555 | * This method will try to suspend the device | 555 | * This method will try to suspend the device |
556 | * It only works if the user is the QWS Server and the apm application | 556 | * It only works if the user is the QWS Server and the apm application |
557 | * is installed. | 557 | * is installed. |
558 | * It tries to suspend and then waits some time cause some distributions | 558 | * It tries to suspend and then waits some time cause some distributions |
559 | * do have asynchronus apm implementations. | 559 | * do have asynchronus apm implementations. |
560 | * This method will either fail and return false or it'll suspend the | 560 | * This method will either fail and return false or it'll suspend the |
561 | * device and return once the device got woken up | 561 | * device and return once the device got woken up |
562 | * | 562 | * |
563 | * @return if the device got suspended | 563 | * @return if the device got suspended |
564 | */ | 564 | */ |
565 | bool ODevice::suspend ( ) | 565 | bool ODevice::suspend ( ) |
566 | { | 566 | { |
567 | qDebug("ODevice::suspend"); | 567 | qDebug("ODevice::suspend"); |
568 | if ( !isQWS( ) ) // only qwsserver is allowed to suspend | 568 | if ( !isQWS( ) ) // only qwsserver is allowed to suspend |
569 | return false; | 569 | return false; |
570 | 570 | ||
571 | if ( d-> m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices | 571 | if ( d-> m_model == Model_Unknown ) // better don't suspend in qvfb / on unkown devices |
572 | return false; | 572 | return false; |
573 | 573 | ||
574 | bool res = false; | 574 | bool res = false; |
575 | 575 | ||
576 | struct timeval tvs, tvn; | 576 | struct timeval tvs, tvn; |
577 | ::gettimeofday ( &tvs, 0 ); | 577 | ::gettimeofday ( &tvs, 0 ); |
578 | 578 | ||
579 | ::sync ( ); // flush fs caches | 579 | ::sync ( ); // flush fs caches |
580 | res = ( ::system ( "apm --suspend" ) == 0 ); | 580 | res = ( ::system ( "apm --suspend" ) == 0 ); |
581 | 581 | ||
582 | // This is needed because the iPAQ apm implementation is asynchronous and we | 582 | // This is needed because the iPAQ apm implementation is asynchronous and we |
583 | // can not be sure when exactly the device is really suspended | 583 | // can not be sure when exactly the device is really suspended |
584 | // This can be deleted as soon as a stable familiar with a synchronous apm implementation exists. | 584 | // This can be deleted as soon as a stable familiar with a synchronous apm implementation exists. |
585 | 585 | ||
586 | if ( res ) { | 586 | if ( res ) { |
587 | do { // wait at most 1.5 sec: either suspend didn't work or the device resumed | 587 | do { // wait at most 1.5 sec: either suspend didn't work or the device resumed |
588 | ::usleep ( 200 * 1000 ); | 588 | ::usleep ( 200 * 1000 ); |
589 | ::gettimeofday ( &tvn, 0 ); | 589 | ::gettimeofday ( &tvn, 0 ); |
590 | } while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 1500 ); | 590 | } while ((( tvn. tv_sec - tvs. tv_sec ) * 1000 + ( tvn. tv_usec - tvs. tv_usec ) / 1000 ) < 1500 ); |
591 | } | 591 | } |
592 | 592 | ||
593 | return res; | 593 | return res; |
594 | } | 594 | } |
595 | 595 | ||
596 | //#include <linux/fb.h> better not rely on kernel headers in userspace ... | 596 | //#include <linux/fb.h> better not rely on kernel headers in userspace ... |
597 | 597 | ||
598 | #define FBIOBLANK OD_IO( 'F', 0x11 ) // 0x4611 | 598 | #define FBIOBLANK OD_IO( 'F', 0x11 ) // 0x4611 |
599 | 599 | ||
600 | /* VESA Blanking Levels */ | 600 | /* VESA Blanking Levels */ |
601 | #define VESA_NO_BLANKING 0 | 601 | #define VESA_NO_BLANKING 0 |
602 | #define VESA_VSYNC_SUSPEND 1 | 602 | #define VESA_VSYNC_SUSPEND 1 |
603 | #define VESA_HSYNC_SUSPEND 2 | 603 | #define VESA_HSYNC_SUSPEND 2 |
604 | #define VESA_POWERDOWN 3 | 604 | #define VESA_POWERDOWN 3 |
605 | 605 | ||
606 | /** | 606 | /** |
607 | * This sets the display on or off | 607 | * This sets the display on or off |
608 | */ | 608 | */ |
609 | bool ODevice::setDisplayStatus ( bool on ) | 609 | bool ODevice::setDisplayStatus ( bool on ) |
610 | { | 610 | { |
611 | qDebug("ODevice::setDisplayStatus(%d)", on); | 611 | qDebug("ODevice::setDisplayStatus(%d)", on); |
612 | 612 | ||
613 | if ( d-> m_model == Model_Unknown ) | 613 | if ( d-> m_model == Model_Unknown ) |
614 | return false; | 614 | return false; |
615 | 615 | ||
616 | bool res = false; | 616 | bool res = false; |
617 | int fd; | 617 | int fd; |
618 | 618 | ||
619 | if (( fd = ::open ( "/dev/fb0", O_RDWR )) >= 0 ) { | 619 | if (( fd = ::open ( "/dev/fb0", O_RDWR )) >= 0 ) { |
620 | res = ( ::ioctl ( fd, FBIOBLANK, on ? VESA_NO_BLANKING : VESA_POWERDOWN ) == 0 ); | 620 | res = ( ::ioctl ( fd, FBIOBLANK, on ? VESA_NO_BLANKING : VESA_POWERDOWN ) == 0 ); |
621 | ::close ( fd ); | 621 | ::close ( fd ); |
622 | } | 622 | } |
623 | return res; | 623 | return res; |
624 | } | 624 | } |
625 | 625 | ||
626 | /** | 626 | /** |
627 | * This sets the display brightness | 627 | * This sets the display brightness |
628 | * | 628 | * |
629 | * @param p The brightness to be set on a scale from 0 to 255 | 629 | * @param p The brightness to be set on a scale from 0 to 255 |
630 | * @return success or failure | 630 | * @return success or failure |
631 | */ | 631 | */ |
632 | bool ODevice::setDisplayBrightness ( int p) | 632 | bool ODevice::setDisplayBrightness ( int p) |
633 | { | 633 | { |
634 | Q_UNUSED( p ) | 634 | Q_UNUSED( p ) |
635 | return false; | 635 | return false; |
636 | } | 636 | } |
637 | 637 | ||
638 | /** | 638 | /** |
639 | * @return returns the number of steppings on the brightness slider | 639 | * @return returns the number of steppings on the brightness slider |
640 | * in the Light-'n-Power settings. | 640 | * in the Light-'n-Power settings. |
641 | */ | 641 | */ |
642 | int ODevice::displayBrightnessResolution ( ) const | 642 | int ODevice::displayBrightnessResolution ( ) const |
643 | { | 643 | { |
644 | return 16; | 644 | return 16; |
645 | } | 645 | } |
646 | 646 | ||
647 | /** | 647 | /** |
648 | * This sets the display contrast | 648 | * This sets the display contrast |
649 | * @param p The contrast to be set on a scale from 0 to 255 | 649 | * @param p The contrast to be set on a scale from 0 to 255 |
650 | * @return success or failure | 650 | * @return success or failure |
651 | */ | 651 | */ |
652 | bool ODevice::setDisplayContrast ( int p) | 652 | bool ODevice::setDisplayContrast ( int p) |
653 | { | 653 | { |
654 | Q_UNUSED( p ) | 654 | Q_UNUSED( p ) |
655 | return false; | 655 | return false; |
656 | } | 656 | } |
657 | 657 | ||
658 | /** | 658 | /** |
659 | * @return return the max value for the brightness settings slider | 659 | * @return return the max value for the brightness settings slider |
660 | * or 0 if the device doesn't support setting of a contrast | 660 | * or 0 if the device doesn't support setting of a contrast |
661 | */ | 661 | */ |
662 | int ODevice::displayContrastResolution ( ) const | 662 | int ODevice::displayContrastResolution ( ) const |
663 | { | 663 | { |
664 | return 0; | 664 | return 0; |
665 | } | 665 | } |
666 | 666 | ||
667 | /** | 667 | /** |
668 | * This returns the vendor as string | 668 | * This returns the vendor as string |
669 | * @return Vendor as QString | 669 | * @return Vendor as QString |
670 | */ | 670 | */ |
671 | QString ODevice::vendorString ( ) const | 671 | QString ODevice::vendorString ( ) const |
672 | { | 672 | { |
673 | return d-> m_vendorstr; | 673 | return d-> m_vendorstr; |
674 | } | 674 | } |
675 | 675 | ||
676 | /** | 676 | /** |
677 | * This returns the vendor as one of the values of OVendor | 677 | * This returns the vendor as one of the values of OVendor |
678 | * @return OVendor | 678 | * @return OVendor |
679 | */ | 679 | */ |
680 | OVendor ODevice::vendor ( ) const | 680 | OVendor ODevice::vendor ( ) const |
681 | { | 681 | { |
682 | return d-> m_vendor; | 682 | return d-> m_vendor; |
683 | } | 683 | } |
684 | 684 | ||
685 | /** | 685 | /** |
686 | * This returns the model as a string | 686 | * This returns the model as a string |
687 | * @return A string representing the model | 687 | * @return A string representing the model |
688 | */ | 688 | */ |
689 | QString ODevice::modelString ( ) const | 689 | QString ODevice::modelString ( ) const |
690 | { | 690 | { |
691 | return d-> m_modelstr; | 691 | return d-> m_modelstr; |
692 | } | 692 | } |
693 | 693 | ||
694 | /** | 694 | /** |
695 | * This does return the OModel used | 695 | * This does return the OModel used |
696 | */ | 696 | */ |
697 | OModel ODevice::model ( ) const | 697 | OModel ODevice::model ( ) const |
698 | { | 698 | { |
699 | return d-> m_model; | 699 | return d-> m_model; |
700 | } | 700 | } |
701 | 701 | ||
702 | /** | 702 | /** |
703 | * This does return the systen name | 703 | * This does return the systen name |
704 | */ | 704 | */ |
705 | QString ODevice::systemString ( ) const | 705 | QString ODevice::systemString ( ) const |
706 | { | 706 | { |
707 | return d-> m_systemstr; | 707 | return d-> m_systemstr; |
708 | } | 708 | } |
709 | 709 | ||
710 | /** | 710 | /** |
711 | * Return System as OSystem value | 711 | * Return System as OSystem value |
712 | */ | 712 | */ |
713 | OSystem ODevice::system ( ) const | 713 | OSystem ODevice::system ( ) const |
714 | { | 714 | { |
715 | return d-> m_system; | 715 | return d-> m_system; |
716 | } | 716 | } |
717 | 717 | ||
718 | /** | 718 | /** |
719 | * @return the version string of the base system | 719 | * @return the version string of the base system |
720 | */ | 720 | */ |
721 | QString ODevice::systemVersionString ( ) const | 721 | QString ODevice::systemVersionString ( ) const |
722 | { | 722 | { |
723 | return d-> m_sysverstr; | 723 | return d-> m_sysverstr; |
724 | } | 724 | } |
725 | 725 | ||
726 | /** | 726 | /** |
727 | * @return the current Transformation | 727 | * @return the current Transformation |
728 | */ | 728 | */ |
729 | Transformation ODevice::rotation ( ) const | 729 | Transformation ODevice::rotation ( ) const |
730 | { | 730 | { |
731 | return d-> m_rotation; | 731 | return d-> m_rotation; |
732 | } | 732 | } |
733 | 733 | ||
734 | /** | 734 | /** |
735 | * @return the current rotation direction | 735 | * @return the current rotation direction |
736 | */ | 736 | */ |
737 | ODirection ODevice::direction ( ) const | 737 | ODirection ODevice::direction ( ) const |
738 | { | 738 | { |
739 | return d-> m_direction; | 739 | return d-> m_direction; |
740 | } | 740 | } |
741 | 741 | ||
742 | /** | 742 | /** |
743 | * This plays an alarmSound | 743 | * This plays an alarmSound |
744 | */ | 744 | */ |
745 | void ODevice::alarmSound ( ) | 745 | void ODevice::alarmSound ( ) |
746 | { | 746 | { |
747 | #ifndef QT_NO_SOUND | 747 | #ifndef QT_NO_SOUND |
748 | static Sound snd ( "alarm" ); | 748 | static Sound snd ( "alarm" ); |
749 | 749 | ||
750 | if ( snd. isFinished ( )) | 750 | if ( snd. isFinished ( )) |
751 | snd. play ( ); | 751 | snd. play ( ); |
752 | #endif | 752 | #endif |
753 | } | 753 | } |
754 | 754 | ||
755 | /** | 755 | /** |
756 | * This plays a key sound | 756 | * This plays a key sound |
757 | */ | 757 | */ |
758 | void ODevice::keySound ( ) | 758 | void ODevice::keySound ( ) |
759 | { | 759 | { |
760 | #ifndef QT_NO_SOUND | 760 | #ifndef QT_NO_SOUND |
761 | static Sound snd ( "keysound" ); | 761 | static Sound snd ( "keysound" ); |
762 | 762 | ||
763 | if ( snd. isFinished ( )) | 763 | if ( snd. isFinished ( )) |
764 | snd. play ( ); | 764 | snd. play ( ); |
765 | #endif | 765 | #endif |
766 | } | 766 | } |
767 | 767 | ||
768 | /** | 768 | /** |
769 | * This plays a touch sound | 769 | * This plays a touch sound |
770 | */ | 770 | */ |
771 | void ODevice::touchSound ( ) | 771 | void ODevice::touchSound ( ) |
772 | { | 772 | { |
773 | #ifndef QT_NO_SOUND | 773 | #ifndef QT_NO_SOUND |
774 | static Sound snd ( "touchsound" ); | 774 | static Sound snd ( "touchsound" ); |
775 | 775 | ||
776 | if ( snd. isFinished ( )) | 776 | if ( snd. isFinished ( )) |
777 | snd. play ( ); | 777 | snd. play ( ); |
778 | #endif | 778 | #endif |
779 | } | 779 | } |
780 | 780 | ||
781 | /** | 781 | /** |
782 | * This method will return a list of leds | 782 | * This method will return a list of leds |
783 | * available on this device | 783 | * available on this device |
784 | * @return a list of LEDs. | 784 | * @return a list of LEDs. |
785 | */ | 785 | */ |
786 | QValueList <OLed> ODevice::ledList ( ) const | 786 | QValueList <OLed> ODevice::ledList ( ) const |
787 | { | 787 | { |
788 | return QValueList <OLed> ( ); | 788 | return QValueList <OLed> ( ); |
789 | } | 789 | } |
790 | 790 | ||
791 | /** | 791 | /** |
792 | * This does return the state of the LEDs | 792 | * This does return the state of the LEDs |
793 | */ | 793 | */ |
794 | QValueList <OLedState> ODevice::ledStateList ( OLed /*which*/ ) const | 794 | QValueList <OLedState> ODevice::ledStateList ( OLed /*which*/ ) const |
795 | { | 795 | { |
796 | return QValueList <OLedState> ( ); | 796 | return QValueList <OLedState> ( ); |
797 | } | 797 | } |
798 | 798 | ||
799 | /** | 799 | /** |
800 | * @return the state for a given OLed | 800 | * @return the state for a given OLed |
801 | */ | 801 | */ |
802 | OLedState ODevice::ledState ( OLed /*which*/ ) const | 802 | OLedState ODevice::ledState ( OLed /*which*/ ) const |
803 | { | 803 | { |
804 | return Led_Off; | 804 | return Led_Off; |
805 | } | 805 | } |
806 | 806 | ||
807 | /** | 807 | /** |
808 | * Set the state for a LED | 808 | * Set the state for a LED |
809 | * @param which Which OLed to use | 809 | * @param which Which OLed to use |
810 | * @param st The state to set | 810 | * @param st The state to set |
811 | * @return success or failure | 811 | * @return success or failure |
812 | */ | 812 | */ |
813 | bool ODevice::setLedState ( OLed which, OLedState st ) | 813 | bool ODevice::setLedState ( OLed which, OLedState st ) |
814 | { | 814 | { |
815 | Q_UNUSED( which ) | 815 | Q_UNUSED( which ) |