summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 71ed9e4..9373ef9 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -1484,24 +1484,37 @@ int iPAQ::readLightSensor ( )
1484int iPAQ::lightSensorResolution ( ) const 1484int iPAQ::lightSensorResolution ( ) const
1485{ 1485{
1486 return 256; 1486 return 256;
1487} 1487}
1488 1488
1489/************************************************** 1489/**************************************************
1490 * 1490 *
1491 * Zaurus 1491 * Zaurus
1492 * 1492 *
1493 **************************************************/ 1493 **************************************************/
1494 1494
1495// Check whether this device is the sharp zaurus.. 1495// Check whether this device is the sharp zaurus..
1496// FIXME This gets unnecessary complicated. We should think about splitting the Zaurus
1497// class up into individual classes. We need three classes
1498//
1499// Zaurus-Collie (SA-model w/ 320x240 lcd, for SL5500 and SL5000)
1500// Zaurus-Poodle (PXA-model w/ 320x240 lcd, for SL5600)
1501// Zaurus-Corgi (PXA-model w/ 640x480 lcd, for C700, C750, C760, and C860)
1502//
1503// Only question right now is: Do we really need to do it? Because as soon
1504// as the OpenZaurus kernel is ready, there will be a unified interface for all
1505// Zaurus models (concerning apm, backlight, buttons, etc.)
1506//
1507// Comments? - mickeyl.
1508
1496bool Zaurus::isZaurus() 1509bool Zaurus::isZaurus()
1497{ 1510{
1498 1511
1499 // If the special devices by embedix exist, it is quite simple: it is a Zaurus ! 1512 // If the special devices by embedix exist, it is quite simple: it is a Zaurus !
1500 if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" ) ){ 1513 if ( QFile::exists ( "/dev/sharp_buz" ) || QFile::exists ( "/dev/sharp_led" ) ){
1501 return true; 1514 return true;
1502 } 1515 }
1503 1516
1504 // On non-embedix kernels, we have to look closer. 1517 // On non-embedix kernels, we have to look closer.
1505 bool is_zaurus = false; 1518 bool is_zaurus = false;
1506 QFile f ( "/proc/cpuinfo" ); 1519 QFile f ( "/proc/cpuinfo" );
1507 if ( f. open ( IO_ReadOnly ) ) { 1520 if ( f. open ( IO_ReadOnly ) ) {
@@ -1614,24 +1627,25 @@ void Zaurus::init ( )
1614 } 1627 }
1615 1628
1616 bool flipstate = false; 1629 bool flipstate = false;
1617 switch ( d-> m_model ) { 1630 switch ( d-> m_model ) {
1618 case Model_Zaurus_SLA300: 1631 case Model_Zaurus_SLA300:
1619 d-> m_rotation = Rot0; 1632 d-> m_rotation = Rot0;
1620 break; 1633 break;
1621 case Model_Zaurus_SLC7x0: 1634 case Model_Zaurus_SLC7x0:
1622 // Note: need to 1) set flipstate based on physical screen orientation 1635 // Note: need to 1) set flipstate based on physical screen orientation
1623 // and 2) check to see if the user overrode the rotation direction 1636 // and 2) check to see if the user overrode the rotation direction
1624 // using appearance, and if so, remove that item from the Config to 1637 // using appearance, and if so, remove that item from the Config to
1625 // ensure the rotate applet flips us back to the previous state. 1638 // ensure the rotate applet flips us back to the previous state.
1639 // treke said he has patches for detecting the phys. so where are they, treke? -mickeyl.
1626 if ( flipstate ) { 1640 if ( flipstate ) {
1627 // 480x640 1641 // 480x640
1628 d-> m_rotation = Rot0; 1642 d-> m_rotation = Rot0;
1629 d-> m_direction = CW; 1643 d-> m_direction = CW;
1630 } else { 1644 } else {
1631 // 640x480 1645 // 640x480
1632 d-> m_rotation = Rot270; 1646 d-> m_rotation = Rot270;
1633 d-> m_direction = CCW; 1647 d-> m_direction = CCW;
1634 } 1648 }
1635 break; 1649 break;
1636 case Model_Zaurus_SLB600: 1650 case Model_Zaurus_SLB600:
1637 case Model_Zaurus_SL5500: 1651 case Model_Zaurus_SL5500:
@@ -1927,24 +1941,27 @@ bool Zaurus::setSoftSuspend ( bool soft )
1927 1941
1928 ::close ( fd ); 1942 ::close ( fd );
1929 } 1943 }
1930 else 1944 else
1931 perror ( "/dev/apm_bios or /dev/misc/apm_bios" ); 1945 perror ( "/dev/apm_bios or /dev/misc/apm_bios" );
1932 1946
1933 return res; 1947 return res;
1934} 1948}
1935 1949
1936 1950
1937bool Zaurus::setDisplayBrightness ( int bright ) 1951bool Zaurus::setDisplayBrightness ( int bright )
1938{ 1952{
1953// FIXME The C7x0 have a proc-interface (/proc/drivers/corgi-bl) which
1954// is nice to use. Currently it exposes 16+1 levels. Implement this!
1955// (or wait for kergoth unifying the interfaces in the OpenZaurus kernel.)
1939 bool res = false; 1956 bool res = false;
1940 int fd; 1957 int fd;
1941 1958
1942 if ( bright > 255 ) 1959 if ( bright > 255 )
1943 bright = 255; 1960 bright = 255;
1944 if ( bright < 0 ) 1961 if ( bright < 0 )
1945 bright = 0; 1962 bright = 0;
1946 1963
1947 if (m_embedix) { 1964 if (m_embedix) {
1948 if (( fd = ::open ( "/dev/fl", O_WRONLY )) >= 0 ) { 1965 if (( fd = ::open ( "/dev/fl", O_WRONLY )) >= 0 ) {
1949 int bl = ( bright * 4 + 127 ) / 255; // only 4 steps on zaurus 1966 int bl = ( bright * 4 + 127 ) / 255; // only 4 steps on zaurus
1950 if ( bright && !bl ) 1967 if ( bright && !bl )