summaryrefslogtreecommitdiff
path: root/libopie2
authoraquadran <aquadran>2007-03-17 22:08:43 (UTC)
committer aquadran <aquadran>2007-03-17 22:08:43 (UTC)
commitfb862bdc6c9a6f5b6e7529823eb4b56cc7085a59 (patch) (unidiff)
tree11ab2be67d1ffc1fabdb0cb489bc14205117d8cd /libopie2
parent794f3bb9cf973e59a8ca773f42d72a6476b7a4e1 (diff)
downloadopie-fb862bdc6c9a6f5b6e7529823eb4b56cc7085a59.zip
opie-fb862bdc6c9a6f5b6e7529823eb4b56cc7085a59.tar.gz
opie-fb862bdc6c9a6f5b6e7529823eb4b56cc7085a59.tar.bz2
match h1910 and asus 716 to other pda latest changes
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_ipaq.cpp3
-rw-r--r--libopie2/opiecore/device/odevice_mypal.cpp65
2 files changed, 32 insertions, 36 deletions
diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp
index 6dc1295..b18fd32 100644
--- a/libopie2/opiecore/device/odevice_ipaq.cpp
+++ b/libopie2/opiecore/device/odevice_ipaq.cpp
@@ -449,9 +449,8 @@ int iPAQ::displayBrightnessResolution() const
449 case Model_iPAQ_H5xxx: 449 case Model_iPAQ_H5xxx:
450 case Model_iPAQ_HX4700: 450 case Model_iPAQ_HX4700:
451 case Model_iPAQ_H4xxx: 451 case Model_iPAQ_H4xxx:
452 return 255;
453 case Model_iPAQ_H191x: 452 case Model_iPAQ_H191x:
454 return 7; 453 return 255;
455 case Model_iPAQ_H1940: 454 case Model_iPAQ_H1940:
456 return 44; 455 return 44;
457 default: 456 default:
diff --git a/libopie2/opiecore/device/odevice_mypal.cpp b/libopie2/opiecore/device/odevice_mypal.cpp
index 73b31cb..28e92bf 100644
--- a/libopie2/opiecore/device/odevice_mypal.cpp
+++ b/libopie2/opiecore/device/odevice_mypal.cpp
@@ -140,18 +140,22 @@ bool MyPal::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress,
140 int newkeycode = keycode; 140 int newkeycode = keycode;
141 141
142 switch ( keycode ) { 142 switch ( keycode ) {
143 case Key_Left : 143 // QT has strange screen coordinate system, so depending
144 case Key_Right: 144 // on native device screen orientation, we need to rotate cursor keys
145 case Key_Up : 145 case Key_Left :
146 case Key_Down : { 146 case Key_Right:
147 // Rotate the cursor keys by 270 147 case Key_Up :
148 // keycode - Key_Left = position of the button starting from left clockwise 148 case Key_Down : {
149 // add the rotation to it and modolo. No we've the original offset 149 int quarters;
150 // add the offset to the Key_Left key 150 switch (d->m_rotation) {
151 if ( d->m_model == Model_MyPal_716 ) 151 case Rot0: quarters = 3/*270deg*/; break;
152 newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; 152 case Rot90: quarters = 2/*270deg*/; break;
153 break; 153 case Rot180: quarters = 1/*270deg*/; break;
154 } 154 case Rot270: quarters = 0/*270deg*/; break;
155 }
156 newkeycode = Key_Left + ( keycode - Key_Left + quarters ) % 4;
157 break;
158 }
155 159
156 // map Power Button short/long press 160 // map Power Button short/long press
157 case HardKey_Suspend: { // Hope we don't have infinite recursion here: 161 case HardKey_Suspend: { // Hope we don't have infinite recursion here:
@@ -210,26 +214,17 @@ bool MyPal::setDisplayBrightness ( int bright )
210 if ( bright < 0 ) 214 if ( bright < 0 )
211 bright = 0; 215 bright = 0;
212 216
213 QDir sysClass( "/sys/class/backlight/pxafb/" ); 217 QDir sysClass( "/sys/class/backlight/" );
214 sysClass.setFilter(QDir::Dirs); 218 sysClass.setFilter(QDir::Dirs);
215 int fd; 219 if ( sysClass.exists() && sysClass.count() > 2 ) {
216 if ( sysClass.exists() ) { 220 QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/brightness" );
217 QString sysClassPath = sysClass.absFilePath( "/sys/class/backlight/pxafb/power" ); 221 int fd = ::open( sysClassPath, O_WRONLY|O_NONBLOCK );
218 fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK );
219 if ( fd ) {
220 char buf[10];
221 buf[0] = bright ? 0 : 4;
222 buf[1] = '\0';
223 res = ( ::write( fd, &buf[0], 2 ) == 0 );
224 ::close( fd );
225 }
226 sysClassPath = sysClass.absFilePath( "/sys/class/backlight/pxafb/brightness" );
227 fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK );
228 if ( fd ) { 222 if ( fd ) {
229 char buf[100]; 223 char buf[100];
230 int len = ::snprintf( &buf[0], sizeof buf, "%d", bright ); 224 int val = bright * displayBrightnessResolution() / 255;
231 res = ( ::write( fd, &buf[0], len ) == 0 ); 225 int len = ::snprintf( &buf[0], sizeof buf, "%d", val );
232 ::close( fd ); 226 res = ( ::write( fd, &buf[0], len ) == 0 );
227 ::close( fd );
233 } 228 }
234 } 229 }
235 230
@@ -240,7 +235,7 @@ int MyPal::displayBrightnessResolution() const
240{ 235{
241 switch ( model()) { 236 switch ( model()) {
242 case Model_MyPal_716: 237 case Model_MyPal_716:
243 return 7; 238 return 255;
244 default: 239 default:
245 return OAbstractMobileDevice::displayBrightnessResolution(); 240 return OAbstractMobileDevice::displayBrightnessResolution();
246 } 241 }
@@ -252,9 +247,9 @@ bool MyPal::setDisplayStatus ( bool on )
252 247
253 QDir sysClass( "/sys/class/lcd/" ); 248 QDir sysClass( "/sys/class/lcd/" );
254 sysClass.setFilter(QDir::Dirs); 249 sysClass.setFilter(QDir::Dirs);
255 if ( sysClass.exists() ) { 250 if ( sysClass.exists() && sysClass.count() > 2 ) {
256 QString sysClassPath = sysClass.absFilePath( "/sys/class/lcd/pxafb/power" ); 251 QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/power" );
257 int fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK ); 252 int fd = ::open( sysClassPath, O_WRONLY|O_NONBLOCK );
258 if ( fd ) { 253 if ( fd ) {
259 char buf[10]; 254 char buf[10];
260 buf[0] = on ? 0 : 4; 255 buf[0] = on ? 0 : 4;
@@ -262,6 +257,8 @@ bool MyPal::setDisplayStatus ( bool on )
262 res = ( ::write( fd, &buf[0], 2 ) == 0 ); 257 res = ( ::write( fd, &buf[0], 2 ) == 0 );
263 ::close( fd ); 258 ::close( fd );
264 } 259 }
260 } else {
261 res = OAbstractMobileDevice::setDisplayStatus(on);
265 } 262 }
266 263
267 return res; 264 return res;