psensor->values_max_length = values_max_length;
psensor->measures = measures_dbl_create(values_max_length);
- psensor->alarm_enabled = 0;
psensor->alarm_high_threshold = 0;
psensor->alarm_low_threshold = 0;
if (s->max == UNKNOWN_DBL_VALUE || v > s->max)
s->max = v;
- if (s->alarm_enabled) {
- if (v > s->alarm_high_threshold || v < s->alarm_low_threshold) {
- if (!s->alarm_raised && s->cb_alarm_raised)
- s->cb_alarm_raised(s, s->cb_alarm_raised_data);
-
- s->alarm_raised = 1;
- } else {
- s->alarm_raised = 0;
+ if (v > s->alarm_high_threshold || v < s->alarm_low_threshold) {
+ if (!s->alarm_raised && s->cb_alarm_raised) {
+ s->alarm_raised = true;
+ s->cb_alarm_raised(s, s->cb_alarm_raised_data);
}
+ } else {
+ s->alarm_raised = false;
}
}
/* The minimum detected value of the sensor */
double min;
- /* Whether alarm alert is enabled for this sensor */
- bool alarm_enabled;
-
int alarm_high_threshold;
int alarm_low_threshold;
static void indicators_update(struct ui_psensor *ui)
{
- struct psensor **sensor_cur = ui->sensors;
- unsigned int attention = 0;
+ struct psensor **ss, *s;
+ bool attention;
- while (*sensor_cur) {
- struct psensor *s = *sensor_cur;
+ attention = false;
+ ss = ui->sensors;
+ while (*ss) {
+ s = *ss;
- if (s->alarm_enabled && s->alarm_raised) {
- attention = 1;
+ if (s->alarm_raised && config_get_sensor_alarm_enabled(s->id)) {
+ attention = true;
break;
}
- sensor_cur++;
+ ss++;
}
#if defined(HAVE_APPINDICATOR)
static void cb_alarm_raised(struct psensor *sensor, void *data)
{
- if (sensor->alarm_enabled)
+ if (config_get_sensor_alarm_enabled(sensor->id)) {
ui_notify(sensor, (struct ui_psensor *)data);
-
- notify_cmd(sensor);
+ notify_cmd(sensor);
+ }
}
static void associate_colors(struct psensor **sensors)
s->alarm_low_threshold
= config_get_sensor_alarm_low_threshold(s->id);
- s->alarm_enabled
- = config_get_sensor_alarm_enabled(s->id);
-
sensor_cur++;
}
}
p->sensor = s;
p->name = strdup(s->name);
p->graph_enabled = s->graph_enabled;
- p->alarm_enabled = s->alarm_enabled;
+ p->alarm_enabled = config_get_sensor_alarm_enabled(s->id);
p->color = color_dup(s->color);
p->display_enabled = config_is_sensor_enabled(s->id);
config_set_sensor_alarm_high_threshold(s->id, s->alarm_high_threshold);
config_set_sensor_alarm_low_threshold(s->id, s->alarm_low_threshold);
- if (s->alarm_enabled != p->alarm_enabled) {
- s->alarm_enabled = p->alarm_enabled;
- config_set_sensor_alarm_enabled(s->id, s->alarm_enabled);
- }
+ config_set_sensor_alarm_enabled(s->id, p->alarm_enabled);
color_set(s->color,
p->color->red,