summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp107
1 files changed, 73 insertions, 34 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 61c24f4..dea24a8 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -1,15 +1,15 @@
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
@@ -54,5 +54,5 @@ public:
54 54
55class ODeviceZaurus : public ODevice { 55class ODeviceZaurus : public ODevice {
56protected: 56protected:
57 virtual void init ( ); 57 virtual void init ( );
58 58
@@ -61,5 +61,5 @@ public:
61 virtual void keySound ( ); 61 virtual void keySound ( );
62 virtual void touchSound ( ); 62 virtual void touchSound ( );
63 63
64 virtual uint hasLeds ( ) const; 64 virtual uint hasLeds ( ) const;
65 virtual OLedState led ( uint which ) const; 65 virtual OLedState led ( uint which ) const;
@@ -93,5 +93,5 @@ ODevice::ODevice ( )
93{ 93{
94 d = new ODeviceData; 94 d = new ODeviceData;
95 95
96 d-> m_modelstr = "Unknown"; 96 d-> m_modelstr = "Unknown";
97 d-> m_model = OMODEL_Unknown; 97 d-> m_model = OMODEL_Unknown;
@@ -99,5 +99,5 @@ ODevice::ODevice ( )
99 d-> m_vendor = OVENDOR_Unknown; 99 d-> m_vendor = OVENDOR_Unknown;
100 d-> m_systemstr = "Unkown"; 100 d-> m_systemstr = "Unkown";
101 d-> m_system = OSYSTEM_Unknown; 101 d-> m_system = OSYSTEM_Unknown;
102} 102}
103 103
@@ -143,4 +143,5 @@ OSystem ODevice::system ( )
143void ODevice::alarmSound ( ) 143void ODevice::alarmSound ( )
144{ 144{
145#ifndef QT_QWS_EBX
145#ifndef QT_NO_SOUND 146#ifndef QT_NO_SOUND
146 static Sound snd ( "alarm" ); 147 static Sound snd ( "alarm" );
@@ -149,8 +150,10 @@ void ODevice::alarmSound ( )
149 snd. play ( ); 150 snd. play ( );
150#endif 151#endif
152#endif
151} 153}
152 154
153void ODevice::keySound ( ) 155void ODevice::keySound ( )
154{ 156{
157#ifndef QT_QWS_EBX
155#ifndef QT_NO_SOUND 158#ifndef QT_NO_SOUND
156 static Sound snd ( "keysound" ); 159 static Sound snd ( "keysound" );
@@ -159,13 +162,19 @@ void ODevice::keySound ( )
159 snd. play ( ); 162 snd. play ( );
160#endif 163#endif
164#endif
161} 165}
162 166
163void ODevice::touchSound ( ) 167void ODevice::touchSound ( )
164{ 168{
169
170#ifndef QT_QWS_EBX
165#ifndef QT_NO_SOUND 171#ifndef QT_NO_SOUND
166 static Sound snd ( "touchsound" ); 172 static Sound snd ( "touchsound" );
167 173qDebug("touchSound");
168 if ( snd. isFinished ( )) 174 if ( snd. isFinished ( )) {
169 snd. play ( ); 175 snd. play ( );
176 qDebug("sound should play");
177 }
178#endif
170#endif 179#endif
171} 180}
@@ -195,13 +204,13 @@ void ODeviceIPAQ::init ( )
195{ 204{
196 d-> m_vendorstr = "HP"; 205 d-> m_vendorstr = "HP";
197 d-> m_vendor = OVENDOR_HP; 206 d-> m_vendor = OVENDOR_HP;
198 207
199 QFile f ( "/proc/hal/model" ); 208 QFile f ( "/proc/hal/model" );
200 209
201 if ( f. open ( IO_ReadOnly )) { 210 if ( f. open ( IO_ReadOnly )) {
202 QTextStream ts ( &f ); 211 QTextStream ts ( &f );
203 212
204 d-> m_modelstr = "H" + ts. readLine ( ); 213 d-> m_modelstr = "H" + ts. readLine ( );
205 214
206 if ( d-> m_modelstr == "H3100" ) 215 if ( d-> m_modelstr == "H3100" )
207 d-> m_model = OMODEL_iPAQ_H31xx; 216 d-> m_model = OMODEL_iPAQ_H31xx;
@@ -214,5 +223,5 @@ void ODeviceIPAQ::init ( )
214 else 223 else
215 d-> m_model = OMODEL_Unknown; 224 d-> m_model = OMODEL_Unknown;
216 225
217 f. close ( ); 226 f. close ( );
218 } 227 }
@@ -222,5 +231,5 @@ void ODeviceIPAQ::init ( )
222 d-> m_system = OSYSTEM_Familiar; 231 d-> m_system = OSYSTEM_Familiar;
223 } 232 }
224 233
225 d-> m_leds [0] = OLED_Off; 234 d-> m_leds [0] = OLED_Off;
226} 235}
@@ -233,5 +242,5 @@ void ODeviceIPAQ::init ( )
233#include <qpe/config.h> 242#include <qpe/config.h>
234 243
235//#include <linux/h3600_ts.h> // including kernel headers is evil ... 244//#include <linux/h3600_ts.h> // including kernel headers is evil ...
236 245
237typedef struct h3600_ts_led { 246typedef struct h3600_ts_led {
@@ -243,11 +252,12 @@ typedef struct h3600_ts_led {
243 252
244 253
245// #define IOC_H3600_TS_MAGIC 'f' 254// #define IOC_H3600_TS_MAGIC 'f'
246// #define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led) 255// #define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led)
247#define LED_ON (( 1<<30 ) | ( 'f'<<8 ) | ( 5 ) | ( sizeof(struct h3600_ts_led)<<16 )) // _IOW only defined in kernel headers :( 256#define LED_ON (( 1<<30 ) | ( 'f'<<8 ) | ( 5 ) | ( sizeof(struct h3600_ts_led)<<16 )) // _IOW only defined in kernel headers :(
248 257
249 258
250void ODeviceIPAQ::alarmSound ( ) 259void ODeviceIPAQ::alarmSound ( )
251{ 260{
261#if defined( QT_QWS_IPAQ ) // IPAQ
252#ifndef QT_NO_SOUND 262#ifndef QT_NO_SOUND
253 static Sound snd ( "alarm" ); 263 static Sound snd ( "alarm" );
@@ -267,7 +277,7 @@ void ODeviceIPAQ::alarmSound ( )
267 volalarm = 0; 277 volalarm = 0;
268 else if ( volalarm > 100 ) 278 else if ( volalarm > 100 )
269 volalarm = 100; 279 volalarm = 100;
270 volalarm |= ( volalarm << 8 ); 280 volalarm |= ( volalarm << 8 );
271 281
272 if (( volalarm & 0xff ) > ( vol & 0xff )) { 282 if (( volalarm & 0xff ) > ( vol & 0xff )) {
273 if ( ::ioctl ( fd, MIXER_WRITE( 0 ), &volalarm ) >= 0 ) 283 if ( ::ioctl ( fd, MIXER_WRITE( 0 ), &volalarm ) >= 0 )
@@ -287,4 +297,5 @@ void ODeviceIPAQ::alarmSound ( )
287 } 297 }
288#endif 298#endif
299#endif
289} 300}
290 301
@@ -299,13 +310,13 @@ OLedState ODeviceIPAQ::led ( uint which ) const
299 return d-> m_leds [0]; 310 return d-> m_leds [0];
300 else 311 else
301 return OLED_Off; 312 return OLED_Off;
302} 313}
303 314
304bool ODeviceIPAQ::setLed ( uint which, OLedState st ) 315bool ODeviceIPAQ::setLed ( uint which, OLedState st )
305{ 316{
306 static int fd = ::open ( "/dev/touchscreen/0", O_RDWR|O_NONBLOCK ); 317 static int fd = ::open ( "/dev/touchscreen/0", O_RDWR|O_NONBLOCK );
307 318
308 if ( which == 0 ) { 319 if ( which == 0 ) {
309 if ( fd >= 0 ) { 320 if ( fd >= 0 ) {
310 struct h3600_ts_led leds; 321 struct h3600_ts_led leds;
311 ::memset ( &leds, 0, sizeof( leds )); 322 ::memset ( &leds, 0, sizeof( leds ));
@@ -314,5 +325,5 @@ bool ODeviceIPAQ::setLed ( uint which, OLedState st )
314 leds. OffTime = 1; 325 leds. OffTime = 1;
315 leds. OffOnBlink = 2; 326 leds. OffOnBlink = 2;
316 327
317 switch ( st ) { 328 switch ( st ) {
318 case OLED_Off : leds. OffOnBlink = 0; break; 329 case OLED_Off : leds. OffOnBlink = 0; break;
@@ -321,5 +332,5 @@ bool ODeviceIPAQ::setLed ( uint which, OLedState st )
321 case OLED_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break; 332 case OLED_BlinkFast: leds. OnTime = 5; leds. OffTime = 5; break;
322 } 333 }
323 334
324 if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) { 335 if ( ::ioctl ( fd, LED_ON, &leds ) >= 0 ) {
325 d-> m_leds [0] = st; 336 d-> m_leds [0] = st;
@@ -338,8 +349,8 @@ bool ODeviceIPAQ::setLed ( uint which, OLedState st )
338 349
339 350
340//#if defined( QT_QWS_CUSTOM ) // Zaurus 351//#if defined( QT_QWS_EBX ) // Zaurus
341 352
342void ODeviceZaurus::init ( ) 353void ODeviceZaurus::init ( )
343 { 354{
344 d-> m_modelstr = "Zaurus SL5000"; 355 d-> m_modelstr = "Zaurus SL5000";
345 d-> m_model = OMODEL_Zaurus_SL5000; 356 d-> m_model = OMODEL_Zaurus_SL5000;
@@ -348,11 +359,11 @@ void ODeviceZaurus::init ( )
348 359
349 QFile f ( "/proc/filesystems" ); 360 QFile f ( "/proc/filesystems" );
350 361
351 if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) { 362 if ( f. open ( IO_ReadOnly ) && ( QTextStream ( &f ). read ( ). find ( "\tjffs2\n" ) >= 0 )) {
352 d-> m_systemstr = "OpenZaurus"; 363 d-> m_systemstr = "OpenZaurus";
353 d-> m_system = OSYSTEM_OpenZaurus; 364 d-> m_system = OSYSTEM_OpenZaurus;
354 365
355 f. close ( ); 366 f. close ( );
356 } 367 }
357 else { 368 else {
358 d-> m_systemstr = "Zaurus"; 369 d-> m_systemstr = "Zaurus";
@@ -373,9 +384,37 @@ void ODeviceZaurus::init ( )
373 #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 384 #defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
374#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START) 385#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
375 386
376#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */ 387#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
377#define SHARP_BUZ_KEYSOUND 2 /* key sound */ 388#define SHARP_BUZ_KEYSOUND 2 /* key sound */
378#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */ 389#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
379 390
391/* --- for SHARP_BUZZER device --- */
392
393 //#defineSHARP_BUZZER_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
394//#define SHARP_BUZZER_MAKESOUND (SHARP_BUZZER_IOCTL_START)
395
396#define SHARP_BUZZER_SETVOLUME (SHARP_BUZZER_IOCTL_START+1)
397#define SHARP_BUZZER_GETVOLUME (SHARP_BUZZER_IOCTL_START+2)
398#define SHARP_BUZZER_ISSUPPORTED (SHARP_BUZZER_IOCTL_START+3)
399#define SHARP_BUZZER_SETMUTE (SHARP_BUZZER_IOCTL_START+4)
400#define SHARP_BUZZER_STOPSOUND (SHARP_BUZZER_IOCTL_START+5)
401
402//#define SHARP_BUZ_TOUCHSOUND 1 /* touch panel sound */
403//#define SHARP_BUZ_KEYSOUND 2 /* key sound */
404
405//#define SHARP_PDA_ILLCLICKSOUND 3 /* illegal click */
406//#define SHARP_PDA_WARNSOUND 4 /* warning occurred */
407//#define SHARP_PDA_ERRORSOUND 5 /* error occurred */
408//#define SHARP_PDA_CRITICALSOUND 6 /* critical error occurred */
409//#define SHARP_PDA_SYSSTARTSOUND 7 /* system start */
410//#define SHARP_PDA_SYSTEMENDSOUND 8 /* system shutdown */
411//#define SHARP_PDA_APPSTART 9 /* application start */
412//#define SHARP_PDA_APPQUIT 10 /* application ends */
413
414//#define SHARP_BUZ_SCHEDULE_ALARM 11 /* schedule alarm */
415//#define SHARP_BUZ_DAILY_ALARM 12 /* daily alarm */
416//#define SHARP_BUZ_GOT_PHONE_CALL 13 /* phone call sound */
417//#define SHARP_BUZ_GOT_MAIL 14 /* mail sound */
418//
380 419
381 #defineSHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START) 420 #defineSHARP_LED_IOCTL_START (SHARP_DEV_IOCTL_COMMAND_START)
@@ -386,5 +425,5 @@ typedef struct sharp_led_status {
386 int status; /* set new led status if you call SHARP_LED_SETSTATUS */ 425 int status; /* set new led status if you call SHARP_LED_SETSTATUS */
387} sharp_led_status; 426} sharp_led_status;
388 427
389#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */ 428#define SHARP_LED_MAIL_EXISTS 9 /* mail status (exists or not) */
390 429