-rw-r--r-- | libopie2/opiecore/device/odevice.h | 3 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.cpp | 96 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_zaurus.h | 5 |
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 | ||
323 | QValueList <OLedState> Zaurus::ledStateList ( OLed l ) const | 329 | QValueList <OLedState> Zaurus::ledStateList( OLed l ) const |
324 | { | 330 | { |
@@ -331,3 +337,3 @@ QValueList <OLedState> Zaurus::ledStateList ( OLed l ) const | |||
331 | 337 | ||
332 | OLedState Zaurus::ledState ( OLed which ) const | 338 | OLedState Zaurus::ledState( OLed which ) const |
333 | { | 339 | { |
@@ -339,6 +345,10 @@ OLedState Zaurus::ledState ( OLed which ) const | |||
339 | 345 | ||
340 | bool Zaurus::setLedState ( OLed which, OLedState st ) | 346 | bool 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 { | |||
88 | namespace Internal { | 88 | namespace Internal { |
89 | |||
89 | class Zaurus : public ODevice | 90 | class 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; |