From: Jean-Philippe Orsini Date: Wed, 28 Mar 2012 11:53:06 +0000 (+0000) Subject: added --use_libwqsmart option X-Git-Tag: v0.8.0.5~461 X-Git-Url: https://git.wpitchoune.net/gitweb/?p=psensor.git;a=commitdiff_plain;h=c61f97ec1945a6555d4503acc6826e4be7c75536 added --use_libwqsmart option --- diff --git a/NEWS b/NEWS index ff869e5..4cc37b4 100644 --- a/NEWS +++ b/NEWS @@ -5,7 +5,8 @@ ** psensor: added basic instruction in the README for compiling psensor with the ATI/AMD GPU support. ** psensor: fixed compilation error on 64bits with ATI/AMD GPU support. -** added capability to use libatasmart for sata disk monitoring. +** psensor: added capability to use libatasmart for sata disk monitoring. +** psensor: added option --use_libatasmart ** changed copyright dates to 2012. * v0.6.2.17 diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index 0e49961..5cfa0e7 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -2,14 +2,14 @@ noinst_LIBRARIES = libpsensor.a libpsensor_a_SOURCES = \ amd.h \ - cpu.h \ - measure.h measure.c \ color.h color.c \ + cpu.h \ + hdd.h hdd_hddtemp.c\ + lmsensor.h lmsensor.c \ log.h log.c \ - psensor.h psensor.c\ - hdd.h\ + measure.h measure.c \ nvidia.h \ - lmsensor.h lmsensor.c \ + psensor.h psensor.c\ pio.h pio.c \ url.c url.h @@ -19,8 +19,6 @@ if ATASMART libpsensor_a_SOURCES += hdd_atasmart.c LIBS += $(ATASMART_LIBS) AM_CPPFLAGS += $(ATASMART_CFLAGS) -else -libpsensor_a_SOURCES += hdd_hddtemp.c endif if NVIDIA diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in index 0622f43..a1406ff 100644 --- a/src/lib/Makefile.in +++ b/src/lib/Makefile.in @@ -37,17 +37,16 @@ host_triplet = @host@ @ATASMART_TRUE@am__append_1 = hdd_atasmart.c @ATASMART_TRUE@am__append_2 = $(ATASMART_LIBS) @ATASMART_TRUE@am__append_3 = $(ATASMART_CFLAGS) -@ATASMART_FALSE@am__append_4 = hdd_hddtemp.c -@NVIDIA_TRUE@am__append_5 = nvidia.c -@LIBATIADL_TRUE@am__append_6 = $(LIBATIADL_LIBS) -@LIBATIADL_TRUE@am__append_7 = $(LIBATIADL_CFLAGS) -@LIBATIADL_TRUE@am__append_8 = amd.c -@GTOP_TRUE@am__append_9 = cpu.c -@GTOP_TRUE@am__append_10 = $(GTOP_LIBS) -@GTOP_TRUE@am__append_11 = $(GTOP_CFLAGS) -@JSON_TRUE@am__append_12 = psensor_json.h psensor_json.c -@JSON_TRUE@am__append_13 = $(JSON_LIBS) -@JSON_TRUE@am__append_14 = $(JSON_CFLAGS) +@NVIDIA_TRUE@am__append_4 = nvidia.c +@LIBATIADL_TRUE@am__append_5 = $(LIBATIADL_LIBS) +@LIBATIADL_TRUE@am__append_6 = $(LIBATIADL_CFLAGS) +@LIBATIADL_TRUE@am__append_7 = amd.c +@GTOP_TRUE@am__append_8 = cpu.c +@GTOP_TRUE@am__append_9 = $(GTOP_LIBS) +@GTOP_TRUE@am__append_10 = $(GTOP_CFLAGS) +@JSON_TRUE@am__append_11 = psensor_json.h psensor_json.c +@JSON_TRUE@am__append_12 = $(JSON_LIBS) +@JSON_TRUE@am__append_13 = $(JSON_CFLAGS) subdir = src/lib DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -63,22 +62,21 @@ AR = ar ARFLAGS = cru libpsensor_a_AR = $(AR) $(ARFLAGS) libpsensor_a_LIBADD = -am__libpsensor_a_SOURCES_DIST = amd.h cpu.h measure.h measure.c \ - color.h color.c log.h log.c psensor.h psensor.c hdd.h nvidia.h \ - lmsensor.h lmsensor.c pio.h pio.c url.c url.h hdd_atasmart.c \ - hdd_hddtemp.c nvidia.c amd.c cpu.c psensor_json.h \ +am__libpsensor_a_SOURCES_DIST = amd.h color.h color.c cpu.h hdd.h \ + hdd_hddtemp.c lmsensor.h lmsensor.c log.h log.c measure.h \ + measure.c nvidia.h psensor.h psensor.c pio.h pio.c url.c url.h \ + hdd_atasmart.c nvidia.c amd.c cpu.c psensor_json.h \ psensor_json.c @ATASMART_TRUE@am__objects_1 = hdd_atasmart.$(OBJEXT) -@ATASMART_FALSE@am__objects_2 = hdd_hddtemp.$(OBJEXT) -@NVIDIA_TRUE@am__objects_3 = nvidia.$(OBJEXT) -@LIBATIADL_TRUE@am__objects_4 = amd.$(OBJEXT) -@GTOP_TRUE@am__objects_5 = cpu.$(OBJEXT) -@JSON_TRUE@am__objects_6 = psensor_json.$(OBJEXT) -am_libpsensor_a_OBJECTS = measure.$(OBJEXT) color.$(OBJEXT) \ - log.$(OBJEXT) psensor.$(OBJEXT) lmsensor.$(OBJEXT) \ - pio.$(OBJEXT) url.$(OBJEXT) $(am__objects_1) $(am__objects_2) \ - $(am__objects_3) $(am__objects_4) $(am__objects_5) \ - $(am__objects_6) +@NVIDIA_TRUE@am__objects_2 = nvidia.$(OBJEXT) +@LIBATIADL_TRUE@am__objects_3 = amd.$(OBJEXT) +@GTOP_TRUE@am__objects_4 = cpu.$(OBJEXT) +@JSON_TRUE@am__objects_5 = psensor_json.$(OBJEXT) +am_libpsensor_a_OBJECTS = color.$(OBJEXT) hdd_hddtemp.$(OBJEXT) \ + lmsensor.$(OBJEXT) log.$(OBJEXT) measure.$(OBJEXT) \ + psensor.$(OBJEXT) pio.$(OBJEXT) url.$(OBJEXT) $(am__objects_1) \ + $(am__objects_2) $(am__objects_3) $(am__objects_4) \ + $(am__objects_5) libpsensor_a_OBJECTS = $(am_libpsensor_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -148,8 +146,8 @@ LIBMICROHTTPD_LIBS = @LIBMICROHTTPD_LIBS@ LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@ LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@ LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ $(am__append_2) $(am__append_6) $(am__append_10) \ - $(am__append_13) +LIBS = @LIBS@ $(am__append_2) $(am__append_5) $(am__append_9) \ + $(am__append_12) LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ @@ -241,13 +239,13 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libpsensor.a -libpsensor_a_SOURCES = amd.h cpu.h measure.h measure.c color.h color.c \ - log.h log.c psensor.h psensor.c hdd.h nvidia.h lmsensor.h \ - lmsensor.c pio.h pio.c url.c url.h $(am__append_1) \ - $(am__append_4) $(am__append_5) $(am__append_8) \ - $(am__append_9) $(am__append_12) -AM_CPPFLAGS = -Wall -Werror $(am__append_3) $(am__append_7) \ - $(am__append_11) $(am__append_14) +libpsensor_a_SOURCES = amd.h color.h color.c cpu.h hdd.h hdd_hddtemp.c \ + lmsensor.h lmsensor.c log.h log.c measure.h measure.c nvidia.h \ + psensor.h psensor.c pio.h pio.c url.c url.h $(am__append_1) \ + $(am__append_4) $(am__append_7) $(am__append_8) \ + $(am__append_11) +AM_CPPFLAGS = -Wall -Werror $(am__append_3) $(am__append_6) \ + $(am__append_10) $(am__append_13) EXTRA_DIST = $(libpsensor_a_SOURCES) \ amd.c \ cpu.c \ diff --git a/src/lib/hdd.h b/src/lib/hdd.h index 6c31800..a104ca8 100644 --- a/src/lib/hdd.h +++ b/src/lib/hdd.h @@ -19,11 +19,19 @@ #ifndef _PSENSOR_HDD_H_ #define _PSENSOR_HDD_H_ +#include "config.h" #include "psensor.h" +#ifdef HAVE_ATASMART struct psensor **hdd_psensor_list_add(struct psensor **sensors, int values_max_length); void hdd_psensor_list_update(struct psensor **sensors); +#endif + +struct psensor **hddtemp_psensor_list_add(struct psensor **sensors, + int values_max_length); + +void hddtemp_psensor_list_update(struct psensor **sensors); #endif diff --git a/src/lib/hdd_hddtemp.c b/src/lib/hdd_hddtemp.c index 5883fa5..4de2d25 100644 --- a/src/lib/hdd_hddtemp.c +++ b/src/lib/hdd_hddtemp.c @@ -167,8 +167,8 @@ static char *next_hdd_info(char *string, struct hdd_info *info) return c; } -struct psensor **hdd_psensor_list_add(struct psensor **sensors, - int values_max_length) +struct psensor **hddtemp_psensor_list_add(struct psensor **sensors, + int values_max_length) { char *hddtemp_output = fetch(); char *c; @@ -228,7 +228,7 @@ static void update(struct psensor **sensors, struct hdd_info *info) } } -void hdd_psensor_list_update(struct psensor **sensors) +void hddtemp_psensor_list_update(struct psensor **sensors) { char *hddtemp_output = fetch(); diff --git a/src/lib/psensor.c b/src/lib/psensor.c index 06ef482..1973c53 100644 --- a/src/lib/psensor.c +++ b/src/lib/psensor.c @@ -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,10 +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_HDDTEMP) - || psensor_list_contains_type(sensors, - SENSOR_TYPE_HDD_TEMP_ATASMART)) + 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() diff --git a/src/lib/psensor.h b/src/lib/psensor.h index 4946b5d..093bc6d 100644 --- a/src/lib/psensor.h +++ b/src/lib/psensor.h @@ -158,7 +158,7 @@ psensor_get_max_current_value(struct psensor **sensors, unsigned int type); */ char *psensor_value_to_string(unsigned int type, double value); -struct psensor **get_all_sensors(int values_max_length); +struct psensor **get_all_sensors(int use_libatasmart, int values_max_length); struct psensor **psensor_list_add(struct psensor **sensors, struct psensor *sensor); diff --git a/src/main.c b/src/main.c index fb534d8..71bb1e8 100644 --- a/src/main.c +++ b/src/main.c @@ -347,6 +347,7 @@ static void log_init() } static struct option long_options[] = { + {"use_libatasmart", no_argument, 0, 0}, {"version", no_argument, 0, 'v'}, {"help", no_argument, 0, 'h'}, {"url", required_argument, 0, 'u'}, @@ -394,7 +395,7 @@ int main(int argc, char **argv) struct ui_psensor ui; GError *error; GThread *thread; - int optc, cmdok; + int optc, cmdok, opti, use_libatasmart; char *url = NULL; program_name = argv[0]; @@ -406,10 +407,16 @@ int main(int argc, char **argv) textdomain(PACKAGE); #endif + use_libatasmart = 0; + cmdok = 1; while ((optc = getopt_long(argc, argv, "vhd:u:", long_options, - NULL)) != -1) { + &opti)) != -1) { switch (optc) { + case 0: + if (!strcmp(long_options[opti].name, "use_libatasmart")) + use_libatasmart = 1; + break; case 'u': if (optarg) url = strdup(optarg); @@ -470,7 +477,7 @@ int main(int argc, char **argv) exit(EXIT_FAILURE); #endif } else { - ui.sensors = get_all_sensors(600); + ui.sensors = get_all_sensors(use_libatasmart, 600); #ifdef HAVE_NVIDIA ui.sensors = nvidia_psensor_list_add(ui.sensors, 600); #endif diff --git a/src/server/server.c b/src/server/server.c index 65f0ee8..0576d3c 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -357,7 +357,7 @@ int main(int argc, char *argv[]) psensor_init(); - server_data.sensors = get_all_sensors(600); + server_data.sensors = get_all_sensors(0, 600); #ifdef HAVE_GTOP server_data.cpu_usage = create_cpu_usage_sensor(600);