-rw-r--r-- | libopie/odevice.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index 13b4330..3edf8e7 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp | |||
@@ -88,49 +88,49 @@ public: | |||
88 | 88 | ||
89 | virtual void alarmSound ( ); | 89 | virtual void alarmSound ( ); |
90 | 90 | ||
91 | virtual QValueList <OLed> ledList ( ) const; | 91 | virtual QValueList <OLed> ledList ( ) const; |
92 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; | 92 | virtual QValueList <OLedState> ledStateList ( OLed led ) const; |
93 | virtual OLedState ledState ( OLed led ) const; | 93 | virtual OLedState ledState ( OLed led ) const; |
94 | virtual bool setLedState ( OLed led, OLedState st ); | 94 | virtual bool setLedState ( OLed led, OLedState st ); |
95 | 95 | ||
96 | virtual bool hasLightSensor ( ) const; | 96 | virtual bool hasLightSensor ( ) const; |
97 | virtual int readLightSensor ( ); | 97 | virtual int readLightSensor ( ); |
98 | virtual int lightSensorResolution ( ) const; | 98 | virtual int lightSensorResolution ( ) const; |
99 | 99 | ||
100 | protected: | 100 | protected: |
101 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); | 101 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); |
102 | virtual void timerEvent ( QTimerEvent *te ); | 102 | virtual void timerEvent ( QTimerEvent *te ); |
103 | 103 | ||
104 | int m_power_timer; | 104 | int m_power_timer; |
105 | 105 | ||
106 | OLedState m_leds [2]; | 106 | OLedState m_leds [2]; |
107 | }; | 107 | }; |
108 | 108 | ||
109 | class Jornada : public ODevice { | 109 | class Jornada : public ODevice { |
110 | protected: | 110 | protected: |
111 | virtual void init ( ); | 111 | virtual void init ( ); |
112 | virtual void initButtons ( ); | 112 | //virtual void initButtons ( ); |
113 | public: | 113 | public: |
114 | virtual bool setSoftSuspend ( bool soft ); | 114 | virtual bool setSoftSuspend ( bool soft ); |
115 | virtual bool setDisplayBrightness ( int b ); | 115 | virtual bool setDisplayBrightness ( int b ); |
116 | virtual int displayBrightnessResolution ( ) const; | 116 | virtual int displayBrightnessResolution ( ) const; |
117 | static bool isJornada(); | 117 | static bool isJornada(); |
118 | 118 | ||
119 | }; | 119 | }; |
120 | 120 | ||
121 | class Zaurus : public ODevice { | 121 | class Zaurus : public ODevice { |
122 | protected: | 122 | protected: |
123 | virtual void init ( ); | 123 | virtual void init ( ); |
124 | virtual void initButtons ( ); | 124 | virtual void initButtons ( ); |
125 | 125 | ||
126 | public: | 126 | public: |
127 | virtual bool setSoftSuspend ( bool soft ); | 127 | virtual bool setSoftSuspend ( bool soft ); |
128 | 128 | ||
129 | virtual bool setDisplayBrightness ( int b ); | 129 | virtual bool setDisplayBrightness ( int b ); |
130 | virtual int displayBrightnessResolution ( ) const; | 130 | virtual int displayBrightnessResolution ( ) const; |
131 | 131 | ||
132 | virtual void alarmSound ( ); | 132 | virtual void alarmSound ( ); |
133 | virtual void keySound ( ); | 133 | virtual void keySound ( ); |
134 | virtual void touchSound ( ); | 134 | virtual void touchSound ( ); |
135 | 135 | ||
136 | virtual QValueList <OLed> ledList ( ) const; | 136 | virtual QValueList <OLed> ledList ( ) const; |
@@ -186,74 +186,74 @@ public: | |||
186 | 186 | ||
187 | virtual bool setDisplayStatus( bool on ); | 187 | virtual bool setDisplayStatus( bool on ); |
188 | virtual bool setDisplayBrightness ( int b ); | 188 | virtual bool setDisplayBrightness ( int b ); |
189 | virtual int displayBrightnessResolution ( ) const; | 189 | virtual int displayBrightnessResolution ( ) const; |
190 | virtual bool setDisplayContrast ( int b ); | 190 | virtual bool setDisplayContrast ( int b ); |
191 | virtual int displayContrastResolution ( ) const; | 191 | virtual int displayContrastResolution ( ) const; |
192 | 192 | ||
193 | protected: | 193 | protected: |
194 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); | 194 | virtual bool filter ( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); |
195 | virtual void timerEvent ( QTimerEvent *te ); | 195 | virtual void timerEvent ( QTimerEvent *te ); |
196 | 196 | ||
197 | int m_power_timer; | 197 | int m_power_timer; |
198 | }; | 198 | }; |
199 | 199 | ||
200 | struct i_button { | 200 | struct i_button { |
201 | uint model; | 201 | uint model; |
202 | Qt::Key code; | 202 | Qt::Key code; |
203 | char *utext; | 203 | char *utext; |
204 | char *pix; | 204 | char *pix; |
205 | char *fpressedservice; | 205 | char *fpressedservice; |
206 | char *fpressedaction; | 206 | char *fpressedaction; |
207 | char *fheldservice; | 207 | char *fheldservice; |
208 | char *fheldaction; | 208 | char *fheldaction; |
209 | } ipaq_buttons [] = { | 209 | } ipaq_buttons [] = { |
210 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 210 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
211 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 211 | Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
212 | "devicebuttons/ipaq_calendar", | 212 | "devicebuttons/ipaq_calendar", |
213 | "datebook", "nextView()", | 213 | "datebook", "nextView()", |
214 | "today", "raise()" }, | 214 | "today", "raise()" }, |
215 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 215 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
216 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 216 | Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
217 | "devicebuttons/ipaq_contact", | 217 | "devicebuttons/ipaq_contact", |
218 | "addressbook", "raise()", | 218 | "addressbook", "raise()", |
219 | "addressbook", "beamBusinessCard()" }, | 219 | "addressbook", "beamBusinessCard()" }, |
220 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, | 220 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx, |
221 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), | 221 | Qt::Key_F11, QT_TRANSLATE_NOOP("Button", "Menu Button"), |
222 | "devicebuttons/ipaq_menu", | 222 | "devicebuttons/ipaq_menu", |
223 | "QPE/TaskBar", "toggleMenu()", | 223 | "QPE/TaskBar", "toggleMenu()", |
224 | "QPE/TaskBar", "toggleStartMenu()" }, | 224 | "QPE/TaskBar", "toggleStartMenu()" }, |
225 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 225 | { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
226 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), | 226 | Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"), |
227 | "devicebuttons/ipaq_mail", | 227 | "devicebuttons/ipaq_mail", |
228 | "mail", "raise()", | 228 | "mail", "raise()", |
229 | "mail", "newMail()" }, | 229 | "mail", "newMail()" }, |
230 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 230 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
231 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 231 | Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
232 | "devicebuttons/ipaq_home", | 232 | "devicebuttons/ipaq_home", |
233 | "QPE/Launcher", "home()", | 233 | "QPE/Launcher", "home()", |
234 | "buttonsettings", "raise()" }, | 234 | "buttonsettings", "raise()" }, |
235 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx, | 235 | { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx, |
236 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), | 236 | Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"), |
237 | "devicebuttons/ipaq_record", | 237 | "devicebuttons/ipaq_record", |
238 | "QPE/VMemo", "toggleRecord()", | 238 | "QPE/VMemo", "toggleRecord()", |
239 | "sound", "raise()" }, | 239 | "sound", "raise()" }, |
240 | }; | 240 | }; |
241 | 241 | ||
242 | struct z_button { | 242 | struct z_button { |
243 | Qt::Key code; | 243 | Qt::Key code; |
244 | char *utext; | 244 | char *utext; |
245 | char *pix; | 245 | char *pix; |
246 | char *fpressedservice; | 246 | char *fpressedservice; |
247 | char *fpressedaction; | 247 | char *fpressedaction; |
248 | char *fheldservice; | 248 | char *fheldservice; |
249 | char *fheldaction; | 249 | char *fheldaction; |
250 | } z_buttons [] = { | 250 | } z_buttons [] = { |
251 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), | 251 | { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), |
252 | "devicebuttons/z_calendar", | 252 | "devicebuttons/z_calendar", |
253 | "datebook", "nextView()", | 253 | "datebook", "nextView()", |
254 | "today", "raise()" }, | 254 | "today", "raise()" }, |
255 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), | 255 | { Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"), |
256 | "devicebuttons/z_contact", | 256 | "devicebuttons/z_contact", |
257 | "addressbook", "raise()", | 257 | "addressbook", "raise()", |
258 | "addressbook", "beamBusinessCard()" }, | 258 | "addressbook", "beamBusinessCard()" }, |
259 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), | 259 | { Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"), |
@@ -1097,66 +1097,70 @@ int Yopy::displayBrightnessResolution() const | |||
1097 | **************************************************/ | 1097 | **************************************************/ |
1098 | 1098 | ||
1099 | void iPAQ::init ( ) | 1099 | void iPAQ::init ( ) |
1100 | { | 1100 | { |
1101 | d-> m_vendorstr = "HP"; | 1101 | d-> m_vendorstr = "HP"; |
1102 | d-> m_vendor = Vendor_HP; | 1102 | d-> m_vendor = Vendor_HP; |
1103 | 1103 | ||
1104 | QFile f ( "/proc/hal/model" ); | 1104 | QFile f ( "/proc/hal/model" ); |
1105 | 1105 | ||
1106 | if ( f. open ( IO_ReadOnly )) { | 1106 | if ( f. open ( IO_ReadOnly )) { |
1107 | QTextStream ts ( &f ); | 1107 | QTextStream ts ( &f ); |
1108 | 1108 | ||
1109 | d-> m_modelstr = "H" + ts. readLine ( ); | 1109 | d-> m_modelstr = "H" + ts. readLine ( ); |
1110 | 1110 | ||
1111 | if ( d-> m_modelstr == "H3100" ) | 1111 | if ( d-> m_modelstr == "H3100" ) |
1112 | d-> m_model = Model_iPAQ_H31xx; | 1112 | d-> m_model = Model_iPAQ_H31xx; |
1113 | else if ( d-> m_modelstr == "H3600" ) | 1113 | else if ( d-> m_modelstr == "H3600" ) |
1114 | d-> m_model = Model_iPAQ_H36xx; | 1114 | d-> m_model = Model_iPAQ_H36xx; |
1115 | else if ( d-> m_modelstr == "H3700" ) | 1115 | else if ( d-> m_modelstr == "H3700" ) |
1116 | d-> m_model = Model_iPAQ_H37xx; | 1116 | d-> m_model = Model_iPAQ_H37xx; |
1117 | else if ( d-> m_modelstr == "H3800" ) | 1117 | else if ( d-> m_modelstr == "H3800" ) |
1118 | d-> m_model = Model_iPAQ_H38xx; | 1118 | d-> m_model = Model_iPAQ_H38xx; |
1119 | else if ( d-> m_modelstr == "H3900" ) | 1119 | else if ( d-> m_modelstr == "H3900" ) |
1120 | d-> m_model = Model_iPAQ_H39xx; | 1120 | d-> m_model = Model_iPAQ_H39xx; |
1121 | else if ( d-> m_modelstr == "H5400" ) | ||
1122 | d-> m_model = Model_iPAQ_H5xxx; | ||
1121 | else | 1123 | else |
1122 | d-> m_model = Model_Unknown; | 1124 | d-> m_model = Model_Unknown; |
1123 | 1125 | ||
1124 | f. close ( ); | 1126 | f. close ( ); |
1125 | } | 1127 | } |
1126 | 1128 | ||
1127 | switch ( d-> m_model ) { | 1129 | switch ( d-> m_model ) { |
1128 | case Model_iPAQ_H31xx: | 1130 | case Model_iPAQ_H31xx: |
1129 | case Model_iPAQ_H38xx: | 1131 | case Model_iPAQ_H38xx: |
1130 | d-> m_rotation = Rot90; | 1132 | d-> m_rotation = Rot90; |
1131 | break; | 1133 | break; |
1132 | case Model_iPAQ_H36xx: | 1134 | case Model_iPAQ_H36xx: |
1133 | case Model_iPAQ_H37xx: | 1135 | case Model_iPAQ_H37xx: |
1134 | case Model_iPAQ_H39xx: | 1136 | case Model_iPAQ_H39xx: |
1135 | default: | 1137 | default: |
1136 | d-> m_rotation = Rot270; | 1138 | d-> m_rotation = Rot270; |
1137 | break; | 1139 | break; |
1138 | } | 1140 | case Model_iPAQ_H5xxx: |
1141 | d-> m_rotation = Rot0; | ||
1142 | } | ||
1139 | 1143 | ||
1140 | f. setName ( "/etc/familiar-version" ); | 1144 | f. setName ( "/etc/familiar-version" ); |
1141 | if ( f. open ( IO_ReadOnly )) { | 1145 | if ( f. open ( IO_ReadOnly )) { |
1142 | d-> m_systemstr = "Familiar"; | 1146 | d-> m_systemstr = "Familiar"; |
1143 | d-> m_system = System_Familiar; | 1147 | d-> m_system = System_Familiar; |
1144 | 1148 | ||
1145 | QTextStream ts ( &f ); | 1149 | QTextStream ts ( &f ); |
1146 | d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); | 1150 | d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); |
1147 | 1151 | ||
1148 | f. close ( ); | 1152 | f. close ( ); |
1149 | } else { | 1153 | } else { |
1150 | f. setName ( "/etc/oz_version" ); | 1154 | f. setName ( "/etc/oz_version" ); |
1151 | 1155 | ||
1152 | if ( f. open ( IO_ReadOnly )) { | 1156 | if ( f. open ( IO_ReadOnly )) { |
1153 | d-> m_systemstr = "OpenEmbedded/iPaq"; | 1157 | d-> m_systemstr = "OpenEmbedded/iPaq"; |
1154 | d-> m_system = System_Familiar; | 1158 | d-> m_system = System_Familiar; |
1155 | 1159 | ||
1156 | QTextStream ts ( &f ); | 1160 | QTextStream ts ( &f ); |
1157 | ts.setDevice ( &f ); | 1161 | ts.setDevice ( &f ); |
1158 | d-> m_sysverstr = ts. readLine ( ); | 1162 | d-> m_sysverstr = ts. readLine ( ); |
1159 | f. close ( ); | 1163 | f. close ( ); |
1160 | } | 1164 | } |
1161 | } | 1165 | } |
1162 | 1166 | ||
@@ -1271,49 +1275,50 @@ bool iPAQ::setLedState ( OLed l, OLedState st ) | |||
1271 | case Led_Off : leds. OffOnBlink = 0; break; | 1275 | case Led_Off : leds. OffOnBlink = 0; break; |
1272 | case Led_On : leds. OffOnBlink = 1; break; | 1276 | case Led_On : leds. OffOnBlink = 1; break; |
1273 | case Led_BlinkSlow: leds. OnTime = 10; leds. OffTime = 10; break; | 1277 | case Led_BlinkSlow: leds. OnTime = 10; leds. OffTime = 10; break; |
1274 | case Led_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break; | 1278 | case Led_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break; |
1275 | } | 1279 | } |
1276 | 1280 | ||
1277 | if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) { | 1281 | if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) { |
1278 | m_leds [0] = st; | 1282 | m_leds [0] = st; |
1279 | return true; | 1283 | return true; |
1280 | } | 1284 | } |
1281 | } | 1285 | } |
1282 | } | 1286 | } |
1283 | return false; | 1287 | return false; |
1284 | } | 1288 | } |
1285 | 1289 | ||
1286 | 1290 | ||
1287 | bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) | 1291 | bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) |
1288 | { | 1292 | { |
1289 | int newkeycode = keycode; | 1293 | int newkeycode = keycode; |
1290 | 1294 | ||
1291 | switch ( keycode ) { | 1295 | switch ( keycode ) { |
1292 | // H38xx/H39xx have no "Q" key anymore - this is now the Mail key | 1296 | // H38xx/H39xx have no "Q" key anymore - this is now the Mail key |
1293 | case HardKey_Menu: { | 1297 | case HardKey_Menu: { |
1294 | if (( d-> m_model == Model_iPAQ_H38xx ) || | 1298 | if (( d-> m_model == Model_iPAQ_H38xx ) || |
1295 | ( d-> m_model == Model_iPAQ_H39xx )) { | 1299 | ( d-> m_model == Model_iPAQ_H39xx ) || |
1300 | ( d-> m_model == Model_iPAQ_H5xxx)) { | ||
1296 | newkeycode = HardKey_Mail; | 1301 | newkeycode = HardKey_Mail; |
1297 | } | 1302 | } |
1298 | break; | 1303 | break; |
1299 | } | 1304 | } |
1300 | 1305 | ||
1301 | // Rotate cursor keys 180° | 1306 | // Rotate cursor keys 180° |
1302 | case Key_Left : | 1307 | case Key_Left : |
1303 | case Key_Right: | 1308 | case Key_Right: |
1304 | case Key_Up : | 1309 | case Key_Up : |
1305 | case Key_Down : { | 1310 | case Key_Down : { |
1306 | if (( d-> m_model == Model_iPAQ_H31xx ) || | 1311 | if (( d-> m_model == Model_iPAQ_H31xx ) || |
1307 | ( d-> m_model == Model_iPAQ_H38xx )) { | 1312 | ( d-> m_model == Model_iPAQ_H38xx )) { |
1308 | newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; | 1313 | newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; |
1309 | } | 1314 | } |
1310 | break; | 1315 | break; |
1311 | } | 1316 | } |
1312 | 1317 | ||
1313 | // map Power Button short/long press to F34/F35 | 1318 | // map Power Button short/long press to F34/F35 |
1314 | case Key_SysReq: { | 1319 | case Key_SysReq: { |
1315 | if ( isPress ) { | 1320 | if ( isPress ) { |
1316 | if ( m_power_timer ) | 1321 | if ( m_power_timer ) |
1317 | killTimer ( m_power_timer ); | 1322 | killTimer ( m_power_timer ); |
1318 | m_power_timer = startTimer ( 500 ); | 1323 | m_power_timer = startTimer ( 500 ); |
1319 | } | 1324 | } |
@@ -1415,48 +1420,50 @@ bool iPAQ::setDisplayBrightness ( int bright ) | |||
1415 | bright = 0; | 1420 | bright = 0; |
1416 | 1421 | ||
1417 | if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { | 1422 | if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { |
1418 | FLITE_IN bl; | 1423 | FLITE_IN bl; |
1419 | bl. mode = 1; | 1424 | bl. mode = 1; |
1420 | bl. pwr = bright ? 1 : 0; | 1425 | bl. pwr = bright ? 1 : 0; |
1421 | bl. brightness = ( bright * ( displayBrightnessResolution ( ) - 1 ) + 127 ) / 255; | 1426 | bl. brightness = ( bright * ( displayBrightnessResolution ( ) - 1 ) + 127 ) / 255; |
1422 | res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 ); | 1427 | res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 ); |
1423 | ::close ( fd ); | 1428 | ::close ( fd ); |
1424 | } | 1429 | } |
1425 | return res; | 1430 | return res; |
1426 | } | 1431 | } |
1427 | 1432 | ||
1428 | int iPAQ::displayBrightnessResolution ( ) const | 1433 | int iPAQ::displayBrightnessResolution ( ) const |
1429 | { | 1434 | { |
1430 | switch ( model ( )) { | 1435 | switch ( model ( )) { |
1431 | case Model_iPAQ_H31xx: | 1436 | case Model_iPAQ_H31xx: |
1432 | case Model_iPAQ_H36xx: | 1437 | case Model_iPAQ_H36xx: |
1433 | case Model_iPAQ_H37xx: | 1438 | case Model_iPAQ_H37xx: |
1434 | return 128; // really 256, but >128 could damage the LCD | 1439 | return 128; // really 256, but >128 could damage the LCD |
1435 | 1440 | ||
1436 | case Model_iPAQ_H38xx: | 1441 | case Model_iPAQ_H38xx: |
1437 | case Model_iPAQ_H39xx: | 1442 | case Model_iPAQ_H39xx: |
1438 | return 64; | 1443 | return 64; |
1444 | case Model_iPAQ_H5xxx: | ||
1445 | return 255; | ||
1439 | 1446 | ||
1440 | default: | 1447 | default: |
1441 | return 2; | 1448 | return 2; |
1442 | } | 1449 | } |
1443 | } | 1450 | } |
1444 | 1451 | ||
1445 | 1452 | ||
1446 | bool iPAQ::hasLightSensor ( ) const | 1453 | bool iPAQ::hasLightSensor ( ) const |
1447 | { | 1454 | { |
1448 | return true; | 1455 | return true; |
1449 | } | 1456 | } |
1450 | 1457 | ||
1451 | int iPAQ::readLightSensor ( ) | 1458 | int iPAQ::readLightSensor ( ) |
1452 | { | 1459 | { |
1453 | int fd; | 1460 | int fd; |
1454 | int val = -1; | 1461 | int val = -1; |
1455 | 1462 | ||
1456 | if (( fd = ::open ( "/proc/hal/light_sensor", O_RDONLY )) >= 0 ) { | 1463 | if (( fd = ::open ( "/proc/hal/light_sensor", O_RDONLY )) >= 0 ) { |
1457 | char buffer [8]; | 1464 | char buffer [8]; |
1458 | 1465 | ||
1459 | if ( ::read ( fd, buffer, 5 ) == 5 ) { | 1466 | if ( ::read ( fd, buffer, 5 ) == 5 ) { |
1460 | char *endptr; | 1467 | char *endptr; |
1461 | 1468 | ||
1462 | buffer [4] = 0; | 1469 | buffer [4] = 0; |
@@ -2495,78 +2502,78 @@ bool Jornada::isJornada ( ) | |||
2495 | return false; | 2502 | return false; |
2496 | } | 2503 | } |
2497 | 2504 | ||
2498 | void Jornada::init ( ) | 2505 | void Jornada::init ( ) |
2499 | { | 2506 | { |
2500 | d-> m_vendorstr = "HP"; | 2507 | d-> m_vendorstr = "HP"; |
2501 | d-> m_vendor = Vendor_HP; | 2508 | d-> m_vendor = Vendor_HP; |
2502 | d-> m_modelstr = "Jornada 56x"; | 2509 | d-> m_modelstr = "Jornada 56x"; |
2503 | d-> m_model = Model_Jornada_56x; | 2510 | d-> m_model = Model_Jornada_56x; |
2504 | d-> m_systemstr = "Familiar"; | 2511 | d-> m_systemstr = "Familiar"; |
2505 | d-> m_system = System_Familiar; | 2512 | d-> m_system = System_Familiar; |
2506 | d-> m_rotation = Rot0; | 2513 | d-> m_rotation = Rot0; |
2507 | 2514 | ||
2508 | QFile f ( "/etc/familiar-version" ); | 2515 | QFile f ( "/etc/familiar-version" ); |
2509 | f. setName ( "/etc/familiar-version" ); | 2516 | f. setName ( "/etc/familiar-version" ); |
2510 | if ( f. open ( IO_ReadOnly )) { | 2517 | if ( f. open ( IO_ReadOnly )) { |
2511 | 2518 | ||
2512 | QTextStream ts ( &f ); | 2519 | QTextStream ts ( &f ); |
2513 | d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); | 2520 | d-> m_sysverstr = ts. readLine ( ). mid ( 10 ); |
2514 | 2521 | ||
2515 | f. close ( ); | 2522 | f. close ( ); |
2516 | } | 2523 | } |
2517 | } | 2524 | } |
2518 | 2525 | ||
2519 | 2526 | #if 0 | |
2520 | void Jornada::initButtons ( ) | 2527 | void Jornada::initButtons ( ) |
2521 | { | 2528 | { |
2522 | if ( d-> m_buttons ) | 2529 | if ( d-> m_buttons ) |
2523 | return; | 2530 | return; |
2524 | 2531 | ||
2525 | // Simulation uses iPAQ 3660 device buttons | 2532 | // Simulation uses iPAQ 3660 device buttons |
2526 | 2533 | ||
2527 | qDebug ( "init Buttons" ); | 2534 | qDebug ( "init Buttons" ); |
2528 | d-> m_buttons = new QValueList <ODeviceButton>; | 2535 | d-> m_buttons = new QValueList <ODeviceButton>; |
2529 | 2536 | ||
2530 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { | 2537 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { |
2531 | i_button *ib = ipaq_buttons + i; | 2538 | i_button *ib = ipaq_buttons + i; |
2532 | ODeviceButton b; | 2539 | ODeviceButton b; |
2533 | 2540 | ||
2534 | if (( ib-> model & Model_iPAQ_H36xx ) == Model_iPAQ_H36xx ) { | 2541 | if (( ib-> model & Model_iPAQ_H36xx ) == Model_iPAQ_H36xx ) { |
2535 | b. setKeycode ( ib-> code ); | 2542 | b. setKeycode ( ib-> code ); |
2536 | b. setUserText ( QObject::tr ( "Button", ib-> utext )); | 2543 | b. setUserText ( QObject::tr ( "Button", ib-> utext )); |
2537 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); | 2544 | b. setPixmap ( Resource::loadPixmap ( ib-> pix )); |
2538 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); | 2545 | b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib-> fpressedservice ), ib-> fpressedaction )); |
2539 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); | 2546 | b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib-> fheldservice ), ib-> fheldaction )); |
2540 | d-> m_buttons-> append ( b ); | 2547 | d-> m_buttons-> append ( b ); |
2541 | } | 2548 | } |
2542 | } | 2549 | } |
2543 | reloadButtonMapping ( ); | 2550 | reloadButtonMapping ( ); |
2544 | 2551 | ||
2545 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); | 2552 | QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); |
2546 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); | 2553 | connect ( sysch, SIGNAL( received( const QCString &, const QByteArray & )), this, SLOT( systemMessage ( const QCString &, const QByteArray & ))); |
2547 | } | 2554 | } |
2548 | 2555 | #endif | |
2549 | int Jornada::displayBrightnessResolution ( ) const | 2556 | int Jornada::displayBrightnessResolution ( ) const |
2550 | { | 2557 | { |
2551 | } | 2558 | } |
2552 | 2559 | ||
2553 | bool Jornada::setDisplayBrightness ( int bright ) | 2560 | bool Jornada::setDisplayBrightness ( int bright ) |
2554 | { | 2561 | { |
2555 | bool res = false; | 2562 | bool res = false; |
2556 | int fd; | 2563 | int fd; |
2557 | 2564 | ||
2558 | if ( bright > 255 ) | 2565 | if ( bright > 255 ) |
2559 | bright = 255; | 2566 | bright = 255; |
2560 | if ( bright < 0 ) | 2567 | if ( bright < 0 ) |
2561 | bright = 0; | 2568 | bright = 0; |
2562 | 2569 | ||
2563 | if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { | 2570 | if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) { |
2564 | FLITE_IN bl; | 2571 | FLITE_IN bl; |
2565 | bl. mode = 1; | 2572 | bl. mode = 1; |
2566 | bl. pwr = bright ? 1 : 0; | 2573 | bl. pwr = bright ? 1 : 0; |
2567 | bl. brightness = ( bright * ( displayBrightnessResolution ( ) - 1 ) + 127 ) / 255; | 2574 | bl. brightness = ( bright * ( displayBrightnessResolution ( ) - 1 ) + 127 ) / 255; |
2568 | res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 ); | 2575 | res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 ); |
2569 | ::close ( fd ); | 2576 | ::close ( fd ); |
2570 | } | 2577 | } |
2571 | return res; | 2578 | return res; |
2572 | } | 2579 | } |