X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fcfg.c;h=822abbbcbdbe50b99162214124f5a1d4217f1d0e;hb=b7344164d024bea75d95ae5a5564041df161dcee;hp=c493a9e5148808b29b48bffb5b9abd6102967753;hpb=de58b641143d1fb9622fa4021c2dd1ab50149dee;p=psensor.git diff --git a/src/cfg.c b/src/cfg.c index c493a9e..822abbb 100644 --- a/src/cfg.c +++ b/src/cfg.c @@ -119,6 +119,11 @@ static const char *KEY_PROVIDER_LIBATASMART_ENABLED static const char *KEY_PROVIDER_NVCTRL_ENABLED = "provider-nvctrl-enabled"; static const char *KEY_PROVIDER_UDISKS2_ENABLED = "provider-udisks2-enabled"; +static const char *KEY_DEFAULT_HIGH_THRESHOLD_TEMPERATURE += "default-high-threshold-temperature"; +static const char *KEY_DEFAULT_SENSOR_ALARM_ENABLED += "default-sensor-alarm-enabled"; + static GSettings *settings; static char *user_dir; @@ -353,6 +358,15 @@ void config_set_smooth_curves_enabled(bool b) set_bool(KEY_GRAPH_SMOOTH_CURVES_ENABLED, b); } +double config_get_default_high_threshold_temperature(void) +{ + return get_double(KEY_DEFAULT_HIGH_THRESHOLD_TEMPERATURE); +} + +static bool config_get_default_sensor_alarm_enabled(void) +{ + return get_bool(KEY_DEFAULT_SENSOR_ALARM_ENABLED); +} static void init(void) { @@ -608,12 +622,45 @@ 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_bool(const char *sid, const char *att) +static bool sensor_get_double(const char *sid, const char *att, double *d) { GKeyFile *kfile; + GError *err; + double v; kfile = get_sensor_key_file(); - return g_key_file_get_boolean(kfile, sid, att, NULL); + + 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, bool dft) +{ + GKeyFile *kfile; + GError *err; + bool ret; + + kfile = get_sensor_key_file(); + err = NULL; + + ret = g_key_file_get_boolean(kfile, sid, att, &err); + + if (err) { + if (err->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND) + ret = dft; + else + log_err(err->message); + + g_error_free(err); + } + + return ret; } static void sensor_set_bool(const char *sid, const char *att, bool enabled) @@ -663,7 +710,7 @@ void config_set_sensor_color(const char *sid, const GdkRGBA *color) g_free(str); } -static char *next_default_color(void) +static const char *next_default_color(void) { /* copied from the default colors of the gtk color color * chooser. */ @@ -697,7 +744,7 @@ static char *next_default_color(void) "#babdb6" }; static int next_idx; - char *c; + const char *c; c = default_colors[next_idx % 27]; @@ -729,7 +776,7 @@ GdkRGBA *config_get_sensor_color(const char *sid) bool config_is_sensor_graph_enabled(const char *sid) { - return sensor_get_bool(sid, ATT_SENSOR_GRAPH_ENABLED); + return sensor_get_bool(sid, ATT_SENSOR_GRAPH_ENABLED, false); } void config_set_sensor_graph_enabled(const char *sid, bool enabled) @@ -737,9 +784,9 @@ void config_set_sensor_graph_enabled(const char *sid, bool enabled) 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) @@ -747,9 +794,9 @@ 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) @@ -759,7 +806,9 @@ void config_set_sensor_alarm_low_threshold(const char *sid, int threshold) bool config_is_appindicator_enabled(const char *sid) { - return !sensor_get_bool(sid, ATT_SENSOR_APPINDICATOR_MENU_DISABLED); + return !sensor_get_bool(sid, + ATT_SENSOR_APPINDICATOR_MENU_DISABLED, + false); } void config_set_appindicator_enabled(const char *sid, bool enabled) @@ -781,7 +830,7 @@ void config_set_sensor_position(const char *sid, int pos) bool config_get_sensor_alarm_enabled(const char *sid) { - return sensor_get_bool(sid, ATT_SENSOR_ALARM_ENABLED); + return sensor_get_bool(sid, ATT_SENSOR_ALARM_ENABLED, false); } void config_set_sensor_alarm_enabled(const char *sid, bool enabled) @@ -791,7 +840,9 @@ void config_set_sensor_alarm_enabled(const char *sid, bool enabled) bool config_is_sensor_enabled(const char *sid) { - return !sensor_get_bool(sid, ATT_SENSOR_HIDE); + return !sensor_get_bool(sid, + ATT_SENSOR_HIDE, + config_get_default_sensor_alarm_enabled()); } void config_set_sensor_enabled(const char *sid, bool enabled) @@ -801,7 +852,9 @@ void config_set_sensor_enabled(const char *sid, bool enabled) bool config_is_appindicator_label_enabled(const char *sid) { - return sensor_get_bool(sid, ATT_SENSOR_APPINDICATOR_LABEL_ENABLED); + return sensor_get_bool(sid, + ATT_SENSOR_APPINDICATOR_LABEL_ENABLED, + false); } void config_set_appindicator_label_enabled(const char *sid, bool enabled) @@ -883,3 +936,8 @@ void config_set_udisks2_enable(bool b) { set_bool(KEY_PROVIDER_UDISKS2_ENABLED, b); } + +int config_get_sensor_unit(void) +{ + return get_int(KEY_INTERFACE_TEMPERATURE_UNIT); +}