X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fpsensor.c;h=1973c53438fa56c6fb4c1621f8759f6997fa3469;hb=c61f97ec1945a6555d4503acc6826e4be7c75536;hp=de726e4d9c1b761eedebe122bfc9e28848aceb95;hpb=3d3d8033f62b73e5607ee18022ae1266da76b737;p=psensor.git diff --git a/src/lib/psensor.c b/src/lib/psensor.c index de726e4..1973c53 100644 --- a/src/lib/psensor.c +++ b/src/lib/psensor.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2011 jeanfi@gmail.com + * Copyright (C) 2010-2012 jeanfi@gmail.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -373,18 +373,31 @@ double get_max_temp(struct psensor **sensors) return get_max_value(sensors, SENSOR_TYPE_TEMP); } -struct psensor **get_all_sensors(int values_max_length) +struct psensor **get_all_sensors(int use_libatasmart, int values_max_length) { struct psensor **psensors = NULL; struct psensor **tmp_psensors; psensors = lmsensor_psensor_list_add(NULL, values_max_length); - tmp_psensors = hdd_psensor_list_add(psensors, values_max_length); - if (tmp_psensors != psensors) { - free(psensors); - psensors = tmp_psensors; + 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 if (!psensors) { /* there is no detected sensors */ psensors = malloc(sizeof(struct psensor *)); @@ -446,8 +459,14 @@ void psensor_list_update_measures(struct psensor **sensors) cpu_psensor_list_update(sensors); #endif - if (psensor_list_contains_type(sensors, SENSOR_TYPE_HDD_TEMP)) + if (psensor_list_contains_type(sensors, SENSOR_TYPE_HDD_TEMP_HDDTEMP)) + hddtemp_psensor_list_update(sensors); + +#ifdef HAVE_ATASMART + if (psensor_list_contains_type(sensors, + SENSOR_TYPE_HDD_TEMP_ATASMART)) hdd_psensor_list_update(sensors); +#endif } void psensor_init()