X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fmain.c;h=f817c14aa451de9f801052362cf82f4f58a69091;hb=138f4d6a450e4ead5da85fdef006e48e906223d8;hp=804b8a8feb6e58c921134f33e2fffbd6a6b54115;hpb=550caf1a40e8ad04a27bcbc6fbcd577b1945c1b4;p=psensor.git diff --git a/src/main.c b/src/main.c index 804b8a8..f817c14 100644 --- a/src/main.c +++ b/src/main.c @@ -44,6 +44,7 @@ #include "slog.h" #include "ui_pref.h" #include "ui_graph.h" +#include #include "ui_status.h" #ifdef HAVE_UNITY @@ -64,17 +65,13 @@ #include "ui_appindicator.h" -#ifdef HAVE_LIBNOTIFY -#include "ui_notify.h" -#endif - #ifdef HAVE_GTOP #include #endif static const char *program_name; -static void print_version() +static void print_version(void) { printf("psensor %s\n", VERSION); printf(_("Copyright (C) %s jeanfi@gmail.com\n" @@ -86,7 +83,7 @@ static void print_version() "2010-2014"); } -static void print_help() +static void print_help(void) { printf(_("Usage: %s [OPTION]...\n"), program_name); @@ -154,8 +151,6 @@ static void *update_measures(void *data) update_psensor_values_size(sensors, cfg); - psensor_list_update_measures(sensors); - lmsensor_psensor_list_update(sensors); #ifdef HAVE_REMOTE_SUPPORT remote_psensor_list_update(sensors); @@ -204,7 +199,7 @@ static void indicators_update(struct ui_psensor *ui) sensor_cur++; } -#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029) +#if defined(HAVE_APPINDICATOR) if (is_appindicator_supported()) ui_appindicator_update(ui, attention); #endif @@ -213,7 +208,7 @@ static void indicators_update(struct ui_psensor *ui) ui_status_update(ui, attention); } -gboolean ui_refresh_thread(gpointer data) +static gboolean ui_refresh_thread(gpointer data) { struct config *cfg; gboolean ret; @@ -253,39 +248,55 @@ gboolean ui_refresh_thread(gpointer data) static void cb_alarm_raised(struct psensor *sensor, void *data) { -#ifdef HAVE_LIBNOTIFY if (sensor->alarm_enabled) ui_notify(sensor, (struct ui_psensor *)data); -#endif notify_cmd(sensor); } static void associate_colors(struct psensor **sensors) { - /* number of uniq colors */ -#define COLORS_COUNT 8 - - double colors[COLORS_COUNT][3] = { - {0, 0, 0}, /* black */ - {1, 0, 0}, /* red */ - {0, 0, 1}, /* blue */ - {0, 1, 0}, /* green */ - - {0.5, 0.5, 0.5},/* grey */ - {0.5, 0, 0}, /* dark red */ - {0, 0, 0.5}, /* dark blue */ - {0, 0.5, 0} /* dark green */ + GdkRGBA rgba; + /* copied from the default colors of the gtk color color + * chooser. */ + const char *default_colors[27] = { + "#ef2929", /* Scarlet Red */ + "#fcaf3e", /* Orange */ + "#fce94f", /* Butter */ + "#8ae234", /* Chameleon */ + "#729fcf", /* Sky Blue */ + "#ad7fa8", /* Plum */ + "#e9b96e", /* Chocolate */ + "#888a85", /* Aluminum 1 */ + "#eeeeec", /* Aluminum 2 */ + "#cc0000", + "#f57900", + "#edd400", + "#73d216", + "#3465a4", + "#75507b", + "#c17d11", + "#555753", + "#d3d7cf", + "#a40000", + "#ce5c00", + "#c4a000", + "#4e9a06", + "#204a87", + "#5c3566", + "#8f5902", + "#2e3436", + "#babdb6" }; - struct psensor **cur; int i; + struct psensor **cur; struct color c; for (cur = sensors, i = 0; *cur; cur++, i++) { - color_set(&c, - colors[i % COLORS_COUNT][0], - colors[i % COLORS_COUNT][1], - colors[i % COLORS_COUNT][2]); + gdk_rgba_parse(&rgba, default_colors[i % 27]); + c.red = rgba.red; + c.green = rgba.green; + c.blue = rgba.blue; (*cur)->color = config_get_sensor_color((*cur)->id, &c); } @@ -331,13 +342,11 @@ static void associate_preferences(struct psensor **sensors) s->name = n; } - s->appindicator_enabled = config_is_appindicator_enabled(s->id); - sensor_cur++; } } -static void log_init() +static void log_init(void) { const char *dir; char *path; @@ -356,12 +365,12 @@ static void log_init() } static struct option long_options[] = { - {"version", no_argument, 0, 'v'}, - {"help", no_argument, 0, 'h'}, - {"url", required_argument, 0, 'u'}, - {"debug", required_argument, 0, 'd'}, - {"new-instance", no_argument, 0, 'n'}, - {0, 0, 0, 0} + {"version", no_argument, NULL, 'v'}, + {"help", no_argument, NULL, 'h'}, + {"url", required_argument, NULL, 'u'}, + {"debug", required_argument, NULL, 'd'}, + {"new-instance", no_argument, NULL, 'n'}, + {NULL, 0, NULL, 0} }; static gboolean initial_window_show(gpointer data) @@ -386,7 +395,7 @@ static gboolean initial_window_show(gpointer data) return FALSE; } -static void log_glib_info() +static void log_glib_info(void) { log_debug("Compiled with GLib %d.%d.%d", GLIB_MAJOR_VERSION, @@ -414,8 +423,6 @@ static void cleanup(struct ui_psensor *ui) log_debug("Cleanup..."); - psensor_cleanup(); - #ifdef HAVE_NVIDIA nvidia_cleanup(); #endif @@ -429,7 +436,7 @@ static void cleanup(struct ui_psensor *ui) psensor_list_free(ui->sensors); ui->sensors = NULL; -#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029) +#if defined(HAVE_APPINDICATOR) ui_appindicator_cleanup(); #endif @@ -575,25 +582,12 @@ int main(int argc, char **argv) g_thread_init(NULL); #endif -#ifdef HAVE_APPINDICATOR_029 - /* gdk_thread_enter/leave only used to workaround mutex bug - * of appindicator < 0.2.9, so do not call gdk_threads_init - * if useless. Calling this function leads to - * crash "Attempt to unlock mutex that was not locked" with - * GLib 2.41.2 (new checking) probably due to bugs in GTK - * itself. - */ - gdk_threads_init(); -#endif - gtk_init(NULL, NULL); pmutex_init(&ui.sensors_mutex); ui.config = config_load(); - psensor_init(); - ui.sensors = create_sensors_list(url); associate_cb_alarm_raised(ui.sensors, &ui); @@ -603,7 +597,7 @@ int main(int argc, char **argv) &ui.sensors_mutex, config_get_slog_interval()); -#if !defined(HAVE_APPINDICATOR) && !defined(HAVE_APPINDICATOR_029) +#if !defined(HAVE_APPINDICATOR) ui_status_init(&ui); ui_status_set_visible(1); #endif @@ -622,7 +616,7 @@ int main(int argc, char **argv) g_timeout_add(1000 * ui.graph_update_interval, ui_refresh_thread, &ui); -#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029) +#if defined(HAVE_APPINDICATOR) ui_appindicator_init(&ui); #endif