-rw-r--r-- | libopie/odevice.cpp | 40 |
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 | |||
@@ -139,7 +139,9 @@ protected: | |||
139 | 139 | ||
140 | public: | 140 | public: |
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 | ||
@@ -1715,15 +1717,51 @@ void SIMpad::alarmSound ( ) | |||
1715 | } | 1717 | } |
1716 | 1718 | ||
1717 | 1719 | ||
1720 | bool 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 | |||
1718 | bool SIMpad::setSoftSuspend ( bool soft ) | 1738 | bool 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 | ||
1745 | bool 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 | |||
1725 | bool SIMpad::setDisplayBrightness ( int bright ) | 1762 | bool 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 | ||