X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fcfg.c;h=f0fbd8ae00065973b9ffce01b26546cbd4ff69ad;hb=66bad742624f6d23713a1a614a01fc39bc36db92;hp=c493a9e5148808b29b48bffb5b9abd6102967753;hpb=de58b641143d1fb9622fa4021c2dd1ab50149dee;p=psensor.git diff --git a/src/cfg.c b/src/cfg.c index c493a9e..f0fbd8a 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,42 @@ 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(); + + 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(); - return g_key_file_get_boolean(kfile, sid, att, NULL); + err = NULL; + + ret = g_key_file_get_boolean(kfile, sid, att, &err); + + if (err && err->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND) + ret = dft; + + if (err) + g_error_free(err); + + return ret; } static void sensor_set_bool(const char *sid, const char *att, bool enabled) @@ -663,7 +707,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 +741,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 +773,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 +781,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 +791,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 +803,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 +827,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 +837,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 +849,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 +933,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); +}