summaryrefslogtreecommitdiff
authorzecke <zecke>2005-08-04 19:16:06 (UTC)
committer zecke <zecke>2005-08-04 19:16:06 (UTC)
commit3ba74fc183b06760b60f1ad45ca4bfa0e47b3ecc (patch) (side-by-side diff)
tree1236f7199cdf3133be3882b84400d654cc488d14
parent77825e5455872ef0c6def793b38bc767a3838bc0 (diff)
downloadopie-3ba74fc183b06760b60f1ad45ca4bfa0e47b3ecc.zip
opie-3ba74fc183b06760b60f1ad45ca4bfa0e47b3ecc.tar.gz
opie-3ba74fc183b06760b60f1ad45ca4bfa0e47b3ecc.tar.bz2
ODevice:
Patch by Pawel Kolodziejski (pablo _BEI_ omega.xtr.net.pl) to add support for the H19xx series of iPAQs
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice.h1
-rw-r--r--libopie2/opiecore/device/odevice_ipaq.cpp62
-rw-r--r--libopie2/opiecore/device/odevice_ipaq.h1
3 files changed, 50 insertions, 14 deletions
diff --git a/libopie2/opiecore/device/odevice.h b/libopie2/opiecore/device/odevice.h
index b8478b9..05bb167 100644
--- a/libopie2/opiecore/device/odevice.h
+++ b/libopie2/opiecore/device/odevice.h
@@ -70,2 +70,3 @@ enum OModel {
Model_iPAQ_H22xx = ( Model_iPAQ | 0x000040 ),
+ Model_iPAQ_H191x = ( Model_iPAQ | 0x000080 ),
diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp
index 8bc775f..309e1e4 100644
--- a/libopie2/opiecore/device/odevice_ipaq.cpp
+++ b/libopie2/opiecore/device/odevice_ipaq.cpp
@@ -87,3 +87,3 @@ typedef struct {
struct i_button ipaq_buttons [] = {
- { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+ { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x,
Qt::Key_F9, QT_TRANSLATE_NOOP("Button", "Calendar Button"),
@@ -92,3 +92,3 @@ struct i_button ipaq_buttons [] = {
"today", "raise()" },
- { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+ { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x,
Qt::Key_F10, QT_TRANSLATE_NOOP("Button", "Contacts Button"),
@@ -102,3 +102,3 @@ struct i_button ipaq_buttons [] = {
"QPE/TaskBar", "toggleStartMenu()" },
- { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+ { Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x,
Qt::Key_F13, QT_TRANSLATE_NOOP("Button", "Mail Button"),
@@ -107,3 +107,3 @@ struct i_button ipaq_buttons [] = {
"opiemail", "newMail()" },
- { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+ { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x,
Qt::Key_F12, QT_TRANSLATE_NOOP("Button", "Home Button"),
@@ -112,3 +112,3 @@ struct i_button ipaq_buttons [] = {
"buttonsettings", "raise()" },
- { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx,
+ { Model_iPAQ_H31xx | Model_iPAQ_H36xx | Model_iPAQ_H37xx | Model_iPAQ_H38xx | Model_iPAQ_H39xx | Model_iPAQ_H5xxx | Model_iPAQ_H191x,
Qt::Key_F24, QT_TRANSLATE_NOOP("Button", "Record Button"),
@@ -140,2 +140,4 @@ void iPAQ::init(const QString& model)
d->m_model = Model_iPAQ_H22xx;
+ else if ( d->m_modelstr == "H1910" )
+ d->m_model = Model_iPAQ_H191x;
else
@@ -150,2 +152,3 @@ void iPAQ::init(const QString& model)
case Model_iPAQ_H22xx:
+ case Model_iPAQ_H191x:
d->m_rotation = Rot0;
@@ -287,3 +290,4 @@ bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b
// add the offset to the Key_Left key
- if ( d-> m_model == Model_iPAQ_H5xxx )
+ if (( d->m_model == Model_iPAQ_H5xxx ) ||
+ ( d->m_model == Model_iPAQ_H191x ))
newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4;
@@ -350,9 +354,22 @@ bool iPAQ::setDisplayBrightness ( int bright )
- if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) {
- FLITE_IN bl;
- bl. mode = 1;
- bl. pwr = bright ? 1 : 0;
- bl. brightness = ( bright * ( displayBrightnessResolution() - 1 ) + 127 ) / 255;
- res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 );
- ::close ( fd );
+ QString cmdline;
+
+ switch ( model()) {
+ case Model_iPAQ_H191x:
+ if ( !bright )
+ cmdline = QString::fromLatin1( "echo 4 > /sys/class/backlight/pxafb/power");
+ else
+ cmdline = QString::fromLatin1( "echo 0 > /sys/class/backlight/pxafb/power; echo %1 > /sys/class/backlight/pxafb/brightness" ).arg( bright );
+ // No Global::shellQuote as we gurantee it to be sane
+ res = ( ::system( QFile::encodeName(cmdline) ) == 0 );
+ break;
+ default:
+ if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) {
+ FLITE_IN bl;
+ bl. mode = 1;
+ bl. pwr = bright ? 1 : 0;
+ bl. brightness = ( bright * ( displayBrightnessResolution() - 1 ) + 127 ) / 255;
+ res = ( ::ioctl ( fd, FLITE_ON, &bl ) == 0 );
+ ::close ( fd );
+ }
}
@@ -374,3 +391,4 @@ int iPAQ::displayBrightnessResolution() const
return 255;
-
+ case Model_iPAQ_H191x:
+ return 183;
default:
@@ -380,2 +398,18 @@ int iPAQ::displayBrightnessResolution() const
+bool iPAQ::setDisplayStatus ( bool on )
+{
+ bool res = false;
+
+ QString cmdline;
+
+ if ( model() == Model_iPAQ_H191x ) {
+ cmdline = QString::fromLatin1( "echo %1 > /sys/class/lcd/pxafb/power; echo %2 > /sys/class/backlight/pxafb/power").arg( on ? "0" : "4" ).arg( on ? "0" : "4" );
+ } else {
+ res = OAbstractMobileDevice::setDisplayStatus(on);
+ }
+
+ res = ( ::system( QFile::encodeName(cmdline) ) == 0 );
+
+ return res;
+}
diff --git a/libopie2/opiecore/device/odevice_ipaq.h b/libopie2/opiecore/device/odevice_ipaq.h
index 1889467..3c783bc 100644
--- a/libopie2/opiecore/device/odevice_ipaq.h
+++ b/libopie2/opiecore/device/odevice_ipaq.h
@@ -49,2 +49,3 @@ class iPAQ : public OAbstractMobileDevice, public QWSServer::KeyboardFilter
public:
+ virtual bool setDisplayStatus ( bool on );
virtual bool setDisplayBrightness( int b );