enable/disable of lmsensor provider
[psensor.git] / src / lib / psensor.c
index b589c03..cd7fcf6 100644 (file)
 
 #include <hdd.h>
 #include <psensor.h>
-#include <lmsensor.h>
 #include <temperature.h>
 
-#ifdef HAVE_GTOP
-#include <cpu.h>
-#include <pmem.h>
-#endif
-
 struct psensor *psensor_create(char *id,
                               char *name,
                               char *chip,
@@ -69,6 +63,9 @@ struct psensor *psensor_create(char *id,
        psensor->graph_enabled = 1;
        psensor->appindicator_enabled = 0;
 
+       psensor->provider_data = NULL;
+       psensor->provider_data_free_fct = &free;
+
        return psensor;
 }
 
@@ -95,26 +92,30 @@ void psensor_values_resize(struct psensor *s, int new_size)
        s->measures = new_ms;
 }
 
-void psensor_free(struct psensor *sensor)
+void psensor_free(struct psensor *s)
 {
-       if (sensor) {
-               log_debug("Cleanup %s", sensor->id);
+       if (!s)
+               return;
 
-               free(sensor->name);
-               free(sensor->id);
+       log_debug("Cleanup %s", s->id);
 
-               if (sensor->chip)
-                       free(sensor->chip);
+       free(s->name);
+       free(s->id);
 
-               if (sensor->color)
-                       free(sensor->color);
+       if (s->chip)
+               free(s->chip);
 
-               measures_free(sensor->measures);
+       if (s->color)
+               free(s->color);
 
-               free(sensor->url);
+       measures_free(s->measures);
 
-               free(sensor);
-       }
+       free(s->url);
+
+       if (s->provider_data && s->provider_data_free_fct)
+               s->provider_data_free_fct(s->provider_data);
+
+       free(s);
 }
 
 void psensor_list_free(struct psensor **sensors)
@@ -413,7 +414,7 @@ struct psensor **get_all_sensors(int use_libatasmart, int values_max_length)
        struct psensor **psensors;
        struct psensor **tmp_psensors;
 
-       psensors = lmsensor_psensor_list_add(NULL, values_max_length);
+       psensors = NULL;
 
        if (!use_libatasmart) {
                tmp_psensors = hddtemp_psensor_list_add(psensors,
@@ -434,10 +435,6 @@ struct psensor **get_all_sensors(int use_libatasmart, int values_max_length)
                }
 #endif
 
-#ifdef HAVE_GTOP
-       mem_psensor_list_add(&psensors, values_max_length);
-#endif
-
        if (!psensors) {        /* there is no detected sensors */
                psensors = malloc(sizeof(struct psensor *));
                *psensors = NULL;
@@ -513,13 +510,6 @@ const char *psensor_type_to_unit_str(unsigned int type, int use_celsius)
 
 void psensor_list_update_measures(struct psensor **sensors)
 {
-       lmsensor_psensor_list_update(sensors);
-
-#ifdef HAVE_GTOP
-       cpu_psensor_list_update(sensors);
-       mem_psensor_list_update(sensors);
-#endif
-
        if (psensor_list_contains_type(sensors, SENSOR_TYPE_HDDTEMP))
                hddtemp_psensor_list_update(sensors);
 
@@ -543,12 +533,10 @@ void psensor_log_measures(struct psensor **sensors)
 
 void psensor_init()
 {
-       lmsensor_init();
 }
 
 void psensor_cleanup()
 {
-       lmsensor_cleanup();
 }
 
 struct psensor **psensor_list_copy(struct psensor **sensors)