From 19516645fd679ce8c6779722bb831a42d0b3ddfe Mon Sep 17 00:00:00 2001 From: Creamy Goodness Date: Tue, 14 Sep 2010 21:43:40 -0600 Subject: [PATCH] added new variables battery_volts and battery_temp --- src/conky.c | 6 ++++++ src/conky.h | 4 +++- src/core.c | 22 ++++++++++++++++++++++ src/linux.c | 17 +++++++++++++++++ src/text_object.h | 2 ++ 5 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/conky.c b/src/conky.c index 02473ae..bade353 100644 --- a/src/conky.c +++ b/src/conky.c @@ -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)); } diff --git a/src/conky.h b/src/conky.h index 30e73a0..b717e38 100644 --- a/src/conky.h +++ b/src/conky.h @@ -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 diff --git a/src/core.c b/src/core.c index 867121b..009cb27 100644 --- a/src/core.c +++ b/src/core.c @@ -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: diff --git a/src/linux.c b/src/linux.c index 9020b93..49e4768 100644 --- a/src/linux.c +++ b/src/linux.c @@ -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; } diff --git a/src/text_object.h b/src/text_object.h index 52d19e7..4581c91 100644 --- a/src/text_object.h +++ b/src/text_object.h @@ -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, -- 1.7.9.5