summaryrefslogtreecommitdiff
path: root/src/openbsd/up-backend.c
diff options
context:
space:
mode:
authorLandry Breuil <landry@rhaalovely.net>2012-01-04 11:39:25 +0100
committerRichard Hughes <richard@hughsie.com>2012-01-06 13:40:50 +0000
commit3dfc0598f8ae99a44e3134359baeca8995247e0b (patch)
tree17c504b1c77fcb3d55c34582f1d5aaab8b890fcf /src/openbsd/up-backend.c
parent37ff0d4ddba334cded96973424dd790459b50be1 (diff)
openbsd: improve logic wrt sensor type
in case some sensors are in AMPHOUR/AMPS and others in WATTHOUR/WATTS, don't assume they are all the same type. As a benefit, shrinks the code a bit. Signed-off-by: Richard Hughes <richard@hughsie.com>
Diffstat (limited to 'src/openbsd/up-backend.c')
-rw-r--r--src/openbsd/up-backend.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/openbsd/up-backend.c b/src/openbsd/up-backend.c
index cf11a3b..4ff9c58 100644
--- a/src/openbsd/up-backend.c
+++ b/src/openbsd/up-backend.c
@@ -345,7 +345,7 @@ up_backend_update_battery_state(UpDevice* device)
static void
up_backend_update_acpibat_state(UpDevice* device, struct sensordev s)
{
- enum sensor_type type, typev = SENSOR_INTEGER;
+ enum sensor_type type;
int numt;
gdouble bst_volt, bst_rate, bif_lastfullcap, bst_cap, bif_lowcap;
/* gdouble bif_dvolt, bif_dcap, capacity; */
@@ -364,20 +364,16 @@ up_backend_update_acpibat_state(UpDevice* device, struct sensordev s)
if (sens.type == SENSOR_VOLTS_DC && !strcmp(sens.desc, "current voltage"))
bst_volt = sens.value / 1000000.0f;
if ((sens.type == SENSOR_AMPHOUR || sens.type == SENSOR_WATTHOUR) && !strcmp(sens.desc, "last full capacity")) {
- typev = sens.type;
- bif_lastfullcap = sens.value / 1000000.0f;
+ bif_lastfullcap = (sens.type == SENSOR_AMPHOUR ? bst_volt : 1) * sens.value / 1000000.0f;
}
if ((sens.type == SENSOR_AMPHOUR || sens.type == SENSOR_WATTHOUR) && !strcmp(sens.desc, "low capacity")) {
- typev = sens.type;
- bif_lowcap = sens.value / 1000000.0f;
+ bif_lowcap = (sens.type == SENSOR_AMPHOUR ? bst_volt : 1) * sens.value / 1000000.0f;
}
if ((sens.type == SENSOR_AMPHOUR || sens.type == SENSOR_WATTHOUR) && !strcmp(sens.desc, "remaining capacity")) {
- typev = sens.type;
- bst_cap = sens.value / 1000000.0f;
+ bst_cap = (sens.type == SENSOR_AMPHOUR ? bst_volt : 1) * sens.value / 1000000.0f;
}
if ((sens.type == SENSOR_AMPS || sens.type == SENSOR_WATTS) && !strcmp(sens.desc, "rate")) {
- typev = sens.type;
- bst_rate = sens.value / 1000000.0f;
+ bst_rate = (sens.type == SENSOR_AMPS ? bst_volt : 1) * sens.value / 1000000.0f;
}
/*
bif_dvolt = "voltage" = unused ?
@@ -388,12 +384,6 @@ up_backend_update_acpibat_state(UpDevice* device, struct sensordev s)
}
}
}
- if (typev == SENSOR_AMPHOUR || typev == SENSOR_AMPS) {
- bst_cap *= bst_volt;
- bif_lowcap *= bst_volt;
- bif_lastfullcap *= bst_volt;
- bst_rate *= bst_volt;
- }
g_object_set (device,
"energy", bst_cap,
"energy-full", bif_lastfullcap,