summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice.h3
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.cpp96
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.h5
3 files changed, 64 insertions, 40 deletions
diff --git a/libopie2/opiecore/device/odevice.h b/libopie2/opiecore/device/odevice.h
index 93d7d22..bbc32fa 100644
--- a/libopie2/opiecore/device/odevice.h
+++ b/libopie2/opiecore/device/odevice.h
@@ -82,2 +82,3 @@ enum OModel {
82 Model_Zaurus_SL6000 = ( Model_Zaurus | 0x000006 ), 82 Model_Zaurus_SL6000 = ( Model_Zaurus | 0x000006 ),
83 Model_Zaurus_SLC3000 = ( Model_Zaurus | 0x000007 ),
83 84
@@ -363,3 +364,3 @@ class ODeviceData {
363 QStrList *m_cpu_frequencies; 364 QStrList *m_cpu_frequencies;
364 boolm_initializedButtonQcop : 1; 365 bool m_initializedButtonQcop : 1;
365 366
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp
index fb23e1d..75a2fdc 100644
--- a/libopie2/opiecore/device/odevice_zaurus.cpp
+++ b/libopie2/opiecore/device/odevice_zaurus.cpp
@@ -171,2 +171,5 @@ void Zaurus::init(const QString& cpu_info)
171 d->m_modelstr = "Zaurus SL-C760 or SL-C860"; 171 d->m_modelstr = "Zaurus SL-C760 or SL-C860";
172 } else if ( model == "SHARP Boxer" ) {
173 d->m_model = Model_Zaurus_SLC7x0;
174 d->m_modelstr = "Zaurus SL-C760 or SL-C860";
172 } else if ( model == "SHARP Poodle" ) { 175 } else if ( model == "SHARP Poodle" ) {
@@ -180,5 +183,8 @@ void Zaurus::init(const QString& cpu_info)
180 d->m_modelstr = "Zaurus SL-6000"; 183 d->m_modelstr = "Zaurus SL-6000";
184 } else if ( model == "SHARP Spitz" ) {
185 d->m_model = Model_Zaurus_SLC3000;
186 d->m_modelstr = "Zaurus SL-C3000";
181 } else { 187 } else {
182 d->m_model = Model_Zaurus_SL5500; 188 d->m_model = Model_Zaurus_SL5500;
183 d->m_modelstr = "Unkown Zaurus"; 189 d->m_modelstr = "Unknown Zaurus";
184 } 190 }
@@ -191,2 +197,3 @@ void Zaurus::init(const QString& cpu_info)
191 break; 197 break;
198 case Model_Zaurus_SLC3000: // fallthrough
192 case Model_Zaurus_SLC7x0: 199 case Model_Zaurus_SLC7x0:
@@ -196,4 +203,4 @@ void Zaurus::init(const QString& cpu_info)
196 case Model_Zaurus_SLB600: // fallthrough 203 case Model_Zaurus_SLB600: // fallthrough
204 case Model_Zaurus_SL5000: // fallthrough
197 case Model_Zaurus_SL5500: // fallthrough 205 case Model_Zaurus_SL5500: // fallthrough
198 case Model_Zaurus_SL5000:
199 default: 206 default:
@@ -202,3 +209,3 @@ void Zaurus::init(const QString& cpu_info)
202 } 209 }
203 m_leds [0] = Led_Off; 210 m_leds[0] = Led_Off;
204} 211}
@@ -255,6 +262,5 @@ void Zaurus::buzzer( int sound )
255 262
256 // Not all devices have real sound 263 // All devices except SL5500 have a DSP device
257 if ( d->m_model == Model_Zaurus_SLC7x0 264 if ( d->m_model != Model_Zaurus_SL5000
258 || d->m_model == Model_Zaurus_SLB600 265 && d->m_model != Model_Zaurus_SL5500 ) {
259 || d->m_model == Model_Zaurus_SL6000 ) {
260 266
@@ -264,3 +270,3 @@ void Zaurus::buzzer( int sound )
264 snd = &touch_sound; 270 snd = &touch_sound;
265 } 271 }
266 break; 272 break;
@@ -269,3 +275,3 @@ void Zaurus::buzzer( int sound )
269 snd = &key_sound; 275 snd = &key_sound;
270 } 276 }
271 break; 277 break;
@@ -275,3 +281,3 @@ void Zaurus::buzzer( int sound )
275 snd = &alarm_sound; 281 snd = &alarm_sound;
276 } 282 }
277 break; 283 break;
@@ -322,3 +328,3 @@ QValueList <OLed> Zaurus::ledList() const
322 328
323QValueList <OLedState> Zaurus::ledStateList ( OLed l ) const 329QValueList <OLedState> Zaurus::ledStateList( OLed l ) const
324{ 330{
@@ -331,3 +337,3 @@ QValueList <OLedState> Zaurus::ledStateList ( OLed l ) const
331 337
332OLedState Zaurus::ledState ( OLed which ) const 338OLedState Zaurus::ledState( OLed which ) const
333{ 339{
@@ -339,6 +345,10 @@ OLedState Zaurus::ledState ( OLed which ) const
339 345
340bool Zaurus::setLedState ( OLed which, OLedState st ) 346bool Zaurus::setLedState( OLed which, OLedState st )
341{ 347{
342 if (!m_embedix) // Currently not supported on non_embedix kernels 348 // Currently not supported on non_embedix kernels
349 if (!m_embedix)
350 {
351 qDebug( "Zaurus::setLedState: ODevice handling for non-embedix kernels not yet implemented" );
343 return false; 352 return false;
353 }
344 354
@@ -417,3 +427,3 @@ bool Zaurus::setDisplayBrightness( int bright )
417 int numberOfSteps = displayBrightnessResolution(); 427 int numberOfSteps = displayBrightnessResolution();
418 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK ); 428 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK );
419 if ( fd ) 429 if ( fd )
@@ -427,3 +437,3 @@ bool Zaurus::setDisplayBrightness( int bright )
427 { 437 {
428 qDebug( "ODevice handling for non-embedix kernels not yet implemented" ); 438 qDebug( "Zaurus::setDisplayBrightness: ODevice handling for non-embedix kernels not yet implemented" );
429 } 439 }
@@ -437,3 +447,3 @@ bool Zaurus::setDisplayStatus( bool on )
437 { 447 {
438 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK ); 448 int fd = ::open( SHARP_FL_IOCTL_DEVICE, O_WRONLY|O_NONBLOCK );
439 if ( fd ) 449 if ( fd )
@@ -447,6 +457,6 @@ bool Zaurus::setDisplayStatus( bool on )
447 { 457 {
448 qDebug( "ODevice handling for non-embedix kernels not yet implemented" ); 458 qDebug( "Zaurus::setDisplayStatus: ODevice handling for non-embedix kernels not yet implemented" );
449 } 459 }
450 return res; 460 return res;
451} 461}
452 462
@@ -491,2 +501,3 @@ Transformation Zaurus::rotation() const
491 switch ( d->m_model ) { 501 switch ( d->m_model ) {
502 case Model_Zaurus_SLC3000: // fallthrough
492 case Model_Zaurus_SLC7x0: 503 case Model_Zaurus_SLC7x0:
@@ -505,4 +516,5 @@ Transformation Zaurus::rotation() const
505 break; 516 break;
506 case Model_Zaurus_SLA300: 517 case Model_Zaurus_SL6000:
507 case Model_Zaurus_SLB600: 518 case Model_Zaurus_SLB600:
519 case Model_Zaurus_SLA300:
508 case Model_Zaurus_SL5500: 520 case Model_Zaurus_SL5500:
@@ -522,2 +534,3 @@ ODirection Zaurus::direction() const
522 switch ( d->m_model ) { 534 switch ( d->m_model ) {
535 case Model_Zaurus_SLC3000: // fallthrough
523 case Model_Zaurus_SLC7x0: 536 case Model_Zaurus_SLC7x0:
@@ -535,2 +548,3 @@ ODirection Zaurus::direction() const
535 break; 548 break;
549 case Model_Zaurus_SL6000:
536 case Model_Zaurus_SLA300: 550 case Model_Zaurus_SLA300:
@@ -539,3 +553,3 @@ ODirection Zaurus::direction() const
539 case Model_Zaurus_SL5000: 553 case Model_Zaurus_SL5000:
540 default: dir = d->m_direction; 554 default: dir = d->m_direction;
541 break; 555 break;
@@ -556,3 +570,3 @@ int Zaurus::displayBrightnessResolution() const
556 { 570 {
557 qDebug( "ODevice handling for non-embedix kernels not yet implemented" ); 571 qDebug( "Zaurus::displayBrightnessResolution: ODevice handling for non-embedix kernels not yet implemented" );
558 return 1; 572 return 1;
@@ -563,3 +577,3 @@ bool Zaurus::hasHingeSensor() const
563{ 577{
564 return d->m_model == Model_Zaurus_SLC7x0; 578 return d->m_model == Model_Zaurus_SLC7x0 || d->m_model == Model_Zaurus_SLC3000;
565} 579}
@@ -568,16 +582,9 @@ OHingeStatus Zaurus::readHingeSensor()
568{ 582{
569 int handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK); 583 if (m_embedix)
570 if (handle == -1)
571 {
572 qWarning("Zaurus::readHingeSensor() - failed (%s)", "unknown reason" ); //FIXME: use strerror
573 return CASE_UNKNOWN;
574 }
575 else
576 { 584 {
577 int retval = ::ioctl(handle, SHARP_IOCTL_GET_ROTATION); 585 int handle = ::open("/dev/apm_bios", O_RDWR|O_NONBLOCK);
578 ::close (handle); 586 if (handle == -1)
579 if ( retval == CASE_CLOSED || retval == CASE_PORTRAIT || retval == CASE_LANDSCAPE )
580 { 587 {
581 qDebug( "Zaurus::readHingeSensor() - result = %d", retval ); 588 qWarning("Zaurus::readHingeSensor() - failed (%s)", "unknown reason" ); //FIXME: use strerror
582 return static_cast<OHingeStatus>( retval ); 589 return CASE_UNKNOWN;
583 } 590 }
@@ -585,6 +592,21 @@ OHingeStatus Zaurus::readHingeSensor()
585 { 592 {
586 qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" ); 593 int retval = ::ioctl(handle, SHARP_IOCTL_GET_ROTATION);
587 return CASE_UNKNOWN; 594 ::close (handle);
595 if ( retval == CASE_CLOSED || retval == CASE_PORTRAIT || retval == CASE_LANDSCAPE )
596 {
597 qDebug( "Zaurus::readHingeSensor() - result = %d", retval );
598 return static_cast<OHingeStatus>( retval );
599 }
600 else
601 {
602 qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" );
603 return CASE_UNKNOWN;
604 }
588 } 605 }
589 } 606 }
607 else
608 {
609 qDebug( "Zaurus::readHingeSensor: ODevice handling for non-embedix kernels not yet implemented" );
610 return CASE_UNKNOWN;
611 }
590} 612}
diff --git a/libopie2/opiecore/device/odevice_zaurus.h b/libopie2/opiecore/device/odevice_zaurus.h
index 37ab876..ed9cf67 100644
--- a/libopie2/opiecore/device/odevice_zaurus.h
+++ b/libopie2/opiecore/device/odevice_zaurus.h
@@ -88,2 +88,3 @@ namespace Core {
88namespace Internal { 88namespace Internal {
89
89class Zaurus : public ODevice 90class Zaurus : public ODevice
@@ -118,5 +119,5 @@ class Zaurus : public ODevice
118 protected: 119 protected:
119 virtual void buzzer ( int snd ); 120 virtual void buzzer( int snd );
120 121
121 OLedState m_leds [1]; 122 OLedState m_leds[1];
122 bool m_embedix; 123 bool m_embedix;