small bit of style cleanup; added additional checks to see if a battery was damaged or it is just an empty slot

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41319 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-05-04 23:12:25 +00:00
parent f79510c141
commit 042aefc4ea
3 changed files with 27 additions and 10 deletions
+10 -1
View File
@@ -1,8 +1,14 @@
/*
* Copyright 2004-2011, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef POWER_MANAGMENT_H #ifndef POWER_MANAGMENT_H
#define POWER_MANAGMENT_H #define POWER_MANAGMENT_H
#include <Drivers.h> #include <Drivers.h>
// io controls // io controls
enum { enum {
// ioctl response with kMagicFreqID // ioctl response with kMagicFreqID
@@ -25,9 +31,9 @@ enum {
GET_EXTENDED_BATTERY_INFO, GET_EXTENDED_BATTERY_INFO,
WATCH_BATTERY, WATCH_BATTERY,
STOP_WATCHING_BATTERY STOP_WATCHING_BATTERY
}; };
// CPU Frequence: // CPU Frequence:
// magic id returned by IDENTIFY_DEVICE // magic id returned by IDENTIFY_DEVICE
const uint32 kMagicFreqID = 48921; const uint32 kMagicFreqID = 48921;
@@ -35,6 +41,7 @@ const uint32 kMagicFreqID = 48921;
#define MAX_CPU_FREQUENCY_STATES 10 #define MAX_CPU_FREQUENCY_STATES 10
typedef struct { typedef struct {
uint16 frequency; // [Mhz] uint16 frequency; // [Mhz]
uint16 volts; uint16 volts;
@@ -47,6 +54,8 @@ typedef struct {
// magic id returned by IDENTIFY_DEVICE // magic id returned by IDENTIFY_DEVICE
const uint32 kMagicACPIBatteryID = 17822; const uint32 kMagicACPIBatteryID = 17822;
// Our known battery states
#define BATTERY_DISCHARGING 0x01 #define BATTERY_DISCHARGING 0x01
#define BATTERY_CHARGING 0x02 #define BATTERY_CHARGING 0x02
#define BATTERY_CRITICAL_STATE 0x04 #define BATTERY_CRITICAL_STATE 0x04
@@ -75,7 +75,8 @@ ReadBatteryStatus(battery_driver_cookie* cookie, acpi_battery_info* batteryStatu
? pointer->data.integer : -1; ? pointer->data.integer : -1;
/* If key values are all < 0, it is likely that the battery slot is empty /* If key values are all < 0, it is likely that the battery slot is empty
or the battery is damaged. Set BATTERY_CRITICAL_STATE */ * or the battery is damaged. Set BATTERY_CRITICAL_STATE
*/
if (batteryStatus->voltage < 0 if (batteryStatus->voltage < 0
&& batteryStatus->current_rate < 0 && batteryStatus->current_rate < 0
&& batteryStatus->capacity < 0) { && batteryStatus->capacity < 0) {
@@ -88,6 +89,7 @@ exit:
return status; return status;
} }
status_t status_t
ReadBatteryInfo(battery_driver_cookie* cookie, ReadBatteryInfo(battery_driver_cookie* cookie,
acpi_extended_battery_info* batteryInfo) acpi_extended_battery_info* batteryInfo)
+7 -1
View File
@@ -136,8 +136,14 @@ BatteryInfoView::_FillStringList()
fontString->string = B_TRANSLATE("Battery charging"); fontString->string = B_TRANSLATE("Battery charging");
else if (fBatteryInfo.state & BATTERY_DISCHARGING) else if (fBatteryInfo.state & BATTERY_DISCHARGING)
fontString->string = B_TRANSLATE("Battery discharging"); fontString->string = B_TRANSLATE("Battery discharging");
else if (fBatteryInfo.state & BATTERY_CRITICAL_STATE) else if (fBatteryInfo.state & BATTERY_CRITICAL_STATE
&& strcmp(fBatteryExtendedInfo.model_number, "")
&& strcmp(fBatteryExtendedInfo.serial_number, "")
&& strcmp(fBatteryExtendedInfo.type, "")
&& strcmp(fBatteryExtendedInfo.oem_info, ""))
fontString->string = B_TRANSLATE("Empty battery slot"); fontString->string = B_TRANSLATE("Empty battery slot");
else if (fBatteryInfo.state & BATTERY_CRITICAL_STATE)
fontString->string = B_TRANSLATE("Damaged battery");
else else
fontString->string = B_TRANSLATE("Battery unused"); fontString->string = B_TRANSLATE("Battery unused");