summaryrefslogtreecommitdiff
path: root/libopie
authormickeyl <mickeyl>2003-12-30 02:17:25 (UTC)
committer mickeyl <mickeyl>2003-12-30 02:17:25 (UTC)
commitb53d9bc11a1e35e52f2fda4586ba8a53f8e0b48a (patch) (side-by-side diff)
tree98db0a0053c53e98ba758773f80ad8e14c9564c9 /libopie
parentb636d3d91e8456b22bc450b3d7f3a862b7f615a9 (diff)
downloadopie-b53d9bc11a1e35e52f2fda4586ba8a53f8e0b48a.zip
opie-b53d9bc11a1e35e52f2fda4586ba8a53f8e0b48a.tar.gz
opie-b53d9bc11a1e35e52f2fda4586ba8a53f8e0b48a.tar.bz2
fix a problem in the c7x0 backlight handling...
Bah! Got confused by the input interval for ODevice::setDisplayBrightness() (once) again - it has been ridiculous to scale that down from [0-255] to the actual interval since the day we invented ODevice::displayBrightnessResolution(). I'm going to remove that antique cruft soon.
Diffstat (limited to 'libopie') (more/less context) (show whitespace changes)
-rw-r--r--libopie/odevice.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index bc09e92..82a0099 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -1955,40 +1955,42 @@ bool Zaurus::setSoftSuspend ( bool soft )
::close ( fd );
}
else
perror ( "/dev/apm_bios or /dev/misc/apm_bios" );
return res;
}
bool Zaurus::setDisplayBrightness ( int bright )
{
+ //qDebug( "Zaurus::setDisplayBrightness( %d )", bright );
bool res = false;
int fd;
if ( bright > 255 ) bright = 255;
if ( bright < 0 ) bright = 0;
if ( m_embedix )
{
if ( d->m_model == Model_Zaurus_SLC7x0 )
{
+ //qDebug( "using special treatment for devices with the corgi backlight interface" );
// special treatment for devices with the corgi backlight interface
if (( fd = ::open ( "/proc/driver/fl/corgi-bl", O_WRONLY )) >= 0 )
{
- if ( bright > 0x11 ) bright = 0x11;
+ int value = ( bright == 1 ) ? 1 : bright * ( 17.0 / 255.0 );
char writeCommand[100];
- const int count = sprintf( writeCommand, "0x%x\n", bright );
+ const int count = sprintf( writeCommand, "0x%x\n", value );
res = ( ::write ( fd, writeCommand, count ) != -1 );
::close ( fd );
}
return res;
}
else
{
// standard treatment for devices with the dumb embedix frontlight interface
if (( fd = ::open ( "/dev/fl", O_WRONLY )) >= 0 ) {
int bl = ( bright * 4 + 127 ) / 255; // only 4 steps on zaurus
if ( bright && !bl )
bl = 1;