[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdenonbeta/kbatterymonitor/linux-acpi
From:       Chris Howells <howells () kde ! org>
Date:       2004-11-01 1:42:19
Message-ID: 20041101014219.43A1A16B10 () office ! kde ! org
[Download RAW message or body]

CVS commit by howells: 

fix charging detection


  M +14 -14    linux_acpi.cpp   1.8


--- kdenonbeta/kbatterymonitor/linux-acpi/linux_acpi.cpp  #1.7:1.8
@@ -66,10 +66,8 @@ bool LinuxACPI::init()
         QString batteryBase = "/proc/acpi/battery/";
         QStringList batteries = findItems(batteryBase);
-        // FIXME support multiple batteries
         
         mBatteryStateFile = batteryBase + batteries[0] + "/state";
         mBatteryInfoFile = batteryBase + batteries[0] + "/info";
         readStaticBatteryInformation(mBatteryInfoFile); 
-        readDynamicBatteryInformation(mBatteryStateFile);
 
         return true;
@@ -89,5 +87,5 @@ void LinuxACPI::readDynamicBatteryInform
         mRemainingCapacity = parseBatteryNumbers(batteryStatus, "remaining capacity");
         mPresentRate = parseBatteryNumbers(batteryStatus, "present rate");
-        mCharging = parseCharging(battery);
+        mCharging = parseCharging(batteryStatus);
 }
 
@@ -107,4 +105,5 @@ batteryStatusStruct LinuxACPI::batterySt
         }
 
+        kdDebug() << "READING THE INFO" << endl;
         readDynamicBatteryInformation(mBatteryStateFile);
 
@@ -210,25 +209,26 @@ long LinuxACPI::parseBatteryNumbers(QStr
 bool LinuxACPI::parseCharging(QStringList file)
 {
-        bool charging = false;
+        kdDebug() << "parse charging" << endl;
+        bool charging = true;
         for (QStringList::Iterator it = file.begin(); it != file.end(); ++it)
         {
-                QRegExp exp(""); // FIX this shit
-                if ((*it).contains("charging") > 0)
+                kdDebug() << "Looking at line " << *it << endl;
+                if ((*it).contains("discharging") > 0)
                 {
-                        charging = true;
+                        kdDebug() << "found discharging" << endl;
+                        charging = false;
                 }
         }
         kdDebug() << "Charging: " << (charging ? "true" : "false") << endl;
-        return mCharging;
+        return charging;
 }
 
 int LinuxACPI::batteryTime()
 {
-        if (!mCharging && (mPresentRate > 0))
+        if (mPresentRate == 0) // we are on AC and fully charged
         {
-                kdDebug() << "USING THE NOT CHARGING EQUATION" << endl;
-                return (double)mRemainingCapacity / mPresentRate * 60;
+                return -1;
         }
-        else if (mCharging && (mPresentRate > 0))
+        if (mCharging)
         {
                 kdDebug() << "USING THE CHARGING EQUATION" << endl;
@@ -237,7 +237,7 @@ int LinuxACPI::batteryTime()
         else
         {
-                return -1; // we are just on AC so nothing to estimate
+                kdDebug() << "USING THE NOT CHARGING EQUATION" << endl;
+                return (double)mRemainingCapacity / mPresentRate * 60;
         }
-                
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic