From 767c131b1d84f492c7de78c16402bfcccd6e61ec Mon Sep 17 00:00:00 2001 From: Maarten ter Huurne Date: Mon, 12 Jul 2010 02:03:50 +0200 Subject: [PATCH] Adapted backlight setting to new kernel interface. Updated path to use /sys instead of /proc/jz. Avoid leading zeroes, since sysfs interprets those as octal numbers. --- src/gmenu2x.cpp | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/gmenu2x.cpp b/src/gmenu2x.cpp index bf61437..d78b4ca 100644 --- a/src/gmenu2x.cpp +++ b/src/gmenu2x.cpp @@ -107,7 +107,8 @@ void GMenu2X::gp2x_init() { batteryHandle = fopen("/sys/class/power_supply/battery/capacity", "r"); usbHandle = fopen("/sys/class/power_supply/usb/online", "r"); acHandle = fopen("/sys/class/power_supply/ac/online", "r"); - backlightHandle = fopen("/proc/jz/lcd_backlight","w+"); + backlightHandle = + fopen("/sys/class/backlight/pwm-backlight/brightness", "w+"); #endif } @@ -738,33 +739,21 @@ void GMenu2X::ledOff() { void GMenu2X::setBacklight(int val) { - if ((val >= 0) && (val <=100)) - { - if (backlightHandle) - { - stringstream valsstr; - string valstr = ""; - if (val < 10) - valsstr << "00"; - else if (val < 100) - valsstr << "0" ; - valsstr << val; - valsstr >> valstr; - fprintf(backlightHandle,"%s",valstr.c_str()); - rewind(backlightHandle); - } + if (backlightHandle) { + fprintf(backlightHandle, "%d", (val * 255) / 100); + fflush(backlightHandle); + rewind(backlightHandle); } } int GMenu2X::getBackLight() { - int val = 100; - if (backlightHandle) - { - char valcstring[4]; - fscanf(backlightHandle, "%s", &valcstring[0]); + int val = 255; + if (backlightHandle) { + fscanf(backlightHandle, "%d", &val); rewind(backlightHandle); - val = atoi(valcstring); + val = (val * 100) / 255; + if (val < 0) val = 0; else if (val > 100) val = 100; } return val; }