#include "psensor.h"
+static int init_done;
+
static double get_value(const sensors_chip_name *name,
const sensors_subfeature *sub)
{
{
struct psensor **s_ptr = sensors;
+ if (!init_done)
+ return ;
+
while (*s_ptr) {
struct psensor *sensor = *s_ptr;
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)
{
struct psensor *s;
int i;
+ if (!init_done)
+ return ;
+
result = sensors;
while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) {
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();
+}
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);
/*
struct psensor **lmsensor_psensor_list_add(struct psensor **sensors,
int values_max_length);
-
+void lmsensor_init();
+void lmsensor_cleanup();
#endif
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();
+}
void psensor_list_update_measures(struct psensor **sensors);
+void psensor_init();
+
+void psensor_cleanup();
+
#endif
#include <gtk/gtk.h>
-#include <sensors/sensors.h>
-#include <sensors/error.h>
-
#include "config.h"
#include "cfg.h"
struct ui_psensor ui;
GError *error;
GThread *thread;
- int err, optc;
+ int optc;
char *url = NULL;
int cmdok = 1;
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
/* main loop */
gtk_main();
- sensors_cleanup();
+ psensor_cleanup();
psensor_list_free(ui.sensors);