summaryrefslogtreecommitdiff
path: root/libopie2
Unidiff
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice.cpp57
-rw-r--r--libopie2/opiecore/device/odevice.h49
-rw-r--r--libopie2/opiecore/device/odevice_ipaq.cpp3
-rw-r--r--libopie2/opiecore/device/odevice_simpad.cpp3
-rw-r--r--libopie2/opiecore/okeyfilter.h7
5 files changed, 63 insertions, 56 deletions
diff --git a/libopie2/opiecore/device/odevice.cpp b/libopie2/opiecore/device/odevice.cpp
index 0068d88..cd3a84c 100644
--- a/libopie2/opiecore/device/odevice.cpp
+++ b/libopie2/opiecore/device/odevice.cpp
@@ -1,95 +1,96 @@
1/* 1/*
2                 This file is part of the Opie Project 2 This file is part of the Opie Project
3              Copyright (C) The Opie Team <opie-devel@handhelds.org> 3 Copyright (C) The Opie Team <opie-devel@handhelds.org>
4 =. 4 =.
5 .=l. 5 .=l.
6           .>+-= 6 .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7_;:, .> :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_, > . <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i, .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11- . .-<_> .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12 ._= =} : or (at your option) any later version.
13    .%`+i>       _;_. 13 .%`+i> _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14 .i_,=:_. -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16 : .. .:, . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++=   -.     .`     .: details. 20++= -. .` .: details.
21 :     =  ...= . :.=- 21: = ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22-. .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#include "odevice_ipaq.h" 30#include "odevice_ipaq.h"
31#include "odevice_jornada.h" 31#include "odevice_jornada.h"
32#include "odevice_ramses.h" 32#include "odevice_ramses.h"
33#include "odevice_simpad.h" 33#include "odevice_simpad.h"
34#include "odevice_yopy.h" 34#include "odevice_yopy.h"
35#include "odevice_zaurus.h" 35#include "odevice_zaurus.h"
36 36
37/* QT */ 37/* QT */
38#include <qapplication.h> 38#include <qapplication.h>
39#include <qfile.h> 39#include <qfile.h>
40#include <qtextstream.h> 40#include <qtextstream.h>
41#include <qwindowsystem_qws.h> 41#include <qwindowsystem_qws.h>
42 42
43/* OPIE */ 43/* OPIE */
44#include <qpe/config.h> 44#include <qpe/config.h>
45#include <qpe/resource.h> 45#include <qpe/resource.h>
46#include <qpe/sound.h> 46#include <qpe/sound.h>
47#include <qpe/qcopenvelope_qws.h> 47#include <qpe/qcopenvelope_qws.h>
48#include <opie2/okeyfilter.h>
48 49
49/* STD */ 50/* STD */
50#include <fcntl.h> 51#include <fcntl.h>
51#include <math.h> 52#include <math.h>
52#include <stdlib.h> 53#include <stdlib.h>
53#include <signal.h> 54#include <signal.h>
54#include <sys/ioctl.h> 55#include <sys/ioctl.h>
55#include <sys/time.h> 56#include <sys/time.h>
56#include <unistd.h> 57#include <unistd.h>
57#ifndef QT_NO_SOUND 58#ifndef QT_NO_SOUND
58#include <linux/soundcard.h> 59#include <linux/soundcard.h>
59#endif 60#endif
60 61
61namespace Opie { 62namespace Opie {
62namespace Core { 63namespace Core {
63 64
64static const char* PATH_PROC_CPUINFO = "/proc/cpuinfo"; 65static const char* PATH_PROC_CPUINFO = "/proc/cpuinfo";
65 66
66 67
67/* STATIC and common implementation */ 68/* STATIC and common implementation */
68/* EXPORT */ ODistribution distributions[] = { 69/* EXPORT */ ODistribution distributions[] = {
69 { System_Familiar, "FamiliarLinux", "/etc/familiar-version" }, 70 { System_Familiar, "FamiliarLinux", "/etc/familiar-version" },
70 { System_OpenZaurus, "OpenZaurus", "/etc/oz_version" }, 71 { System_OpenZaurus, "OpenZaurus", "/etc/oz_version" },
71 { System_OpenEmbedded, "OpenEmbedded", "/etc/oe-version" }, 72 { System_OpenEmbedded, "OpenEmbedded", "/etc/oe-version" },
72 { System_Unknown, "Linux", "/etc/issue" }, 73 { System_Unknown, "Linux", "/etc/issue" },
73}; 74};
74 75
75 76
76/* EXPORT */ bool isQWS(){ 77/* EXPORT */ bool isQWS(){
77 return qApp ? ( qApp->type() == QApplication::GuiServer ) : false; 78 return qApp ? ( qApp->type() == QApplication::GuiServer ) : false;
78} 79}
79 80
80/* EXPORT */ QCString makeChannel ( const char *str ){ 81/* EXPORT */ QCString makeChannel ( const char *str ){
81 if ( str && !::strchr ( str, '/' )) 82 if ( str && !::strchr ( str, '/' ))
82 return QCString ( "QPE/Application/" ) + str; 83 return QCString ( "QPE/Application/" ) + str;
83 else 84 else
84 return str; 85 return str;
85} 86}
86 87
87 88
88 89
89/* Now the default implementation of ODevice */ 90/* Now the default implementation of ODevice */
90 91
91struct default_button default_buttons [] = { 92struct default_button default_buttons [] = {
92 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"), 93 { Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
93 "devicebuttons/z_calendar", 94 "devicebuttons/z_calendar",
94 "datebook", "nextView()", 95 "datebook", "nextView()",
95 "today", "raise()" }, 96 "today", "raise()" },
@@ -631,87 +632,97 @@ void ODevice::reloadButtonMapping()
631 initButtons(); 632 initButtons();
632 633
633 Config cfg ( "ButtonSettings" ); 634 Config cfg ( "ButtonSettings" );
634 635
635 for ( uint i = 0; i < d->m_buttons->count(); i++ ) { 636 for ( uint i = 0; i < d->m_buttons->count(); i++ ) {
636 ODeviceButton &b = ( *d->m_buttons ) [i]; 637 ODeviceButton &b = ( *d->m_buttons ) [i];
637 QString group = "Button" + QString::number ( i ); 638 QString group = "Button" + QString::number ( i );
638 639
639 QCString pch, hch; 640 QCString pch, hch;
640 QCString pm, hm; 641 QCString pm, hm;
641 QByteArray pdata, hdata; 642 QByteArray pdata, hdata;
642 643
643 if ( cfg. hasGroup ( group )) { 644 if ( cfg. hasGroup ( group )) {
644 cfg. setGroup ( group ); 645 cfg. setGroup ( group );
645 pch = cfg. readEntry ( "PressedActionChannel" ). latin1(); 646 pch = cfg. readEntry ( "PressedActionChannel" ). latin1();
646 pm = cfg. readEntry ( "PressedActionMessage" ). latin1(); 647 pm = cfg. readEntry ( "PressedActionMessage" ). latin1();
647 // pdata = decodeBase64 ( buttonFile. readEntry ( "PressedActionArgs" )); 648 // pdata = decodeBase64 ( buttonFile. readEntry ( "PressedActionArgs" ));
648 649
649 hch = cfg. readEntry ( "HeldActionChannel" ). latin1(); 650 hch = cfg. readEntry ( "HeldActionChannel" ). latin1();
650 hm = cfg. readEntry ( "HeldActionMessage" ). latin1(); 651 hm = cfg. readEntry ( "HeldActionMessage" ). latin1();
651 // hdata = decodeBase64 ( buttonFile. readEntry ( "HeldActionArgs" )); 652 // hdata = decodeBase64 ( buttonFile. readEntry ( "HeldActionArgs" ));
652 } 653 }
653 654
654 b. setPressedAction ( OQCopMessage ( pch, pm, pdata )); 655 b. setPressedAction ( OQCopMessage ( pch, pm, pdata ));
655 656
656 b. setHeldAction ( OQCopMessage ( hch, hm, hdata )); 657 b. setHeldAction ( OQCopMessage ( hch, hm, hdata ));
657 } 658 }
658} 659}
659 660
660void ODevice::remapPressedAction ( int button, const OQCopMessage &action ) 661void ODevice::remapPressedAction ( int button, const OQCopMessage &action )
661{ 662{
662 initButtons(); 663 initButtons();
663 664
664 QString mb_chan; 665 QString mb_chan;
665 666
666 if ( button >= (int) d->m_buttons->count()) 667 if ( button >= (int) d->m_buttons->count())
667 return; 668 return;
668 669
669 ODeviceButton &b = ( *d->m_buttons ) [button]; 670 ODeviceButton &b = ( *d->m_buttons ) [button];
670 b. setPressedAction ( action ); 671 b. setPressedAction ( action );
671 672
672 mb_chan=b. pressedAction(). channel(); 673 mb_chan=b. pressedAction(). channel();
673 674
674 Config buttonFile ( "ButtonSettings" ); 675 Config buttonFile ( "ButtonSettings" );
675 buttonFile. setGroup ( "Button" + QString::number ( button )); 676 buttonFile. setGroup ( "Button" + QString::number ( button ));
676 buttonFile. writeEntry ( "PressedActionChannel", (const char*) mb_chan); 677 buttonFile. writeEntry ( "PressedActionChannel", (const char*) mb_chan);
677 buttonFile. writeEntry ( "PressedActionMessage", (const char*) b. pressedAction(). message()); 678 buttonFile. writeEntry ( "PressedActionMessage", (const char*) b. pressedAction(). message());
678 679
679 //buttonFile. writeEntry ( "PressedActionArgs", encodeBase64 ( b. pressedAction(). data())); 680// buttonFile. writeEntry ( "PressedActionArgs", encodeBase64 ( b. pressedAction(). data()));
680 681
681 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); 682 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" );
682} 683}
683 684
684void ODevice::remapHeldAction ( int button, const OQCopMessage &action ) 685void ODevice::remapHeldAction ( int button, const OQCopMessage &action )
685{ 686{
686 initButtons(); 687 initButtons();
687 688
688 if ( button >= (int) d->m_buttons->count()) 689 if ( button >= (int) d->m_buttons->count())
689 return; 690 return;
690 691
691 ODeviceButton &b = ( *d->m_buttons ) [button]; 692 ODeviceButton &b = ( *d->m_buttons ) [button];
692 b. setHeldAction ( action ); 693 b. setHeldAction ( action );
693 694
694 Config buttonFile ( "ButtonSettings" ); 695 Config buttonFile ( "ButtonSettings" );
695 buttonFile. setGroup ( "Button" + QString::number ( button )); 696 buttonFile. setGroup ( "Button" + QString::number ( button ));
696 buttonFile. writeEntry ( "HeldActionChannel", (const char *) b. heldAction(). channel()); 697 buttonFile. writeEntry ( "HeldActionChannel", (const char *) b. heldAction(). channel());
697 buttonFile. writeEntry ( "HeldActionMessage", (const char *) b. heldAction(). message()); 698 buttonFile. writeEntry ( "HeldActionMessage", (const char *) b. heldAction(). message());
698 699
699 //buttonFile. writeEntry ( "HeldActionArgs", decodeBase64 ( b. heldAction(). data())); 700// buttonFile. writeEntry ( "HeldActionArgs", decodeBase64 ( b. heldAction(). data()));
700 701
701 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" ); 702 QCopEnvelope ( "QPE/System", "deviceButtonMappingChanged()" );
702} 703}
703void ODevice::virtual_hook(int, void* ){ 704void ODevice::virtual_hook(int, void* ){
704 705
705} 706}
706 707
707void ODevice::sendSuspendmsg() 708void ODevice::sendSuspendmsg()
708{ 709{
709 if ( isQWS() ) 710 if ( isQWS() )
710 return; 711 return;
711 712
712 QCopEnvelope ( "QPE/System", "aboutToSuspend()" ); 713 QCopEnvelope ( "QPE/System", "aboutToSuspend()" );
713} 714}
714 715
716void ODevice::addPreHandler(QWSServer::KeyboardFilter*aFilter)
717{
718 Opie::Core::OKeyFilter::inst()->addPreHandler(aFilter);
719}
720
721void ODevice::remPreHandler(QWSServer::KeyboardFilter*aFilter)
722{
723 Opie::Core::OKeyFilter::inst()->remPreHandler(aFilter);
724}
725
715 726
716} 727}
717} 728}
diff --git a/libopie2/opiecore/device/odevice.h b/libopie2/opiecore/device/odevice.h
index 0465d7e..762d3f1 100644
--- a/libopie2/opiecore/device/odevice.h
+++ b/libopie2/opiecore/device/odevice.h
@@ -1,89 +1,90 @@
1/* 1/*
2                 This file is part of the Opie Project 2 This file is part of the Opie Project
3              Copyright (C) The Opie Team <opie-devel@handhelds.org> 3 Copyright (C) The Opie Team <opie-devel@handhelds.org>
4 =. 4 =.
5 .=l. 5 .=l.
6           .>+-= 6 .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7_;:, .> :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_, > . <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i, .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11- . .-<_> .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12 ._= =} : or (at your option) any later version.
13    .%`+i>       _;_. 13 .%`+i> _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14 .i_,=:_. -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16 : .. .:, . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.= = ; Library General Public License for more
20++=   -.     .`     .: details. 20++= -. .` .: details.
21 :     =  ...= . :.=- 21: = ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22-. .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef ODEVICE_H_ 30#ifndef ODEVICE_H_
31#define ODEVICE_H_ 31#define ODEVICE_H_
32 32
33/* OPIE */ 33/* OPIE */
34#include <opie2/odevicebutton.h> 34#include <opie2/odevicebutton.h>
35#include <qpe/qpeapplication.h> /* for Transformation enum.. */ 35#include <qpe/qpeapplication.h> /* for Transformation enum.. */
36 36
37/* QT */ 37/* QT */
38#include <qnamespace.h> 38#include <qnamespace.h>
39#include <qobject.h> 39#include <qobject.h>
40#include <qstring.h> 40#include <qstring.h>
41#include <qstrlist.h> 41#include <qstrlist.h>
42#include <qwindowsystem_qws.h>
42 43
43namespace Opie{ 44namespace Opie{
44namespace Core{ 45namespace Core{
45 46
46 class ODeviceData; 47 class ODeviceData;
47/** 48/**
48 * The available devices 49 * The available devices
49 */ 50 */
50enum OModel { 51enum OModel {
51 Model_Unknown, // = 0 52 Model_Unknown, // = 0
52 53
53 Model_Series_Mask = 0xff000000, 54 Model_Series_Mask = 0xff000000,
54 55
55 Model_iPAQ = ( 1 << 24 ), 56 Model_iPAQ = ( 1 << 24 ),
56 57
57 Model_iPAQ_All = ( Model_iPAQ | 0xffffff ), 58 Model_iPAQ_All = ( Model_iPAQ | 0xffffff ),
58 Model_iPAQ_H31xx = ( Model_iPAQ | 0x000001 ), 59 Model_iPAQ_H31xx = ( Model_iPAQ | 0x000001 ),
59 Model_iPAQ_H36xx = ( Model_iPAQ | 0x000002 ), 60 Model_iPAQ_H36xx = ( Model_iPAQ | 0x000002 ),
60 Model_iPAQ_H37xx = ( Model_iPAQ | 0x000004 ), 61 Model_iPAQ_H37xx = ( Model_iPAQ | 0x000004 ),
61 Model_iPAQ_H38xx = ( Model_iPAQ | 0x000008 ), 62 Model_iPAQ_H38xx = ( Model_iPAQ | 0x000008 ),
62 Model_iPAQ_H39xx = ( Model_iPAQ | 0x000010 ), 63 Model_iPAQ_H39xx = ( Model_iPAQ | 0x000010 ),
63 Model_iPAQ_H5xxx = ( Model_iPAQ | 0x000020 ), 64 Model_iPAQ_H5xxx = ( Model_iPAQ | 0x000020 ),
64 Model_iPAQ_H22xx = ( Model_iPAQ | 0x000040 ), 65 Model_iPAQ_H22xx = ( Model_iPAQ | 0x000040 ),
65 66
66 Model_Jornada = ( 6 << 24 ), 67 Model_Jornada = ( 6 << 24 ),
67 Model_Jornada_56x = ( Model_Jornada | 0x000001 ), 68 Model_Jornada_56x = ( Model_Jornada | 0x000001 ),
68 69
69 Model_Zaurus = ( 2 << 24 ), 70 Model_Zaurus = ( 2 << 24 ),
70 71
71 Model_Zaurus_SL5000 = ( Model_Zaurus | 0x000001 ), 72 Model_Zaurus_SL5000 = ( Model_Zaurus | 0x000001 ),
72 Model_Zaurus_SL5500 = ( Model_Zaurus | 0x000002 ), 73 Model_Zaurus_SL5500 = ( Model_Zaurus | 0x000002 ),
73 Model_Zaurus_SLA300 = ( Model_Zaurus | 0x000003 ), 74 Model_Zaurus_SLA300 = ( Model_Zaurus | 0x000003 ),
74 Model_Zaurus_SLB600 = ( Model_Zaurus | 0x000004 ), 75 Model_Zaurus_SLB600 = ( Model_Zaurus | 0x000004 ),
75 Model_Zaurus_SLC7x0 = ( Model_Zaurus | 0x000005 ), 76 Model_Zaurus_SLC7x0 = ( Model_Zaurus | 0x000005 ),
76 77
77 Model_SIMpad = ( 3 << 24 ), 78 Model_SIMpad = ( 3 << 24 ),
78 79
79 Model_SIMpad_All = ( Model_SIMpad | 0xffffff ), 80 Model_SIMpad_All = ( Model_SIMpad | 0xffffff ),
80 Model_SIMpad_CL4 = ( Model_SIMpad | 0x000001 ), 81 Model_SIMpad_CL4 = ( Model_SIMpad | 0x000001 ),
81 Model_SIMpad_SL4 = ( Model_SIMpad | 0x000002 ), 82 Model_SIMpad_SL4 = ( Model_SIMpad | 0x000002 ),
82 Model_SIMpad_SLC = ( Model_SIMpad | 0x000004 ), 83 Model_SIMpad_SLC = ( Model_SIMpad | 0x000004 ),
83 Model_SIMpad_TSinus = ( Model_SIMpad | 0x000008 ), 84 Model_SIMpad_TSinus = ( Model_SIMpad | 0x000008 ),
84 85
85 Model_Ramses = ( 4 << 24 ), 86 Model_Ramses = ( 4 << 24 ),
86 87
87 Model_Ramses_All = ( Model_Ramses | 0xffffff ), 88 Model_Ramses_All = ( Model_Ramses | 0xffffff ),
88 Model_Ramses_MNCI = ( Model_Ramses | 0x000001 ), 89 Model_Ramses_MNCI = ( Model_Ramses | 0x000001 ),
89 90
@@ -208,151 +209,153 @@ class ODevice : public QObject
208 209
209private: 210private:
210 /* disable copy */ 211 /* disable copy */
211 ODevice ( const ODevice & ); 212 ODevice ( const ODevice & );
212 213
213protected: 214protected:
214 ODevice(); 215 ODevice();
215 virtual void init(const QString&); 216 virtual void init(const QString&);
216 virtual void initButtons(); 217 virtual void initButtons();
217 static void sendSuspendmsg(); 218 static void sendSuspendmsg();
218 219
219 ODeviceData *d; 220 ODeviceData *d;
220 221
221public: 222public:
222 // sandman do we want to allow destructions? -zecke? 223 // sandman do we want to allow destructions? -zecke?
223 virtual ~ODevice(); 224 virtual ~ODevice();
224 225
225 static ODevice *inst(); 226 static ODevice *inst();
226 227
227 // information 228 // information
228 229
229 QString modelString() const; 230 QString modelString() const;
230 OModel model() const; 231 OModel model() const;
231 inline OModel series() const { return (OModel) ( model() & Model_Series_Mask ); } 232 inline OModel series() const { return (OModel) ( model() & Model_Series_Mask ); }
232 233
233 QString vendorString() const; 234 QString vendorString() const;
234 OVendor vendor() const; 235 OVendor vendor() const;
235 236
236 QString systemString() const; 237 QString systemString() const;
237 OSystem system() const; 238 OSystem system() const;
238 239
239 QString systemVersionString() const; 240 QString systemVersionString() const;
240 241
241 virtual Transformation rotation() const; 242 virtual Transformation rotation() const;
242 virtual ODirection direction() const; 243 virtual ODirection direction() const;
243 244
244 // system 245 // system
245 246
246 virtual bool setSoftSuspend ( bool on ); 247 virtual bool setSoftSuspend ( bool on );
247 virtual bool suspend(); 248 virtual bool suspend();
248 249
249 virtual bool setDisplayStatus ( bool on ); 250 virtual bool setDisplayStatus ( bool on );
250 virtual bool setDisplayBrightness ( int brightness ); 251 virtual bool setDisplayBrightness ( int brightness );
251 virtual int displayBrightnessResolution() const; 252 virtual int displayBrightnessResolution() const;
252 virtual bool setDisplayContrast ( int contrast ); 253 virtual bool setDisplayContrast ( int contrast );
253 virtual int displayContrastResolution() const; 254 virtual int displayContrastResolution() const;
254 255
255 // don't add new virtual methods, use this: 256 // don't add new virtual methods, use this:
256 ///*virtual */ void boo(int i ) { return virtual_hook(1,&i); }; 257 // /*virtual */ void boo(int i ) { return virtual_hook(1,&i); };
257 // and in your subclass do do overwrite 258 // and in your subclass do do overwrite
258 //protected virtual int virtual_hook(int, void *) 259 // protected virtual int virtual_hook(int, void *)
259 // which is defined below 260 // which is defined below
260 261
261 // input / output 262 // input / output
262 virtual void playAlarmSound(); 263 virtual void playAlarmSound();
263 virtual void playKeySound(); 264 virtual void playKeySound();
264 virtual void playTouchSound(); 265 virtual void playTouchSound();
265 266
266 virtual QValueList <OLed> ledList() const; 267 virtual QValueList <OLed> ledList() const;
267 virtual QValueList <OLedState> ledStateList ( OLed led ) const; 268 virtual QValueList <OLedState> ledStateList ( OLed led ) const;
268 virtual OLedState ledState ( OLed led ) const; 269 virtual OLedState ledState ( OLed led ) const;
269 virtual bool setLedState ( OLed led, OLedState st ); 270 virtual bool setLedState ( OLed led, OLedState st );
270 271
271 virtual bool hasLightSensor() const; 272 virtual bool hasLightSensor() const;
272 virtual int readLightSensor(); 273 virtual int readLightSensor();
273 virtual int lightSensorResolution() const; 274 virtual int lightSensorResolution() const;
274 275
275 virtual bool hasHingeSensor() const; 276 virtual bool hasHingeSensor() const;
276 virtual OHingeStatus readHingeSensor(); 277 virtual OHingeStatus readHingeSensor();
277 278
278 const QStrList &allowedCpuFrequencies() const; 279 const QStrList &allowedCpuFrequencies() const;
279 bool setCurrentCpuFrequency(uint index); 280 bool setCurrentCpuFrequency(uint index);
280 281
281 /** 282 /**
282 * Returns the available buttons on this device. The number and location 283 * Returns the available buttons on this device. The number and location
283 * of buttons will vary depending on the device. Button numbers will be assigned 284 * of buttons will vary depending on the device. Button numbers will be assigned
284 * by the device manufacturer and will be from most preferred button to least preffered 285 * by the device manufacturer and will be from most preferred button to least preffered
285 * button. Note that this list only contains "user mappable" buttons. 286 * button. Note that this list only contains "user mappable" buttons.
286 * 287 *
287 * @todo Make method const and take care of calling initButtons or make that const too 288 * @todo Make method const and take care of calling initButtons or make that const too
288 * 289 *
289 */ 290 */
290 const QValueList<ODeviceButton> &buttons(); 291 const QValueList<ODeviceButton> &buttons();
291 292
292 /** 293 /**
293 * Returns the DeviceButton for the \a keyCode. If \a keyCode is not found, it 294 * Returns the DeviceButton for the \a keyCode. If \a keyCode is not found, it
294 * returns 0L 295 * returns 0L
295 */ 296 */
296 const ODeviceButton *buttonForKeycode ( ushort keyCode ); 297 const ODeviceButton *buttonForKeycode ( ushort keyCode );
297 298
298 /** 299 /**
299 * Reassigns the pressed action for \a button. To return to the factory 300 * Reassigns the pressed action for \a button. To return to the factory
300 * default pass an empty string as \a qcopMessage. 301 * default pass an empty string as \a qcopMessage.
301 */ 302 */
302 void remapPressedAction ( int button, const OQCopMessage &qcopMessage ); 303 void remapPressedAction ( int button, const OQCopMessage &qcopMessage );
303 304
304 /** 305 /**
305 * Reassigns the held action for \a button. To return to the factory 306 * Reassigns the held action for \a button. To return to the factory
306 * default pass an empty string as \a qcopMessage. 307 * default pass an empty string as \a qcopMessage.
307 */ 308 */
308 void remapHeldAction ( int button, const OQCopMessage &qcopMessage ); 309 void remapHeldAction ( int button, const OQCopMessage &qcopMessage );
309 310
310 /** 311 /**
311 * How long (in ms) you have to press a button for a "hold" action 312 * How long (in ms) you have to press a button for a "hold" action
312 */ 313 */
313 uint buttonHoldTime() const; 314 uint buttonHoldTime() const;
314 315
315signals: 316signals:
316 void buttonMappingChanged(); 317 void buttonMappingChanged();
317 318
318private slots: 319private slots:
319 void systemMessage ( const QCString &, const QByteArray & ); 320 void systemMessage ( const QCString &, const QByteArray & );
320 321
321protected: 322protected:
323 void addPreHandler(QWSServer::KeyboardFilter*aFilter);
324 void remPreHandler(QWSServer::KeyboardFilter*aFilter);
322 void reloadButtonMapping(); 325 void reloadButtonMapping();
323 /* ugly virtual hook */ 326 /* ugly virtual hook */
324 virtual void virtual_hook( int id, void* data ); 327 virtual void virtual_hook( int id, void* data );
325}; 328};
326 329
327class ODeviceData { 330class ODeviceData {
328 331
329 public: 332 public:
330 QString m_vendorstr; 333 QString m_vendorstr;
331 OVendor m_vendor; 334 OVendor m_vendor;
332 335
333 QString m_modelstr; 336 QString m_modelstr;
334 OModel m_model; 337 OModel m_model;
335 338
336 QString m_systemstr; 339 QString m_systemstr;
337 OSystem m_system; 340 OSystem m_system;
338 341
339 QString m_sysverstr; 342 QString m_sysverstr;
340 343
341 Transformation m_rotation; 344 Transformation m_rotation;
342 ODirection m_direction; 345 ODirection m_direction;
343 346
344 QValueList <ODeviceButton> *m_buttons; 347 QValueList <ODeviceButton> *m_buttons;
345 uint m_holdtime; 348 uint m_holdtime;
346 QStrList *m_cpu_frequencies; 349 QStrList *m_cpu_frequencies;
347}; 350};
348 351
349extern bool isQWS(); 352extern bool isQWS();
350extern QCString makeChannel ( const char *str ); 353extern QCString makeChannel ( const char *str );
351} 354}
352} 355}
353 356
354 357
355 358
356 359
357#endif 360#endif
358 361
diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp
index 791e409..21fed99 100644
--- a/libopie2/opiecore/device/odevice_ipaq.cpp
+++ b/libopie2/opiecore/device/odevice_ipaq.cpp
@@ -124,98 +124,97 @@ void iPAQ::init(const QString& model)
124 124
125 if ( d->m_modelstr == "H3100" ) 125 if ( d->m_modelstr == "H3100" )
126 d->m_model = Model_iPAQ_H31xx; 126 d->m_model = Model_iPAQ_H31xx;
127 else if ( d->m_modelstr == "H3600" ) 127 else if ( d->m_modelstr == "H3600" )
128 d->m_model = Model_iPAQ_H36xx; 128 d->m_model = Model_iPAQ_H36xx;
129 else if ( d->m_modelstr == "H3700" ) 129 else if ( d->m_modelstr == "H3700" )
130 d->m_model = Model_iPAQ_H37xx; 130 d->m_model = Model_iPAQ_H37xx;
131 else if ( d->m_modelstr == "H3800" ) 131 else if ( d->m_modelstr == "H3800" )
132 d->m_model = Model_iPAQ_H38xx; 132 d->m_model = Model_iPAQ_H38xx;
133 else if ( d->m_modelstr == "H3900" ) 133 else if ( d->m_modelstr == "H3900" )
134 d->m_model = Model_iPAQ_H39xx; 134 d->m_model = Model_iPAQ_H39xx;
135 else if ( d->m_modelstr == "H5400" ) 135 else if ( d->m_modelstr == "H5400" )
136 d->m_model = Model_iPAQ_H5xxx; 136 d->m_model = Model_iPAQ_H5xxx;
137 else if ( d->m_modelstr == "H2200" ) 137 else if ( d->m_modelstr == "H2200" )
138 d->m_model = Model_iPAQ_H22xx; 138 d->m_model = Model_iPAQ_H22xx;
139 else 139 else
140 d->m_model = Model_Unknown; 140 d->m_model = Model_Unknown;
141 141
142 switch ( d->m_model ) { 142 switch ( d->m_model ) {
143 case Model_iPAQ_H31xx: 143 case Model_iPAQ_H31xx:
144 case Model_iPAQ_H38xx: 144 case Model_iPAQ_H38xx:
145 d->m_rotation = Rot90; 145 d->m_rotation = Rot90;
146 break; 146 break;
147 case Model_iPAQ_H5xxx: 147 case Model_iPAQ_H5xxx:
148 case Model_iPAQ_H22xx: 148 case Model_iPAQ_H22xx:
149 d->m_rotation = Rot0; 149 d->m_rotation = Rot0;
150 break; 150 break;
151 case Model_iPAQ_H36xx: 151 case Model_iPAQ_H36xx:
152 case Model_iPAQ_H37xx: 152 case Model_iPAQ_H37xx:
153 case Model_iPAQ_H39xx: 153 case Model_iPAQ_H39xx:
154 default: 154 default:
155 d->m_rotation = Rot270; 155 d->m_rotation = Rot270;
156 break; 156 break;
157 157
158 } 158 }
159 159
160 m_leds [0] = m_leds [1] = Led_Off; 160 m_leds [0] = m_leds [1] = Led_Off;
161 161
162 m_power_timer = 0; 162 m_power_timer = 0;
163 163
164} 164}
165 165
166void iPAQ::initButtons() 166void iPAQ::initButtons()
167{ 167{
168 if ( d->m_buttons ) 168 if ( d->m_buttons )
169 return; 169 return;
170 170
171 if ( isQWS( ) ) { 171 if ( isQWS( ) ) {
172 Opie::Core::OKeyFilter::inst()->addPreHandler(this); 172 addPreHandler(this);
173 //QWSServer::setKeyboardFilter ( this );
174 } 173 }
175 174
176 d->m_buttons = new QValueList <ODeviceButton>; 175 d->m_buttons = new QValueList <ODeviceButton>;
177 176
178 for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { 177 for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) {
179 i_button *ib = ipaq_buttons + i; 178 i_button *ib = ipaq_buttons + i;
180 ODeviceButton b; 179 ODeviceButton b;
181 180
182 if (( ib->model & d->m_model ) == d->m_model ) { 181 if (( ib->model & d->m_model ) == d->m_model ) {
183 b. setKeycode ( ib->code ); 182 b. setKeycode ( ib->code );
184 b. setUserText ( QObject::tr ( "Button", ib->utext )); 183 b. setUserText ( QObject::tr ( "Button", ib->utext ));
185 b. setPixmap ( Resource::loadPixmap ( ib->pix )); 184 b. setPixmap ( Resource::loadPixmap ( ib->pix ));
186 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib->fpressedservice ), ib->fpressedaction )); 185 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( ib->fpressedservice ), ib->fpressedaction ));
187 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib->fheldservice ), ib->fheldaction )); 186 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( ib->fheldservice ), ib->fheldaction ));
188 187
189 d->m_buttons->append ( b ); 188 d->m_buttons->append ( b );
190 } 189 }
191 } 190 }
192 reloadButtonMapping(); 191 reloadButtonMapping();
193 192
194 QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); 193 QCopChannel *sysch = new QCopChannel ( "QPE/System", this );
195 connect ( sysch, SIGNAL( received(const QCString&,const QByteArray&)), this, SLOT( systemMessage(const QCString&,const QByteArray&))); 194 connect ( sysch, SIGNAL( received(const QCString&,const QByteArray&)), this, SLOT( systemMessage(const QCString&,const QByteArray&)));
196} 195}
197 196
198QValueList <OLed> iPAQ::ledList() const 197QValueList <OLed> iPAQ::ledList() const
199{ 198{
200 QValueList <OLed> vl; 199 QValueList <OLed> vl;
201 vl << Led_Power; 200 vl << Led_Power;
202 201
203 if ( d->m_model == Model_iPAQ_H38xx ) 202 if ( d->m_model == Model_iPAQ_H38xx )
204 vl << Led_BlueTooth; 203 vl << Led_BlueTooth;
205 return vl; 204 return vl;
206} 205}
207 206
208QValueList <OLedState> iPAQ::ledStateList ( OLed l ) const 207QValueList <OLedState> iPAQ::ledStateList ( OLed l ) const
209{ 208{
210 QValueList <OLedState> vl; 209 QValueList <OLedState> vl;
211 210
212 if ( l == Led_Power ) 211 if ( l == Led_Power )
213 vl << Led_Off << Led_On << Led_BlinkSlow << Led_BlinkFast; 212 vl << Led_Off << Led_On << Led_BlinkSlow << Led_BlinkFast;
214 else if ( l == Led_BlueTooth && d->m_model == Model_iPAQ_H38xx ) 213 else if ( l == Led_BlueTooth && d->m_model == Model_iPAQ_H38xx )
215 vl << Led_Off; // << Led_On << ??? 214 vl << Led_Off; // << Led_On << ???
216 215
217 return vl; 216 return vl;
218} 217}
219 218
220OLedState iPAQ::ledState ( OLed l ) const 219OLedState iPAQ::ledState ( OLed l ) const
221{ 220{
diff --git a/libopie2/opiecore/device/odevice_simpad.cpp b/libopie2/opiecore/device/odevice_simpad.cpp
index 6c3253c..bf46e43 100644
--- a/libopie2/opiecore/device/odevice_simpad.cpp
+++ b/libopie2/opiecore/device/odevice_simpad.cpp
@@ -102,98 +102,97 @@ struct s_button simpad_buttons [] = {
102 /* 102 /*
103 { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, 103 { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus,
104 Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"), 104 Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"),
105 "devicebuttons/simpad_lower_upper", 105 "devicebuttons/simpad_lower_upper",
106 "QPE/Launcher", "home()", 106 "QPE/Launcher", "home()",
107 "buttonsettings", "raise()" }, 107 "buttonsettings", "raise()" },
108 { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus, 108 { Model_SIMpad_CL4 | Model_SIMpad_SL4 | Model_SIMpad_SLC | Model_SIMpad_TSinus,
109 Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"), 109 Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Lower+Upper"),
110 "devicebuttons/simpad_upper_lower", 110 "devicebuttons/simpad_upper_lower",
111 "QPE/Launcher", "home()", 111 "QPE/Launcher", "home()",
112 "buttonsettings", "raise()" }, 112 "buttonsettings", "raise()" },
113 */ 113 */
114}; 114};
115 115
116void SIMpad::init(const QString&) 116void SIMpad::init(const QString&)
117{ 117{
118 d->m_vendorstr = "SIEMENS"; 118 d->m_vendorstr = "SIEMENS";
119 d->m_vendor = Vendor_SIEMENS; 119 d->m_vendor = Vendor_SIEMENS;
120 120
121 121
122 //TODO Implement model checking 122 //TODO Implement model checking
123 //FIXME For now we assume an SL4 123 //FIXME For now we assume an SL4
124 124
125 d->m_modelstr = "SL4"; 125 d->m_modelstr = "SL4";
126 d->m_model = Model_SIMpad_SL4; 126 d->m_model = Model_SIMpad_SL4;
127 127
128 switch ( d->m_model ) { 128 switch ( d->m_model ) {
129 default: 129 default:
130 d->m_rotation = Rot0; 130 d->m_rotation = Rot0;
131 d->m_direction = CCW; 131 d->m_direction = CCW;
132 d->m_holdtime = 1000; // 1000ms 132 d->m_holdtime = 1000; // 1000ms
133 133
134 break; 134 break;
135 } 135 }
136 136
137 //Distribution detecting code is now in base class 137 //Distribution detecting code is now in base class
138 m_leds [0] = m_leds [1] = Led_Off; 138 m_leds [0] = m_leds [1] = Led_Off;
139 139
140 m_power_timer = 0; 140 m_power_timer = 0;
141 141
142} 142}
143 143
144void SIMpad::initButtons() 144void SIMpad::initButtons()
145{ 145{
146 if ( d->m_buttons ) 146 if ( d->m_buttons )
147 return; 147 return;
148 148
149 if ( isQWS( ) ) { 149 if ( isQWS( ) ) {
150 Opie::Core::OKeyFilter::inst()->addPreHandler(this); 150 addPreHandler(this);
151// QWSServer::setKeyboardFilter ( this );
152 } 151 }
153 152
154 153
155 d->m_buttons = new QValueList <ODeviceButton>; 154 d->m_buttons = new QValueList <ODeviceButton>;
156 155
157 for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) { 156 for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) {
158 s_button *sb = simpad_buttons + i; 157 s_button *sb = simpad_buttons + i;
159 ODeviceButton b; 158 ODeviceButton b;
160 159
161 if (( sb->model & d->m_model ) == d->m_model ) { 160 if (( sb->model & d->m_model ) == d->m_model ) {
162 b. setKeycode ( sb->code ); 161 b. setKeycode ( sb->code );
163 b. setUserText ( QObject::tr ( "Button", sb->utext )); 162 b. setUserText ( QObject::tr ( "Button", sb->utext ));
164 b. setPixmap ( Resource::loadPixmap ( sb->pix )); 163 b. setPixmap ( Resource::loadPixmap ( sb->pix ));
165 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( sb->fpressedservice ), sb->fpressedaction )); 164 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( sb->fpressedservice ), sb->fpressedaction ));
166 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( sb->fheldservice ), sb->fheldaction )); 165 b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( sb->fheldservice ), sb->fheldaction ));
167 166
168 d->m_buttons->append ( b ); 167 d->m_buttons->append ( b );
169 } 168 }
170 } 169 }
171 reloadButtonMapping(); 170 reloadButtonMapping();
172 171
173 QCopChannel *sysch = new QCopChannel ( "QPE/System", this ); 172 QCopChannel *sysch = new QCopChannel ( "QPE/System", this );
174 connect ( sysch, SIGNAL( received(const QCString&,const QByteArray&)), this, SLOT( systemMessage(const QCString&,const QByteArray&))); 173 connect ( sysch, SIGNAL( received(const QCString&,const QByteArray&)), this, SLOT( systemMessage(const QCString&,const QByteArray&)));
175} 174}
176 175
177// SIMpad boardcontrol register CS3 176// SIMpad boardcontrol register CS3
178#define SIMPAD_BOARDCONTROL "/proc/cs3" 177#define SIMPAD_BOARDCONTROL "/proc/cs3"
179#define SIMPAD_VCC_5V_EN 0x0001 // For 5V PCMCIA 178#define SIMPAD_VCC_5V_EN 0x0001 // For 5V PCMCIA
180#define SIMPAD_VCC_3V_EN 0x0002 // FOR 3.3V PCMCIA 179#define SIMPAD_VCC_3V_EN 0x0002 // FOR 3.3V PCMCIA
181#define SIMPAD_EN1 0x0004 // This is only for EPROM's 180#define SIMPAD_EN1 0x0004 // This is only for EPROM's
182#define SIMPAD_EN0 0x0008 // Both should be enable for 3.3V or 5V 181#define SIMPAD_EN0 0x0008 // Both should be enable for 3.3V or 5V
183#define SIMPAD_DISPLAY_ON 0x0010 182#define SIMPAD_DISPLAY_ON 0x0010
184#define SIMPAD_PCMCIA_BUFF_DIS 0x0020 183#define SIMPAD_PCMCIA_BUFF_DIS 0x0020
185#define SIMPAD_MQ_RESET 0x0040 184#define SIMPAD_MQ_RESET 0x0040
186#define SIMPAD_PCMCIA_RESET 0x0080 185#define SIMPAD_PCMCIA_RESET 0x0080
187#define SIMPAD_DECT_POWER_ON 0x0100 186#define SIMPAD_DECT_POWER_ON 0x0100
188#define SIMPAD_IRDA_SD 0x0200 // Shutdown for powersave 187#define SIMPAD_IRDA_SD 0x0200 // Shutdown for powersave
189#define SIMPAD_RS232_ON 0x0400 188#define SIMPAD_RS232_ON 0x0400
190#define SIMPAD_SD_MEDIAQ 0x0800 // Shutdown for powersave 189#define SIMPAD_SD_MEDIAQ 0x0800 // Shutdown for powersave
191#define SIMPAD_LED2_ON 0x1000 190#define SIMPAD_LED2_ON 0x1000
192#define SIMPAD_IRDA_MODE 0x2000 // Fast/Slow IrDA mode 191#define SIMPAD_IRDA_MODE 0x2000 // Fast/Slow IrDA mode
193#define SIMPAD_ENABLE_5V 0x4000 // Enable 5V circuit 192#define SIMPAD_ENABLE_5V 0x4000 // Enable 5V circuit
194#define SIMPAD_RESET_SIMCARD 0x8000 193#define SIMPAD_RESET_SIMCARD 0x8000
195 194
196//SIMpad touchscreen backlight strength control 195//SIMpad touchscreen backlight strength control
197#define SIMPAD_BACKLIGHT_CONTROL "/proc/driver/mq200/registers/PWM_CONTROL" 196#define SIMPAD_BACKLIGHT_CONTROL "/proc/driver/mq200/registers/PWM_CONTROL"
198#define SIMPAD_BACKLIGHT_MASK 0x00a10044 197#define SIMPAD_BACKLIGHT_MASK 0x00a10044
199 198
diff --git a/libopie2/opiecore/okeyfilter.h b/libopie2/opiecore/okeyfilter.h
index a65bc48..d183641 100644
--- a/libopie2/opiecore/okeyfilter.h
+++ b/libopie2/opiecore/okeyfilter.h
@@ -1,102 +1,97 @@
1/* 1/*
2 This file is part of the Opie Project 2 This file is part of the Opie Project
3 =. Copyright (C) 2004 Rajko 'Alwin' Albrecht <alwin@handhelds.org> 3 =. Copyright (C) 2004 Rajko 'Alwin' Albrecht <alwin@handhelds.org>
4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org> 4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5 .>+-= 5 .>+-=
6_;:, .> :=|. This program is free software; you can 6_;:, .> :=|. This program is free software; you can
7.> <`_, > . <= redistribute it and/or modify it under 7.> <`_, > . <= redistribute it and/or modify it under
8:`=1 )Y*s>-.-- : the terms of the GNU Library General Public 8:`=1 )Y*s>-.-- : the terms of the GNU Library General Public
9.="- .-=="i, .._ License as published by the Free Software 9.="- .-=="i, .._ License as published by the Free Software
10- . .-<_> .<> Foundation; either version 2 of the License, 10- . .-<_> .<> Foundation; either version 2 of the License,
11 ._= =} : or (at your option) any later version. 11 ._= =} : or (at your option) any later version.
12 .%`+i> _;_. 12 .%`+i> _;_.
13 .i_,=:_. -<s. This program is distributed in the hope that 13 .i_,=:_. -<s. This program is distributed in the hope that
14 + . -:. = it will be useful, but WITHOUT ANY WARRANTY; 14 + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
15 : .. .:, . . . without even the implied warranty of 15 : .. .:, . . . without even the implied warranty of
16 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A 16 =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
17 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU 17 _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
18..}^=.= = ; Library General Public License for more 18..}^=.= = ; Library General Public License for more
19++= -. .` .: details. 19++= -. .` .: details.
20: = ...= . :.=- 20: = ...= . :.=-
21-. .:....=;==+<; You should have received a copy of the GNU 21-. .:....=;==+<; You should have received a copy of the GNU
22 -_. . . )=. = Library General Public License along with 22 -_. . . )=. = Library General Public License along with
23 -- :-=` this library; see the file COPYING.LIB. 23 -- :-=` this library; see the file COPYING.LIB.
24 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27*/ 27*/
28 28
29/* QT */ 29/* QT */
30#include <qwindowsystem_qws.h> 30#include <qwindowsystem_qws.h>
31#include <qvaluelist.h> 31#include <qvaluelist.h>
32 32
33namespace Opie { 33namespace Opie {
34namespace Core { 34namespace Core {
35 class ODevice; 35 class ODevice;
36namespace Internal { 36
37 class iPAQ;
38 class SIMpad;
39}
40 37
41/** 38/**
42 * A singleton which will manage all possible keyboard filters inside opie. 39 * A singleton which will manage all possible keyboard filters inside opie.
43 * It makes sure that key handlers of odevice are checked first than the 40 * It makes sure that key handlers of odevice are checked first than the
44 * keyfilters of software. 41 * keyfilters of software.
45 * @short a keyfilter proxy 42 * @short a keyfilter proxy
46 * @see QWSServer::KeyboardFilter 43 * @see QWSServer::KeyboardFilter
47 * @author Rajko Albrecht 44 * @author Rajko Albrecht
48 * @version 1.0 45 * @version 1.0
49 */ 46 */
50class OKeyFilter 47class OKeyFilter
51{ 48{
52 friend class Opie::Core::ODevice; 49 friend class Opie::Core::ODevice;
53 friend class Opie::Core::Internal::iPAQ;
54 friend class Opie::Core::Internal::SIMpad;
55 50
56protected: 51protected:
57 /** 52 /**
58 * Protected constructor - generate class via inst() 53 * Protected constructor - generate class via inst()
59 * @see inst() 54 * @see inst()
60 */ 55 */
61 OKeyFilter(); 56 OKeyFilter();
62 /** 57 /**
63 * Protected constructor - generate class via inst() 58 * Protected constructor - generate class via inst()
64 * @see inst() 59 * @see inst()
65 */ 60 */
66 OKeyFilter(const OKeyFilter&){}; 61 OKeyFilter(const OKeyFilter&){};
67 /** 62 /**
68 * Append filter to the primary list. 63 * Append filter to the primary list.
69 * This is only allowed for friend classes from odevice 64 * This is only allowed for friend classes from odevice
70 * @param aFilter a filter to append 65 * @param aFilter a filter to append
71 * @see addHandler 66 * @see addHandler
72 */ 67 */
73 virtual void addPreHandler(QWSServer::KeyboardFilter*aFilter)=0; 68 virtual void addPreHandler(QWSServer::KeyboardFilter*aFilter)=0;
74 /** 69 /**
75 * Remove the specified filter from list and give back ownership. 70 * Remove the specified filter from list and give back ownership.
76 * This is only allowed for friend classes from odevice 71 * This is only allowed for friend classes from odevice
77 * @param aFilter a filter to remove 72 * @param aFilter a filter to remove
78 * @see remHandler 73 * @see remHandler
79 */ 74 */
80 virtual void remPreHandler(QWSServer::KeyboardFilter*aFilter)=0; 75 virtual void remPreHandler(QWSServer::KeyboardFilter*aFilter)=0;
81 76
82public: 77public:
83 virtual ~OKeyFilter(); 78 virtual ~OKeyFilter();
84 /** 79 /**
85 * Append filter to the secondary list. 80 * Append filter to the secondary list.
86 * @param aFilter a filter to append 81 * @param aFilter a filter to append
87 * @see addPreHandler 82 * @see addPreHandler
88 */ 83 */
89 virtual void addHandler(QWSServer::KeyboardFilter*)=0; 84 virtual void addHandler(QWSServer::KeyboardFilter*)=0;
90 /** 85 /**
91 * Remove the specified filter from list and give back ownership. 86 * Remove the specified filter from list and give back ownership.
92 * @param aFilter a filter to remove 87 * @param aFilter a filter to remove
93 * @see remPreHandler 88 * @see remPreHandler
94 */ 89 */
95 virtual void remHandler(QWSServer::KeyboardFilter*)=0; 90 virtual void remHandler(QWSServer::KeyboardFilter*)=0;
96 91
97 /** 92 /**
98 * Returns a handler to an instance of OKeyFilter 93 * Returns a handler to an instance of OKeyFilter
99 * @return a pointer to a working OKeyFilter 94 * @return a pointer to a working OKeyFilter
100 */ 95 */
101 static OKeyFilter*inst(); 96 static OKeyFilter*inst();
102}; 97};