summaryrefslogtreecommitdiff
path: root/libopie2/opiecore/device/odevice_simpad.cpp
Unidiff
Diffstat (limited to 'libopie2/opiecore/device/odevice_simpad.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_simpad.cpp52
1 files changed, 28 insertions, 24 deletions
diff --git a/libopie2/opiecore/device/odevice_simpad.cpp b/libopie2/opiecore/device/odevice_simpad.cpp
index e62ea18..6c3253c 100644
--- a/libopie2/opiecore/device/odevice_simpad.cpp
+++ b/libopie2/opiecore/device/odevice_simpad.cpp
@@ -1,54 +1,55 @@
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_simpad.h" 30#include "odevice_simpad.h"
31 31
32/* QT */ 32/* QT */
33#include <qapplication.h> 33#include <qapplication.h>
34#include <qfile.h> 34#include <qfile.h>
35#include <qtextstream.h> 35#include <qtextstream.h>
36#include <qwindowsystem_qws.h> 36#include <qwindowsystem_qws.h>
37 37
38/* OPIE */ 38/* OPIE */
39#include <qpe/config.h> 39#include <qpe/config.h>
40#include <qpe/resource.h> 40#include <qpe/resource.h>
41#include <qpe/sound.h> 41#include <qpe/sound.h>
42#include <qpe/qcopenvelope_qws.h> 42#include <qpe/qcopenvelope_qws.h>
43#include <opie2/okeyfilter.h>
43 44
44/* STD */ 45/* STD */
45#include <fcntl.h> 46#include <fcntl.h>
46#include <math.h> 47#include <math.h>
47#include <stdlib.h> 48#include <stdlib.h>
48#include <signal.h> 49#include <signal.h>
49#include <sys/ioctl.h> 50#include <sys/ioctl.h>
50#include <sys/time.h> 51#include <sys/time.h>
51#include <unistd.h> 52#include <unistd.h>
52#ifndef QT_NO_SOUND 53#ifndef QT_NO_SOUND
53#include <linux/soundcard.h> 54#include <linux/soundcard.h>
54#endif 55#endif
@@ -136,26 +137,29 @@ void SIMpad::init(const QString&)
136 //Distribution detecting code is now in base class 137 //Distribution detecting code is now in base class
137 m_leds [0] = m_leds [1] = Led_Off; 138 m_leds [0] = m_leds [1] = Led_Off;
138 139
139 m_power_timer = 0; 140 m_power_timer = 0;
140 141
141} 142}
142 143
143void SIMpad::initButtons() 144void SIMpad::initButtons()
144{ 145{
145 if ( d->m_buttons ) 146 if ( d->m_buttons )
146 return; 147 return;
147 148
148 if ( isQWS( ) ) 149 if ( isQWS( ) ) {
149 QWSServer::setKeyboardFilter ( this ); 150 Opie::Core::OKeyFilter::inst()->addPreHandler(this);
151// QWSServer::setKeyboardFilter ( this );
152 }
153
150 154
151 d->m_buttons = new QValueList <ODeviceButton>; 155 d->m_buttons = new QValueList <ODeviceButton>;
152 156
153 for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) { 157 for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) {
154 s_button *sb = simpad_buttons + i; 158 s_button *sb = simpad_buttons + i;
155 ODeviceButton b; 159 ODeviceButton b;
156 160
157 if (( sb->model & d->m_model ) == d->m_model ) { 161 if (( sb->model & d->m_model ) == d->m_model ) {
158 b. setKeycode ( sb->code ); 162 b. setKeycode ( sb->code );
159 b. setUserText ( QObject::tr ( "Button", sb->utext )); 163 b. setUserText ( QObject::tr ( "Button", sb->utext ));
160 b. setPixmap ( Resource::loadPixmap ( sb->pix )); 164 b. setPixmap ( Resource::loadPixmap ( sb->pix ));
161 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( sb->fpressedservice ), sb->fpressedaction )); 165 b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( sb->fpressedservice ), sb->fpressedaction ));
@@ -209,25 +213,25 @@ QValueList <OLedState> SIMpad::ledStateList ( OLed l ) const
209 vl << Led_Off << Led_On; 213 vl << Led_Off << Led_On;
210 //else if ( l == Led_Mail ) //TODO find out if LED1 is accessible anyway 214 //else if ( l == Led_Mail ) //TODO find out if LED1 is accessible anyway
211 //vl << Led_Off; 215 //vl << Led_Off;
212 return vl; 216 return vl;
213} 217}
214 218
215OLedState SIMpad::ledState ( OLed l ) const 219OLedState SIMpad::ledState ( OLed l ) const
216{ 220{
217 switch ( l ) { 221 switch ( l ) {
218 case Led_Power: 222 case Led_Power:
219 return m_leds [0]; 223 return m_leds [0];
220 //case Led_Mail: 224 //case Led_Mail:
221 //return m_leds [1]; 225 // return m_leds [1];
222 default: 226 default:
223 return Led_Off; 227 return Led_Off;
224 } 228 }
225} 229}
226 230
227bool SIMpad::setLedState ( OLed l, OLedState st ) 231bool SIMpad::setLedState ( OLed l, OLedState st )
228{ 232{
229#if 0 233#if 0
230 static int fd = ::open ( SIMPAD_BOARDCONTROL, O_RDWR | O_NONBLOCK ); 234 static int fd = ::open ( SIMPAD_BOARDCONTROL, O_RDWR | O_NONBLOCK );
231 235
232 /*TODO Implement this like that: 236 /*TODO Implement this like that:
233 read from cs3 237 read from cs3