summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-05-23 13:28:27 (UTC)
committer mickeyl <mickeyl>2003-05-23 13:28:27 (UTC)
commitf6d7ed30f034b318d77f36f81b0aa4588cea63fb (patch) (unidiff)
tree8083be660da5876e555686475dd8f5f8a024d7bf
parentcbacd38e4b8e0e706fa43cd3e88041217c6fdaf9 (diff)
downloadopie-f6d7ed30f034b318d77f36f81b0aa4588cea63fb.zip
opie-f6d7ed30f034b318d77f36f81b0aa4588cea63fb.tar.gz
opie-f6d7ed30f034b318d77f36f81b0aa4588cea63fb.tar.bz2
more handling of SIMpad specifica
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/odevice.cpp40
1 files changed, 39 insertions, 1 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 103104f..02f13b5 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -136,13 +136,15 @@ class SIMpad : public ODevice, public QWSServer::KeyboardFilter {
136protected: 136protected:
137 virtual void init ( ); 137 virtual void init ( );
138 virtual void initButtons ( ); 138 virtual void initButtons ( );
139 139
140public: 140public:
141 virtual bool setSoftSuspend ( bool soft ); 141 virtual bool setSoftSuspend ( bool soft );
142 virtual bool suspend();
142 143
144 virtual bool setDisplayStatus( bool on );
143 virtual bool setDisplayBrightness ( int b ); 145 virtual bool setDisplayBrightness ( int b );
144 virtual int displayBrightnessResolution ( ) const; 146 virtual int displayBrightnessResolution ( ) const;
145 147
146 virtual void alarmSound ( ); 148 virtual void alarmSound ( );
147 149
148 virtual QValueList <OLed> ledList ( ) const; 150 virtual QValueList <OLed> ledList ( ) const;
@@ -1712,21 +1714,57 @@ void SIMpad::alarmSound ( )
1712 ::close ( fd ); 1714 ::close ( fd );
1713 } 1715 }
1714#endif 1716#endif
1715} 1717}
1716 1718
1717 1719
1720bool SIMpad::suspend ( ) // Must override because SIMpad does NOT have apm
1721{
1722 qDebug( "ODevice for SIMpad: suspend()" );
1723 if ( !isQWS( ) ) // only qwsserver is allowed to suspend
1724 return false;
1725
1726 bool res = false;
1727
1728 struct timeval tvs, tvn;
1729 ::gettimeofday ( &tvs, 0 );
1730
1731 ::sync ( ); // flush fs caches
1732 res = ( ::system ( "echo > /proc/sys/pm/suspend" ) == 0 ); //TODO make better :)
1733
1734 return res;
1735}
1736
1737
1718bool SIMpad::setSoftSuspend ( bool soft ) 1738bool SIMpad::setSoftSuspend ( bool soft )
1719{ 1739{
1720 //TODO 1740 qDebug( "ODevice for SIMpad: UNHANDLED setSoftSuspend(%s)", soft? "on" : "off" );
1721 return false; 1741 return false;
1722} 1742}
1723 1743
1724 1744
1745bool SIMpad::setDisplayStatus ( bool on )
1746{
1747 qDebug( "ODevice for SIMpad: setDisplayStatus(%s)", on? "on" : "off" );
1748
1749 bool res = false;
1750 int fd;
1751
1752 QString cmdline = QString().sprintf( "echo %s > /proc/cs3", on ? "0xd41a" : "0xd40a" ); //TODO make better :)
1753
1754 if (( fd = ::open ( "/dev/fb0", O_RDWR )) >= 0 ) {
1755 res = ( ::system( (const char*) cmdline ) == 0 );
1756 ::close ( fd );
1757 }
1758 return res;
1759}
1760
1761
1725bool SIMpad::setDisplayBrightness ( int bright ) 1762bool SIMpad::setDisplayBrightness ( int bright )
1726{ 1763{
1764 qDebug( "ODevice for SIMpad: setDisplayBrightness( %d )", bright );
1727 bool res = false; 1765 bool res = false;
1728 int fd; 1766 int fd;
1729 1767
1730 if ( bright > 255 ) 1768 if ( bright > 255 )
1731 bright = 255; 1769 bright = 255;
1732 if ( bright < 0 ) 1770 if ( bright < 0 )