summaryrefslogtreecommitdiff
path: root/libopie2
Unidiff
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp
index 7302d2c..b7f3104 100644
--- a/libopie2/opiecore/device/odevice_zaurus.cpp
+++ b/libopie2/opiecore/device/odevice_zaurus.cpp
@@ -541,44 +541,55 @@ bool Zaurus::setDisplayStatus( bool on )
541 } 541 }
542 } 542 }
543 return res; 543 return res;
544} 544}
545 545
546Transformation Zaurus::rotation() const 546Transformation Zaurus::rotation() const
547{ 547{
548 qDebug( "Zaurus::rotation()" ); 548 qDebug( "Zaurus::rotation()" );
549 Transformation rot; 549 Transformation rot;
550 550
551 switch ( d->m_model ) { 551 switch ( d->m_model ) {
552 case Model_Zaurus_SLC3000: // fallthrough 552 case Model_Zaurus_SLC3000: // fallthrough
553 case Model_Zaurus_SLC1000: // fallthrough 553 case Model_Zaurus_SLC1000:
554 {
555 OHingeStatus hs = readHingeSensor();
556 qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs );
557 if ( hs == CASE_PORTRAIT ) rot = Rot0;
558 else if ( hs == CASE_UNKNOWN ) rot = Rot270;
559 else rot = Rot270;
560 }
561 break;
562
563 // SLC7x0 needs a special case here, because we were able to set the W100
564 // hardware default rotation on kernel 2.6 to Rot0
554 case Model_Zaurus_SLC7x0: 565 case Model_Zaurus_SLC7x0:
555 { 566 {
556 OHingeStatus hs = readHingeSensor(); 567 OHingeStatus hs = readHingeSensor();
557 qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs ); 568 qDebug( "Zaurus::rotation() - hinge sensor = %d", (int) hs );
558 569
559 if ( m_embedix ) 570 if ( m_embedix )
560 { 571 {
561 if ( hs == CASE_PORTRAIT ) rot = Rot0; 572 if ( hs == CASE_PORTRAIT ) rot = Rot0;
562 else if ( hs == CASE_UNKNOWN ) rot = Rot0; 573 else if ( hs == CASE_UNKNOWN ) rot = Rot270;
563 else rot = Rot270; 574 else rot = Rot270;
564 } 575 }
565 else 576 else
566 { 577 {
567 if ( hs == CASE_PORTRAIT ) rot = Rot90; 578 if ( hs == CASE_PORTRAIT ) rot = Rot90;
568 else if ( hs == CASE_UNKNOWN ) rot = Rot0; 579 else if ( hs == CASE_UNKNOWN ) rot = Rot0;
569 else rot = Rot0; 580 else rot = Rot0;
570 } 581 }
571 } 582 }
572 break; 583 break;
573 case Model_Zaurus_SL6000: 584 case Model_Zaurus_SL6000:
574 case Model_Zaurus_SLB600: 585 case Model_Zaurus_SLB600:
575 case Model_Zaurus_SLA300: 586 case Model_Zaurus_SLA300:
576 case Model_Zaurus_SL5500: 587 case Model_Zaurus_SL5500:
577 case Model_Zaurus_SL5000: 588 case Model_Zaurus_SL5000:
578 default: 589 default:
579 rot = d->m_rotation; 590 rot = d->m_rotation;
580 break; 591 break;
581 } 592 }
582 593
583 return rot; 594 return rot;
584} 595}