X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fpsensor.c;h=0e0479b58954ae89caf0c2a5ea51a470d33e9112;hb=60f6135a421095b240b984898e555df284f3b77f;hp=d7119ab89dbd3bc12ddf59a5db93d9c7c8caba86;hpb=fb33860236e4641a520ffa4e52deeef952b2853f;p=psensor.git diff --git a/src/lib/psensor.c b/src/lib/psensor.c index d7119ab..0e0479b 100644 --- a/src/lib/psensor.c +++ b/src/lib/psensor.c @@ -23,16 +23,12 @@ #include #define _(str) gettext(str) +#include + #include #include -#include #include -#ifdef HAVE_GTOP -#include -#include -#endif - struct psensor *psensor_create(char *id, char *name, char *chip, @@ -69,9 +65,8 @@ struct psensor *psensor_create(char *id, psensor->graph_enabled = 1; psensor->appindicator_enabled = 0; -#ifdef HAVE_LIBUDISKS2 - psensor->udisks2_path = NULL; -#endif + psensor->provider_data = NULL; + psensor->provider_data_free_fct = &free; return psensor; } @@ -99,30 +94,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); -#ifdef HAVE_LIBUDISKS2 - free(sensor->udisks2_path); -#endif + free(s->url); - free(sensor); - } + 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) @@ -162,32 +157,15 @@ int psensor_list_size(struct psensor **sensors) return size; } -int psensor_list_contains_type(struct psensor **sensors, unsigned int type) -{ - struct psensor **s; - - if (!sensors) - return 0; - - s = sensors; - while (*s) { - if ((*s)->type & type) - return 1; - s++; - } - - return 0; -} - struct psensor **psensor_list_add(struct psensor **sensors, struct psensor *sensor) { int size; + struct psensor **result; size = psensor_list_size(sensors); - struct psensor **result - = malloc((size + 1 + 1) * sizeof(struct psensor *)); + result = malloc((size + 1 + 1) * sizeof(struct psensor *)); if (sensors) memcpy(result, sensors, size * sizeof(struct psensor *)); @@ -416,44 +394,6 @@ double get_max_temp(struct psensor **sensors) return get_max_value(sensors, SENSOR_TYPE_TEMP); } -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); - - if (!use_libatasmart) { - tmp_psensors = hddtemp_psensor_list_add(psensors, - values_max_length); - if (tmp_psensors != psensors) { - free(psensors); - psensors = tmp_psensors; - } - } -#ifdef HAVE_ATASMART - else { - tmp_psensors = hdd_psensor_list_add(psensors, - values_max_length); - if (tmp_psensors != psensors) { - free(psensors); - psensors = tmp_psensors; - } - } -#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; - } - - return psensors; -} - const char *psensor_type_to_str(unsigned int type) { if (type & SENSOR_TYPE_NVCTRL) { @@ -519,24 +459,6 @@ const char *psensor_type_to_unit_str(unsigned int type, int use_celsius) return _("N/A"); } -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); - -#ifdef HAVE_ATASMART - if (psensor_list_contains_type(sensors, SENSOR_TYPE_ATASMART)) - hdd_psensor_list_update(sensors); -#endif -} - void psensor_log_measures(struct psensor **sensors) { if (log_level == LOG_DEBUG) @@ -549,16 +471,6 @@ 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) { struct psensor **result;