-rw-r--r-- | libopie2/opiecore/device/odevice_simpad.cpp | 32 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_simpad.h | 6 |
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 @@ -137,29 +137,24 @@ void SIMpad::init(const QString&) //Distribution detecting code is now in base class m_leds [0] = m_leds [1] = Led_Off; m_power_timer = 0; } void SIMpad::initButtons() { if ( d->m_buttons ) return; - if ( isQWS( ) ) { - addPreHandler(this); - } - - d->m_buttons = new QValueList <ODeviceButton>; for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) { s_button *sb = simpad_buttons + i; ODeviceButton b; if (( sb->model & d->m_model ) == d->m_model ) { b. setKeycode ( sb->code ); b. setUserText ( QObject::tr ( "Button", sb->utext )); b. setPixmap ( Resource::loadPixmap ( sb->pix )); b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( sb->fpressedservice ), sb->fpressedaction )); b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( sb->fheldservice ), sb->fheldaction )); @@ -184,26 +179,25 @@ void SIMpad::initButtons() #define SIMPAD_MQ_RESET 0x0040 #define SIMPAD_PCMCIA_RESET 0x0080 #define SIMPAD_DECT_POWER_ON 0x0100 #define SIMPAD_IRDA_SD 0x0200 // Shutdown for powersave #define SIMPAD_RS232_ON 0x0400 #define SIMPAD_SD_MEDIAQ 0x0800 // Shutdown for powersave #define SIMPAD_LED2_ON 0x1000 #define SIMPAD_IRDA_MODE 0x2000 // Fast/Slow IrDA mode #define SIMPAD_ENABLE_5V 0x4000 // Enable 5V circuit #define SIMPAD_RESET_SIMCARD 0x8000 //SIMpad touchscreen backlight strength control -#define SIMPAD_BACKLIGHT_CONTROL "/proc/driver/mq200/registers/PWM_CONTROL" -#define SIMPAD_BACKLIGHT_MASK 0x00a10044 +#define SIMPAD_BACKLIGHT_CONTROL "/proc/driver/mq200/backlight" /* * The SIMpad exposes ChipSelect3 to userspace * via a proc filesystem file. Using this register * one can toggle power of serial, irda, dect circuits * change the video driver and display status and * many more things. * To not lose the current setting we read the current * cs3 setting and toggle the necessary bits and then * write it. */ @@ -290,31 +284,24 @@ OLedState SIMpad::ledState ( OLed l ) const bool SIMpad::setLedState ( OLed l, OLedState st ) { if ( l == Led_Power ) { m_leds [0] = st; setCS3Bit(st == Led_On, SIMPAD_LED2_ON); return true; } return false; } - -bool SIMpad::filter ( int /*unicode*/, int /*keycode*/, int /*modifiers*/, bool /*isPress*/, bool /*autoRepeat*/ ) -{ - //TODO - return false; -} - void SIMpad::timerEvent ( QTimerEvent * ) { killTimer ( m_power_timer ); m_power_timer = 0; QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, true, false ); QWSServer::sendKeyEvent ( -1, HardKey_Backlight, 0, false, false ); } void SIMpad::playAlarmSound() { #ifndef QT_NO_SOUND @@ -343,58 +330,45 @@ bool SIMpad::suspend() // Must override because SIMpad does NOT have apm (void)::system( "cat /dev/fb/0 > /tmp/.buffer" ); bool res = ODevice::suspend(); /* * restore */ if ( res ) ::system( "cat /tmp/.buffer > /dev/fb/0" ); return res; } - -bool SIMpad::setSoftSuspend ( bool soft ) -{ - qDebug( "ODevice for SIMpad: UNHANDLED setSoftSuspend(%s)", soft? "on" : "off" ); - return false; -} - - bool SIMpad::setDisplayStatus ( bool on ) { qDebug( "ODevice for SIMpad: setDisplayStatus(%s)", on? "on" : "off" ); return setCS3Bit(on, SIMPAD_DISPLAY_ON); } bool SIMpad::setDisplayBrightness ( int bright ) { qDebug( "ODevice for SIMpad: setDisplayBrightness( %d )", bright ); bool res = false; int fd; if ( bright > 255 ) bright = 255; if ( bright < 1 ) bright = 0; if (( fd = ::open ( SIMPAD_BACKLIGHT_CONTROL, O_WRONLY )) >= 0 ) { - int value = 255 - bright; - const int mask = SIMPAD_BACKLIGHT_MASK; - value = value << 8; - value += mask; - char writeCommand[100]; - const int count = snprintf( writeCommand, sizeof(writeCommand), "0x%x\n", value ); - res = ( ::write ( fd, writeCommand, count ) != -1 ); + QCString str = QFile::encodeName( QString::number(bright)); + res = ( ::write(fd, str, str.length()) != -1 ); ::close ( fd ); } return res; } int SIMpad::displayBrightnessResolution() const { return 255; // All SIMpad models share the same display } 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 @@ -30,47 +30,45 @@ #ifndef ODEVICE_SIMPAD #define ODEVICE_SIMPAD #include <opie2/odevice.h> /* QT */ #include <qwindowsystem_qws.h> namespace Opie { namespace Core { namespace Internal { -class SIMpad : public ODevice, public QWSServer::KeyboardFilter +class SIMpad : public ODevice { protected: virtual void init(const QString&); virtual void initButtons(); public: - virtual bool setSoftSuspend( bool soft ); virtual bool suspend(); virtual bool setDisplayStatus( bool on ); virtual bool setDisplayBrightness( int b ); virtual int displayBrightnessResolution() const; virtual void playAlarmSound(); virtual QValueList <OLed> ledList() const; virtual QValueList <OLedState> ledStateList( OLed led ) const; virtual OLedState ledState( OLed led ) const; virtual bool setLedState( OLed led, OLedState st ); - protected: - virtual bool filter( int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat ); +protected: virtual void timerEvent( QTimerEvent *te ); int m_power_timer; OLedState m_leds [2]; }; struct s_button { uint model; Qt::Key code; char *utext; char *pix; |