return g_key_file_get_string(kfile, sid, att, NULL);
}
+static bool sensor_get_double(const char *sid, const char *att, double *d)
+{
+ GKeyFile *kfile;
+ GError *err;
+ double v;
+
+ kfile = get_sensor_key_file();
+
+ err = NULL;
+ v = g_key_file_get_double(kfile, sid, att, &err);
+
+ if (err)
+ return false;
+
+ *d = v;
+ return true;
+}
+
static bool sensor_get_bool(const char *sid, const char *att)
{
GKeyFile *kfile;
sensor_set_bool(sid, ATT_SENSOR_GRAPH_ENABLED, enabled);
}
-int config_get_sensor_alarm_high_threshold(const char *sid)
+bool config_get_sensor_alarm_high_threshold(const char *sid, double *v)
{
- return sensor_get_int(sid, ATT_SENSOR_ALARM_HIGH_THRESHOLD);
+ return sensor_get_double(sid, ATT_SENSOR_ALARM_HIGH_THRESHOLD, v);
}
void config_set_sensor_alarm_high_threshold(const char *sid, int threshold)
sensor_set_int(sid, ATT_SENSOR_ALARM_HIGH_THRESHOLD, threshold);
}
-int config_get_sensor_alarm_low_threshold(const char *sid)
+bool config_get_sensor_alarm_low_threshold(const char *sid, double *v)
{
- return sensor_get_int(sid, ATT_SENSOR_ALARM_LOW_THRESHOLD);
+ return sensor_get_double(sid, ATT_SENSOR_ALARM_LOW_THRESHOLD, v);
}
void config_set_sensor_alarm_low_threshold(const char *sid, int threshold)
GdkRGBA *config_get_sensor_color(const char *);
void config_set_sensor_color(const char *, const GdkRGBA *);
-int config_get_sensor_alarm_high_threshold(const char *);
+bool config_get_sensor_alarm_high_threshold(const char *, double *);
void config_set_sensor_alarm_high_threshold(const char *, int);
-int config_get_sensor_alarm_low_threshold(const char *);
+bool config_get_sensor_alarm_low_threshold(const char *, double *);
void config_set_sensor_alarm_low_threshold(const char *, int);
bool config_get_sensor_alarm_enabled(const char *);
psensor = psensor_create(id, label, cname, type, values_max_length);
-
sf = sensors_get_subfeature(chip, feature, SENSORS_SUBFEATURE_TEMP_MAX);
if (sf)
psensor->max = get_value(chip, sf);
/* The lowest value detected during this session. */
double sess_lowest;
- int alarm_high_threshold;
- int alarm_low_threshold;
+ double alarm_high_threshold;
+ double alarm_low_threshold;
/* Whether an alarm is raised for this sensor */
bool alarm_raised;
associate_cb_alarm_raised(struct psensor **sensors, struct ui_psensor *ui)
{
struct psensor **sensor_cur = sensors;
+ bool ret;
while (*sensor_cur) {
struct psensor *s = *sensor_cur;
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);
+
+ if (!ret && s->max != UNKNOWN_DBL_VALUE)
+ 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;
sensor_cur++;
}
gtk_toggle_button_set_active(w_sensor_alarm,
config_get_sensor_alarm_enabled(s->id));
- threshold = config_get_sensor_alarm_high_threshold(s->id);
+ threshold = s->alarm_high_threshold;
if (!use_celsius)
threshold = celsius_to_fahrenheit(threshold);
gtk_spin_button_set_value(w_sensor_high_threshold, threshold);
- threshold = config_get_sensor_alarm_low_threshold(s->id);
+ threshold = s->alarm_low_threshold;
if (!use_celsius)
threshold = celsius_to_fahrenheit(threshold);
gtk_spin_button_set_value(w_sensor_low_threshold, threshold);