From 845932214067b9137c7e2cf85be692673857ad4d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Orsini Date: Sat, 16 Jul 2011 22:05:23 +0000 Subject: [PATCH] lmsensor init/cleanup moved from main.c to lmsensor.c and called in psensor.c --- src/lib/lmsensor.c | 42 ++++++++++++++++++++++++++++-------------- src/lib/lmsensor.h | 4 ++-- src/lib/psensor.c | 10 ++++++++++ src/lib/psensor.h | 4 ++++ src/main.c | 14 +++----------- 5 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/lib/lmsensor.c b/src/lib/lmsensor.c index 65c41d1..df788f6 100644 --- a/src/lib/lmsensor.c +++ b/src/lib/lmsensor.c @@ -30,6 +30,8 @@ #include "psensor.h" +static int init_done; + static double get_value(const sensors_chip_name *name, const sensors_subfeature *sub) { @@ -80,6 +82,9 @@ void lmsensor_psensor_list_update(struct psensor **sensors) { struct psensor **s_ptr = sensors; + if (!init_done) + return ; + while (*s_ptr) { struct psensor *sensor = *s_ptr; @@ -156,20 +161,6 @@ lmsensor_psensor_create(const sensors_chip_name *chip, return psensor; } -int lmsensor_init() -{ - int err = sensors_init(NULL); - - if (err) { - fprintf(stderr, - _("ERROR: lm-sensors initialization failure: %s\n"), - sensors_strerror(err)); - return 0; - } else { - return 1; - } -} - struct psensor **lmsensor_psensor_list_add(struct psensor **sensors, int vn) { @@ -180,6 +171,9 @@ struct psensor **lmsensor_psensor_list_add(struct psensor **sensors, struct psensor *s; int i; + if (!init_done) + return ; + result = sensors; while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) { @@ -205,3 +199,23 @@ struct psensor **lmsensor_psensor_list_add(struct psensor **sensors, return result; } + +void lmsensor_init() +{ + int err = sensors_init(NULL); + + if (err) { + fprintf(stderr, + _("ERROR: lm-sensors initialization failure: %s\n"), + sensors_strerror(err)); + init_done = 0; + } else { + init_done = 1; + } +} + +void lmsensor_cleanup() +{ + if (init_done) + sensors_cleanup(); +} diff --git a/src/lib/lmsensor.h b/src/lib/lmsensor.h index 5472db3..dce95a3 100644 --- a/src/lib/lmsensor.h +++ b/src/lib/lmsensor.h @@ -25,7 +25,6 @@ struct psensor *lmsensor_psensor_create(const sensors_chip_name *chip, const sensors_feature *feature, int values_max_length); -int lmsensor_init(); void lmsensor_psensor_list_update(struct psensor **sensors); /* @@ -37,6 +36,7 @@ void lmsensor_psensor_list_update(struct psensor **sensors); struct psensor **lmsensor_psensor_list_add(struct psensor **sensors, int values_max_length); - +void lmsensor_init(); +void lmsensor_cleanup(); #endif diff --git a/src/lib/psensor.c b/src/lib/psensor.c index 7dcb85d..128dc02 100644 --- a/src/lib/psensor.c +++ b/src/lib/psensor.c @@ -428,3 +428,13 @@ void psensor_list_update_measures(struct psensor **sensors) if (psensor_list_contains_type(sensors, SENSOR_TYPE_HDD_TEMP)) hdd_psensor_list_update(sensors); } + +void psensor_init() +{ + lmsensor_init(); +} + +void psensor_cleanup() +{ + lmsensor_cleanup(); +} diff --git a/src/lib/psensor.h b/src/lib/psensor.h index 65a0b59..06df8cf 100644 --- a/src/lib/psensor.h +++ b/src/lib/psensor.h @@ -159,4 +159,8 @@ const char *psensor_type_to_unit_str(unsigned int type); void psensor_list_update_measures(struct psensor **sensors); +void psensor_init(); + +void psensor_cleanup(); + #endif diff --git a/src/main.c b/src/main.c index 51b4a1b..da7fdef 100644 --- a/src/main.c +++ b/src/main.c @@ -27,9 +27,6 @@ #include -#include -#include - #include "config.h" #include "cfg.h" @@ -287,7 +284,7 @@ int main(int argc, char **argv) struct ui_psensor ui; GError *error; GThread *thread; - int err, optc; + int optc; char *url = NULL; int cmdok = 1; @@ -341,12 +338,7 @@ int main(int argc, char **argv) ui.config = config_load(); - err = lmsensor_init(); - if (!err) { - fprintf(stderr, _("ERROR: lmsensor init failure: %s\n"), - sensors_strerror(err)); - exit(EXIT_FAILURE); - } + psensor_init(); if (url) { #ifdef HAVE_REMOTE_SUPPORT @@ -397,7 +389,7 @@ int main(int argc, char **argv) /* main loop */ gtk_main(); - sensors_cleanup(); + psensor_cleanup(); psensor_list_free(ui.sensors); -- 2.7.4