diff options
author | David <dbphillipsnz@gmail.com> | 2014-05-10 14:08:33 +1200 |
---|---|---|
committer | David <dbphillipsnz@gmail.com> | 2014-06-06 20:29:40 +1200 |
commit | 8e6c8cd0ad292386f1de8b22a9db060c11e5bbe6 (patch) | |
tree | a5abf5952a5794931dca6b77b28eaed4dce997a1 | |
parent | c537b4cc6d0bf2cedcb95848328e902c5be50ace (diff) | |
download | paramano-8e6c8cd0ad292386f1de8b22a9db060c11e5bbe6.tar.xz |
Fixed auto governor change bug
-rw-r--r-- | defaults.c | 11 | ||||
-rw-r--r-- | defaults.h | 4 | ||||
-rw-r--r-- | reload.c | 5 | ||||
-rw-r--r-- | tray.c | 57 | ||||
-rw-r--r-- | tray.h | 1 | ||||
-rw-r--r-- | trayfreq.c | 4 | ||||
-rw-r--r-- | trayfreq_set_interface.c | 4 |
7 files changed, 59 insertions, 27 deletions
@@ -25,3 +25,14 @@ char* _DEFAULT_BAT_GOV; char* _DEFAULT_AC_GOV; bool _DEFAULT_SHOW_BATTERY = TRUE; bool _DEFAULT_USE_SUDO = FALSE; + +void defaults_init() +{ + _DEFAULT_GOV = NULL; + _DEFAULT_FREQ = NULL; + _DEFAULT_PROG = NULL; + _DEFAULT_BAT_GOV = NULL; + _DEFAULT_AC_GOV = NULL; + _DEFAULT_SHOW_BATTERY = TRUE; + _DEFAULT_USE_SUDO = FALSE; +} @@ -20,6 +20,7 @@ #define DEFAULTS_H #include "bool.h" +#include <stdlib.h> char* _DEFAULT_GOV; char* _DEFAULT_FREQ; @@ -29,4 +30,7 @@ char* _DEFAULT_AC_GOV; bool _DEFAULT_SHOW_BATTERY; bool _DEFAULT_USE_SUDO; + +void defaults_init(); + #endif /* ifndef DEFAULTS_H */ @@ -20,12 +20,15 @@ void reload_config() { + debug("Reloading config\n"); config_init(); if (_DEFAULT_SHOW_BATTERY) { - bat_tray_hide(); + //bat_tray_hide(); bat_tray_show(); } else { bat_tray_hide(); } + debug("Re-init freq tray\n"); + tray_set_defaults(); } @@ -164,30 +164,6 @@ static gboolean update_tooltip(GtkStatusIcon* status_icon,gint x,gint y,gboolean memset(msg, '\0', sizeof(msg)); memset(current_governor, '\0', sizeof(current_governor) ); - - switch ( get_battery_state() ) - { - case STATE_DISCHARGING: - debug("Discharging\n"); - if(_DEFAULT_BAT_GOV) - { - for(i = 0; i < gc_number(); ++i) - si_gov(_DEFAULT_BAT_GOV, i); - } - break; - - case STATE_CHARGING: - case STATE_FULL: - debug("Charging/Full\n"); - if(_DEFAULT_AC_GOV) - { - for(i = 0; i < gc_number(); ++i) - si_gov(_DEFAULT_AC_GOV, i); - } - - break; - } - gg_current(0, current_governor, sizeof(current_governor) ); sprintf(msg+strlen(msg), _("Governor: %s\n"), current_governor); @@ -215,12 +191,36 @@ static void popup_menu(GtkStatusIcon* statuc_icon,guint button,guint activate_ti static gboolean update_icon(gpointer user_data) { + int i; + switch ( get_battery_state() ) + { + case STATE_DISCHARGING: + debug("Discharging\n"); + if(_DEFAULT_BAT_GOV) + { + for(i = 0; i < gc_number(); ++i) + si_gov(_DEFAULT_BAT_GOV, i); + } + break; + + case STATE_CHARGING: + case STATE_FULL: + debug("Charging/Full\n"); + if(_DEFAULT_AC_GOV) + { + for(i = 0; i < gc_number(); ++i) + si_gov(_DEFAULT_AC_GOV, i); + } + + break; + } + debug("Updating icon\n"); tray_update_icon_percent(); return TRUE; } -void tray_init() +void tray_set_defaults() { // Set defaults int i = 0; @@ -240,6 +240,11 @@ void tray_init() si_freq(atoi(_DEFAULT_FREQ), i); } +} + +void tray_init() +{ + tray_set_defaults(); tray = gtk_status_icon_new(); gchar* icon_file = g_strconcat("/usr/share/trayfreq/cpufreq-0.png", NULL); @@ -268,7 +273,7 @@ void tray_update_icon_percent() gulong max_frequency = gf_freqi(0, 0); gint adjusted_percent = 0; // If no governor, set percentage to 0. This if statement fixes an FPE a few lines down - if (max_frequency == 0) + if (gg_number() == 0) { adjusted_percent = 0; } else { @@ -36,6 +36,7 @@ #include <libintl.h> +void tray_set_defaults(); void tray_init(); void tray_set_tooltip(const gchar* msg); void tray_update_icon_percent(); @@ -52,6 +52,10 @@ void config_init() g_warning(_("Failed to open config files!\n")); return; } + + // Reset defaults to default values + defaults_init(); + _DEFAULT_GOV = config_get_key(&config, "governor", "default"); _DEFAULT_FREQ = config_get_key(&config, "frequency", "default"); _DEFAULT_BAT_GOV = config_get_key(&config, "battery", "governor"); diff --git a/trayfreq_set_interface.c b/trayfreq_set_interface.c index 3e26112..e64a88e 100644 --- a/trayfreq_set_interface.c +++ b/trayfreq_set_interface.c @@ -18,6 +18,8 @@ #include "trayfreq_set_interface.h" +#include "debug.h" + #include <stdio.h> #include <stdlib.h> @@ -30,6 +32,7 @@ void si_gov(char* gov, int core) } else { sprintf(cmd, "trayfreq-set -g %s -c %i",gov,core); } + debug("Running '%s'\n",cmd); system(cmd); } @@ -42,5 +45,6 @@ void si_freq(int freq, int core) } else { sprintf(cmd, "trayfreq-set -f %i -c %i",freq,core); } + debug("Running '%s'\n",cmd); system(cmd); } |