added new variables battery_volts and battery_temp
authorCreamy Goodness <lance.colton@gmail.com>
Wed, 15 Sep 2010 03:43:40 +0000 (21:43 -0600)
committerCreamy Goodness <lance.colton@gmail.com>
Sat, 18 Dec 2010 21:43:28 +0000 (14:43 -0700)
src/conky.c
src/conky.h
src/core.c
src/linux.c
src/text_object.h

index 02473ae..bade353 100644 (file)
@@ -879,6 +879,12 @@ void generate_text_internal(char *p, int p_max_size,
                        OBJ(battery_time) {
                                get_battery_stuff(p, p_max_size, obj->data.s, BATTERY_TIME);
                        }
+                       OBJ(battery_volts) {
+                               get_battery_stuff(p, p_max_size, obj->data.s, BATTERY_VOLTS);
+                       }
+                       OBJ(battery_temp) {
+                               get_battery_stuff(p, p_max_size, obj->data.s, BATTERY_TEMP);
+                       }
                        OBJ(battery_percent) {
                                percent_print(p, p_max_size, get_battery_perct(obj->data.s));
                        }
index 30e73a0..b717e38 100644 (file)
@@ -201,7 +201,9 @@ char **get_templates(void);
  * needed by conky.c, linux.c and freebsd.c */
 enum {
        BATTERY_STATUS,
-       BATTERY_TIME
+       BATTERY_TIME,
+       BATTERY_VOLTS,
+       BATTERY_TEMP
 };
 
 /* if_up strictness selector
index 867121b..009cb27 100644 (file)
@@ -285,6 +285,22 @@ struct text_object *construct_text_object(const char *s, const char *arg, long
                        strcpy(bat, "bq27200-0");
                }
                obj->data.s = strndup(bat, text_buffer_size);
+       END OBJ(battery_volts, 0)
+               char bat[64];
+               if (arg) {
+                       sscanf(arg, "%63s", bat);
+               } else {
+                       strcpy(bat, "bq27200-0");
+               }
+               obj->data.s = strndup(bat, text_buffer_size);
+       END OBJ(battery_temp, 0)
+               char bat[64];
+               if (arg) {
+                       sscanf(arg, "%63s", bat);
+               } else {
+                       strcpy(bat, "bq27200-0");
+               }
+               obj->data.s = strndup(bat, text_buffer_size);
 #endif /* !__OpenBSD__ */
 
 #if defined(__linux__)
@@ -1652,6 +1668,12 @@ void free_text_objects(struct text_object *root, int internal)
                        case OBJ_battery_time:
                                free(data.s);
                                break;
+                       case OBJ_battery_volts:
+                               free(data.s);
+                               break;
+                       case OBJ_battery_temp:
+                               free(data.s);
+                               break;
 #endif /* !__OpenBSD__ */
                        case OBJ_execpi:
                        case OBJ_execi:
index 9020b93..49e4768 100644 (file)
@@ -1578,6 +1578,12 @@ static char batteries[MAX_BATTERY_COUNT][32];
 static int acpi_last_full[MAX_BATTERY_COUNT];
 static int acpi_design_capacity[MAX_BATTERY_COUNT];
 
+//eg 4100
+static int last_battery_volts[MAX_BATTERY_COUNT];
+
+//eg 35
+static int last_battery_temp[MAX_BATTERY_COUNT];
+
 /* e.g. "charging 75%" */
 static char last_battery_str[MAX_BATTERY_COUNT][64];
 /* e.g. "3h 15m" */
@@ -1647,6 +1653,8 @@ void get_battery_stuff(char *buffer, unsigned int n, const char *bat, int item)
 
        memset(last_battery_str[idx], 0, sizeof(last_battery_str[idx]));
        memset(last_battery_time_str[idx], 0, sizeof(last_battery_time_str[idx]));
+       //memset(last_battery_volts[idx], 0, sizeof(last_battery_volts[idx]));
+       //memset(last_battery_temp[idx], 0, sizeof(last_battery_temp[idx]));
 
        /* first try SYSFS if that fails try ACPI */
 
@@ -1700,6 +1708,9 @@ void get_battery_stuff(char *buffer, unsigned int n, const char *bat, int item)
 
                fclose(sysfs_bat_fp[idx]);
                sysfs_bat_fp[idx] = NULL;
+               
+               last_battery_volts[idx] = voltage;
+               last_battery_temp[idx] = temp;
 
                /* Hellf[i]re notes that remaining capacity can exceed acpi_last_full */
                //lance notes, we don't care
@@ -1951,6 +1962,12 @@ void set_return_value(char *buffer, unsigned int n, int item, int idx)
                case BATTERY_TIME:
                        snprintf(buffer, n, "%s", last_battery_time_str[idx]);
                        break;
+               case BATTERY_VOLTS:
+                       snprintf(buffer, n, "%i", last_battery_volts[idx]); // voltage
+                       break;
+               case BATTERY_TEMP:
+                       snprintf(buffer, n, "%i", last_battery_temp[idx]); // temperature
+                       break;
                default:
                        break;
        }
index 52d19e7..4581c91 100644 (file)
@@ -44,6 +44,8 @@ enum text_object_type {
        OBJ_acpitemp,
        OBJ_battery,
        OBJ_battery_time,
+       OBJ_battery_temp,
+       OBJ_battery_volts,
        OBJ_battery_percent,
        OBJ_battery_bar,
        OBJ_battery_short,