X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fmain.c;h=6d23b80e2e33acd3530ef0c74f2281d30a2f1b33;hb=bcc60f94fc788d774205bcf824b655ae2fb4e6fc;hp=1eea59420cc7cd21d1e199349b90ed8847306df6;hpb=de58b641143d1fb9622fa4021c2dd1ab50149dee;p=psensor.git diff --git a/src/main.c b/src/main.c index 1eea594..6d23b80 100644 --- a/src/main.c +++ b/src/main.c @@ -227,20 +227,37 @@ static void cb_alarm_raised(struct psensor *sensor, void *data) static void associate_cb_alarm_raised(struct psensor **sensors, struct ui_psensor *ui) { - struct psensor **sensor_cur = sensors; + bool ret; + struct psensor *s; + double d, high_temp; - while (*sensor_cur) { - struct psensor *s = *sensor_cur; + high_temp = config_get_default_high_threshold_temperature(); + + while (*sensors) { + s = *sensors; s->cb_alarm_raised = cb_alarm_raised; s->cb_alarm_raised_data = ui; - s->alarm_high_threshold - = config_get_sensor_alarm_high_threshold(s->id); - s->alarm_low_threshold - = config_get_sensor_alarm_low_threshold(s->id); + ret = config_get_sensor_alarm_high_threshold + (s->id, &s->alarm_high_threshold); - sensor_cur++; + if (!ret) { + if (s->max == UNKNOWN_DBL_VALUE) { + if (s->type & SENSOR_TYPE_TEMP) + s->alarm_high_threshold = high_temp; + } else { + s->alarm_high_threshold = s->max; + } + } + + ret = config_get_sensor_alarm_low_threshold + (s->id, &s->alarm_low_threshold); + + if (!ret && s->min != UNKNOWN_DBL_VALUE) + s->alarm_low_threshold = s->min; + + sensors++; } }