1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
|
/*
* 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
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#ifndef _PSENSOR_CONFIG_H_
#define _PSENSOR_CONFIG_H_
#include <gdk/gdk.h>
#include <bool.h>
#include <color.h>
enum temperature_unit {
CELSIUS,
FAHRENHEIT
};
enum sensorlist_position {
SENSORLIST_POSITION_RIGHT,
SENSORLIST_POSITION_LEFT,
SENSORLIST_POSITION_TOP,
SENSORLIST_POSITION_BOTTOM
};
struct config {
struct color *graph_bgcolor;
struct color *graph_fgcolor;
double graph_bg_alpha;
bool alpha_channel_enabled;
bool window_restore_enabled;
/* Last saved position of the window. */
int window_x;
int window_y;
/* Last saved size of the window. */
int window_w;
int window_h;
/* Last saved position of the window divider. */
int window_divider_pos;
int graph_update_interval;
int graph_monitoring_duration;
int sensor_values_max_length;
int sensor_update_interval;
int hide_on_startup;
bool slog_enabled;
int slog_interval;
};
/* Loads psensor configuration */
struct config *config_load(void);
void config_save(const struct config *);
void config_cleanup(void);
GdkRGBA *config_get_sensor_color(const char *);
void config_set_sensor_color(const char *, const GdkRGBA *);
bool config_get_sensor_alarm_high_threshold(const char *, double *, double);
void config_set_sensor_alarm_high_threshold(const char *, int);
bool config_get_sensor_alarm_low_threshold(const char *, double *, double);
void config_set_sensor_alarm_low_threshold(const char *, int);
bool config_get_sensor_alarm_enabled(const char *);
void config_set_sensor_alarm_enabled(const char *, bool);
bool config_is_sensor_graph_enabled(const char *);
void config_set_sensor_graph_enabled(const char *, bool);
char *config_get_sensor_name(const char *);
void config_set_sensor_name(const char *, const char *);
bool config_is_appindicator_enabled(const char *);
void config_set_appindicator_enabled(const char *, bool);
bool config_is_appindicator_label_enabled(const char *);
void config_set_appindicator_label_enabled(const char *, bool);
bool is_slog_enabled(void);
void config_set_slog_enabled_changed_cbk(void (*)(void *), void *);
int config_get_slog_interval(void);
bool config_is_smooth_curves_enabled(void);
void config_set_smooth_curves_enabled(bool);
int config_get_sensor_position(const char *);
void config_set_sensor_position(const char *, int);
char *config_get_notif_script(void);
void config_set_notif_script(const char *);
bool config_is_sensor_enabled(const char *sid);
void config_set_sensor_enabled(const char *sid, bool enabled);
bool config_is_lmsensor_enabled(void);
void config_set_lmsensor_enable(bool);
bool config_is_gtop2_enabled(void);
void config_set_gtop2_enable(bool);
bool config_is_udisks2_enabled(void);
void config_set_udisks2_enable(bool);
bool config_is_hddtemp_enabled(void);
void config_set_hddtemp_enable(bool);
bool config_is_libatasmart_enabled(void);
void config_set_libatasmart_enable(bool);
bool config_is_nvctrl_enabled(void);
void config_set_nvctrl_enable(bool);
bool config_is_atiadlsdk_enabled(void);
void config_set_atiadlsdk_enable(bool);
enum temperature_unit config_get_temperature_unit(void);
void config_set_temperature_unit(enum temperature_unit);
double config_get_default_high_threshold_temperature(void);
bool config_is_window_decoration_enabled(void);
void config_set_window_decoration_enabled(bool);
bool config_is_window_keep_below_enabled(void);
void config_set_window_keep_below_enabled(bool);
bool config_is_menu_bar_enabled(void);
void config_set_menu_bar_enabled(bool);
bool config_is_count_visible(void);
void config_set_count_visible(bool);
enum sensorlist_position config_get_sensorlist_position(void);
void config_set_sensorlist_position(enum sensorlist_position pos);
/*
* Returns the user directory containing psensor data (configuration
* and log).
* Corresponds to $HOME/.psensor/
* Creates the directory if it does not exist;
* Returns NULL if it cannot be determined.
*/
const char *get_psensor_user_dir(void);
void config_sync(void);
GSettings *config_get_GSettings(void);
#endif
|