summaryrefslogtreecommitdiff
authorzecke <zecke>2004-09-21 16:04:01 (UTC)
committer zecke <zecke>2004-09-21 16:04:01 (UTC)
commit2e877b93064d149ccafbbd86da55fbd244c3af4a (patch) (unidiff)
tree5b1d3618ea1690a6d810c21f2a73e7e8ae51b257
parent56f3bcad1a0abd199a458a62c8bde0ebdff035d5 (diff)
downloadopie-2e877b93064d149ccafbbd86da55fbd244c3af4a.zip
opie-2e877b93064d149ccafbbd86da55fbd244c3af4a.tar.gz
opie-2e877b93064d149ccafbbd86da55fbd244c3af4a.tar.bz2
Simpad:
-We're not a KeyFilter remove the inheritance and installing of it -Use /proc/mq200/driver/backlight instead of PWM_CONTROL -Soft Suspend is dead long time do not reimplement it..
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_simpad.cpp32
-rw-r--r--libopie2/opiecore/device/odevice_simpad.h6
2 files changed, 5 insertions, 33 deletions
diff --git a/libopie2/opiecore/device/odevice_simpad.cpp b/libopie2/opiecore/device/odevice_simpad.cpp
index 34876da..335e0db 100644
--- a/libopie2/opiecore/device/odevice_simpad.cpp
+++ b/libopie2/opiecore/device/odevice_simpad.cpp
@@ -143,17 +143,12 @@ void SIMpad::init(const QString&)
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( ) ) {
150 addPreHandler(this);
151 }
152
153
154 d->m_buttons = new QValueList <ODeviceButton>; 149 d->m_buttons = new QValueList <ODeviceButton>;
155 150
156 for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) { 151 for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) {
157 s_button *sb = simpad_buttons + i; 152 s_button *sb = simpad_buttons + i;
158 ODeviceButton b; 153 ODeviceButton b;
159 154
@@ -190,14 +185,13 @@ void SIMpad::initButtons()
190#define SIMPAD_LED2_ON 0x1000 185#define SIMPAD_LED2_ON 0x1000
191#define SIMPAD_IRDA_MODE 0x2000 // Fast/Slow IrDA mode 186#define SIMPAD_IRDA_MODE 0x2000 // Fast/Slow IrDA mode
192#define SIMPAD_ENABLE_5V 0x4000 // Enable 5V circuit 187#define SIMPAD_ENABLE_5V 0x4000 // Enable 5V circuit
193#define SIMPAD_RESET_SIMCARD 0x8000 188#define SIMPAD_RESET_SIMCARD 0x8000
194 189
195//SIMpad touchscreen backlight strength control 190//SIMpad touchscreen backlight strength control
196#define SIMPAD_BACKLIGHT_CONTROL "/proc/driver/mq200/registers/PWM_CONTROL" 191#define SIMPAD_BACKLIGHT_CONTROL "/proc/driver/mq200/backlight"
197#define SIMPAD_BACKLIGHT_MASK 0x00a10044
198 192
199 193
200/* 194/*
201 * The SIMpad exposes ChipSelect3 to userspace 195 * The SIMpad exposes ChipSelect3 to userspace
202 * via a proc filesystem file. Using this register 196 * via a proc filesystem file. Using this register
203 * one can toggle power of serial, irda, dect circuits 197 * one can toggle power of serial, irda, dect circuits
@@ -296,19 +290,12 @@ bool SIMpad::setLedState ( OLed l, OLedState st )
296 return true; 290 return true;
297 } 291 }
298 292
299 return false; 293 return false;
300} 294}
301 295
302
303bool SIMpad::filter ( int /*unicode*/, int /*keycode*/, int /*modifiers*/, bool /*isPress*/, bool /*autoRepeat*/ )
304{
305 //TODO
306 return false;
307}
308
309void SIMpad::timerEvent ( QTimerEvent * ) 296void SIMpad::timerEvent ( QTimerEvent * )
310{ 297{
311 killTimer ( m_power_timer ); 298 killTimer ( m_power_timer );
312 m_power_timer = 0; 299 m_power_timer = 0;
313 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false ); 300 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false );
314 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false ); 301 QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false );
@@ -349,20 +336,12 @@ bool SIMpad::suspend() // Must override because SIMpad does NOT have apm
349 if ( res ) 336 if ( res )
350 ::system( "cat /tmp/.buffer > /dev/fb/0" ); 337 ::system( "cat /tmp/.buffer > /dev/fb/0" );
351 338
352 return res; 339 return res;
353} 340}
354 341
355
356bool SIMpad::setSoftSuspend ( bool soft )
357{
358 qDebug( "ODevice for SIMpad: UNHANDLED setSoftSuspend(%s)", soft? "on" : "off" );
359 return false;
360}
361
362
363bool SIMpad::setDisplayStatus ( bool on ) 342bool SIMpad::setDisplayStatus ( bool on )
364{ 343{
365 qDebug( "ODevice for SIMpad: setDisplayStatus(%s)", on? "on" : "off" ); 344 qDebug( "ODevice for SIMpad: setDisplayStatus(%s)", on? "on" : "off" );
366 345
367 return setCS3Bit(on, SIMPAD_DISPLAY_ON); 346 return setCS3Bit(on, SIMPAD_DISPLAY_ON);
368} 347}
@@ -377,19 +356,14 @@ bool SIMpad::setDisplayBrightness ( int bright )
377 if ( bright > 255 ) 356 if ( bright > 255 )
378 bright = 255; 357 bright = 255;
379 if ( bright < 1 ) 358 if ( bright < 1 )
380 bright = 0; 359 bright = 0;
381 360
382 if (( fd = ::open ( SIMPAD_BACKLIGHT_CONTROL, O_WRONLY )) >= 0 ) { 361 if (( fd = ::open ( SIMPAD_BACKLIGHT_CONTROL, O_WRONLY )) >= 0 ) {
383 int value = 255 - bright; 362 QCString str = QFile::encodeName( QString::number(bright));
384 const int mask = SIMPAD_BACKLIGHT_MASK; 363 res = ( ::write(fd, str, str.length()) != -1 );
385 value = value << 8;
386 value += mask;
387 char writeCommand[100];
388 const int count = snprintf( writeCommand, sizeof(writeCommand), "0x%x\n", value );
389 res = ( ::write ( fd, writeCommand, count ) != -1 );
390 ::close ( fd ); 364 ::close ( fd );
391 } 365 }
392 return res; 366 return res;
393} 367}
394 368
395 369
diff --git a/libopie2/opiecore/device/odevice_simpad.h b/libopie2/opiecore/device/odevice_simpad.h
index 6c42be7..dbcbbb4 100644
--- a/libopie2/opiecore/device/odevice_simpad.h
+++ b/libopie2/opiecore/device/odevice_simpad.h
@@ -36,20 +36,19 @@
36#include <qwindowsystem_qws.h> 36#include <qwindowsystem_qws.h>
37 37
38namespace Opie { 38namespace Opie {
39namespace Core { 39namespace Core {
40namespace Internal { 40namespace Internal {
41 41
42class SIMpad : public ODevice, public QWSServer::KeyboardFilter 42class SIMpad : public ODevice
43{ 43{
44 protected: 44 protected:
45 virtual void init(const QString&); 45 virtual void init(const QString&);
46 virtual void initButtons(); 46 virtual void initButtons();
47 47
48 public: 48 public:
49 virtual bool setSoftSuspend( bool soft );
50 virtual bool suspend(); 49 virtual bool suspend();
51 50
52 virtual bool setDisplayStatus( bool on ); 51 virtual bool setDisplayStatus( bool on );
53 virtual bool setDisplayBrightness( int b ); 52 virtual bool setDisplayBrightness( int b );
54 virtual int displayBrightnessResolution() const; 53 virtual int displayBrightnessResolution() const;
55 54
@@ -57,14 +56,13 @@ class SIMpad : public ODevice, public QWSServer::KeyboardFilter
57 56
58 virtual QValueList <OLed> ledList() const; 57 virtual QValueList <OLed> ledList() const;
59 virtual QValueList <OLedState> ledStateList( OLed led ) const; 58 virtual QValueList <OLedState> ledStateList( OLed led ) const;
60 virtual OLedState ledState( OLed led ) const; 59 virtual OLedState ledState( OLed led ) const;
61 virtual bool setLedState( OLed led, OLedState st ); 60 virtual bool setLedState( OLed led, OLedState st );
62 61
63 protected: 62protected:
64 virtual bool filter( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat );
65 virtual void timerEvent( QTimerEvent *te ); 63 virtual void timerEvent( QTimerEvent *te );
66 64
67 int m_power_timer; 65 int m_power_timer;
68 66
69 OLedState m_leds [2]; 67 OLedState m_leds [2];
70}; 68};