added --use_libwqsmart option
authorJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 28 Mar 2012 11:53:06 +0000 (11:53 +0000)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 28 Mar 2012 11:53:06 +0000 (11:53 +0000)
NEWS
src/lib/Makefile.am
src/lib/Makefile.in
src/lib/hdd.h
src/lib/hdd_hddtemp.c
src/lib/psensor.c
src/lib/psensor.h
src/main.c
src/server/server.c

diff --git a/NEWS b/NEWS
index ff869e5..4cc37b4 100644 (file)
--- 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
index 0e49961..5cfa0e7 100644 (file)
@@ -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
index 0622f43..a1406ff 100644 (file)
@@ -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 \
index 6c31800..a104ca8 100644 (file)
 #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
index 5883fa5..4de2d25 100644 (file)
@@ -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();
 
index 06ef482..1973c53 100644 (file)
@@ -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()
index 4946b5d..093bc6d 100644 (file)
@@ -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);
index fb534d8..71bb1e8 100644 (file)
@@ -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
index 65f0ee8..0576d3c 100644 (file)
@@ -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);