summaryrefslogtreecommitdiff
path: root/community/lxpanel/battery.patch
blob: 5d701ea6d861cf5ec1295dba364d0bbf0f5f8cba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
diff --git plugins/batt/batt_sys.c plugins/batt/batt_sys.c
index 54ff678..1eebab5 100644
--- a/src/plugins/batt/batt_sys.c
+++ b/src/plugins/batt/batt_sys.c
@@ -35,15 +35,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-battery* battery_new() {
-    static int battery_num = 1;
-    battery * b = g_new0 ( battery, 1 );
-    battery_reset(b);
-    b->battery_num = battery_num;
-    battery_num++;
-    return b;
-}
-
 void battery_reset( battery * b) {
     b->type_battery = TRUE;
     b->capacity_unit = "mAh";
@@ -58,6 +49,15 @@ void battery_reset( battery * b) {
     b->state = NULL;
 }
 
+battery* battery_new() {
+    static int battery_num = 1;
+    battery * b = g_new0 ( battery, 1 );
+    battery_reset(b);
+    b->battery_num = battery_num;
+    battery_num++;
+    return b;
+}
+
 static gchar* parse_info_file(char *filename)
 {
     char *buf = NULL;
@@ -194,7 +194,7 @@ void battery_update( battery *b ) {
     
     /* convert energy values (in mWh) to charge values (in mAh) if needed and possible */
     if (b->last_capacity_unit != -1 && b->last_capacity == -1) {
-	if (b->voltage != -1) {
+	if (b->voltage > 0) {
 	    b->last_capacity = b->last_capacity_unit * 1000 / b->voltage;
 	} else {
 	    b->last_capacity = b->last_capacity_unit;
@@ -202,7 +202,7 @@ void battery_update( battery *b ) {
 	}
     }
     if (b->design_capacity_unit != -1 && b->design_capacity == -1) {
-	if (b->voltage != -1) {
+	if (b->voltage > 0) {
 	    b->design_capacity = b->design_capacity_unit * 1000 / b->voltage;
 	} else {
 	    b->design_capacity = b->design_capacity_unit;
@@ -210,7 +210,7 @@ void battery_update( battery *b ) {
 	}
     }
     if (b->remaining_energy != -1 && b->remaining_capacity == -1) {
-	if (b->voltage != -1) {
+	if (b->voltage > 0) {
 	    b->remaining_capacity = b->remaining_energy * 1000 / b->voltage;
 	    b->present_rate = b->present_rate * 1000 / b->voltage;
 	} else {
@@ -220,7 +220,7 @@ void battery_update( battery *b ) {
     if (b->last_capacity < MIN_CAPACITY)
 	b->percentage = 0;
     else
-	b->percentage = ((float) b->remaining_energy * 100.0) / (float) b->last_capacity_unit;
+	b->percentage = (float) b->remaining_capacity * 100 / b->last_capacity;
 	    
     if (b->percentage > 100)
 	b->percentage = 100;