X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fcfg.c;h=61e8b0c328654f8750eac5bf9b3fb63f3276b9c7;hb=db67d2960c15ee66c36b4095349226310d76f7fd;hp=6ee3b49f3b8416a90f1441d6a5af69a18c4a769d;hpb=d280db5907574f0d29458dd5d301ce030a13189b;p=psensor.git diff --git a/src/cfg.c b/src/cfg.c index 6ee3b49..61e8b0c 100644 --- a/src/cfg.c +++ b/src/cfg.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2014 jeanfi@gmail.com + * Copyright (C) 2010-2016 jeanfi@gmail.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -602,7 +602,10 @@ static char *sensor_get_str(const char *sid, const char *att) return g_key_file_get_string(kfile, sid, att, NULL); } -static bool sensor_get_double(const char *sid, const char *att, double *d) +static bool sensor_get_double(const char *sid, + const char *att, + double *d, + double d_default) { GKeyFile *kfile; GError *err; @@ -611,6 +614,18 @@ static bool sensor_get_double(const char *sid, const char *att, double *d) kfile = get_sensor_key_file(); err = NULL; + if (!g_key_file_has_key(kfile, sid, att, &err)) { + if (err) { + log_err(err->message); + g_error_free(err); + return false; + } + + *d = d_default; + return true; + } + + err = NULL; v = g_key_file_get_double(kfile, sid, att, &err); if (err) { @@ -698,7 +713,8 @@ void config_set_sensor_color(const char *sid, const GdkRGBA *color) static const char *next_default_color(void) { /* copied from the default colors of the gtk color color - * chooser. */ + * chooser. + */ const char *default_colors[27] = { "#ef2929", /* Scarlet Red */ "#fcaf3e", /* Orange */ @@ -769,9 +785,11 @@ void config_set_sensor_graph_enabled(const char *sid, bool enabled) sensor_set_bool(sid, ATT_SENSOR_GRAPH_ENABLED, enabled); } -bool config_get_sensor_alarm_high_threshold(const char *sid, double *v) +bool config_get_sensor_alarm_high_threshold(const char *sid, + double *v, + double d) { - return sensor_get_double(sid, ATT_SENSOR_ALARM_HIGH_THRESHOLD, v); + return sensor_get_double(sid, ATT_SENSOR_ALARM_HIGH_THRESHOLD, v, d); } void config_set_sensor_alarm_high_threshold(const char *sid, int threshold) @@ -779,9 +797,9 @@ void config_set_sensor_alarm_high_threshold(const char *sid, int threshold) sensor_set_int(sid, ATT_SENSOR_ALARM_HIGH_THRESHOLD, threshold); } -bool config_get_sensor_alarm_low_threshold(const char *sid, double *v) +bool config_get_sensor_alarm_low_threshold(const char *sid, double *v, double d) { - return sensor_get_double(sid, ATT_SENSOR_ALARM_LOW_THRESHOLD, v); + return sensor_get_double(sid, ATT_SENSOR_ALARM_LOW_THRESHOLD, v, d); } void config_set_sensor_alarm_low_threshold(const char *sid, int threshold)