aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Phillips <dbphillipsnz@gmail.com>2015-09-01 21:19:01 +1200
committerDavid Phillips <dbphillipsnz@gmail.com>2015-09-01 21:39:20 +1200
commit32bff14871bf8f534fcdcdba1d8409430d6c464b (patch)
tree6de6cd2cda5cc91d76ae2fac8764270a01cb260c
parent841445fb7a482b9c1ed9eca896d308afab4316d8 (diff)
downloadparamano-32bff14871bf8f534fcdcdba1d8409430d6c464b.tar.xz
Conforming to style, switching paramano-set to getopt (finally)
-rw-r--r--TODO.md1
-rw-r--r--bat_tray.c20
-rw-r--r--common.c13
-rw-r--r--common.h6
-rw-r--r--getcore.h2
-rw-r--r--getfreq.c37
-rw-r--r--getfreq.h3
-rw-r--r--getgov.c22
-rw-r--r--getgov.h2
-rw-r--r--paramano.c22
-rw-r--r--paramano.h2
-rw-r--r--paramano_set.c149
-rw-r--r--paramano_set_interface.h2
-rw-r--r--tray.c17
-rw-r--r--tray.h2
15 files changed, 130 insertions, 170 deletions
diff --git a/TODO.md b/TODO.md
index b0926ac..ad74478 100644
--- a/TODO.md
+++ b/TODO.md
@@ -8,5 +8,4 @@ Normal Priority
Low Priority
------------
-* Ensure all code aligns to an explicit style
* Make a curses-based version of paramano
diff --git a/bat_tray.c b/bat_tray.c
index a848278..446dcf4 100644
--- a/bat_tray.c
+++ b/bat_tray.c
@@ -43,7 +43,6 @@ long get_bat_seconds_left()
int full = 0;
int rate = 0;
-
/* FIXME this now/full/rate logic has probably earned its own function.
* Not because of DRY, but just for readability's sake perhaps */
@@ -81,12 +80,8 @@ long get_bat_seconds_left()
/* Note the '<=' for rate (we divide by rate) */
- if (full < 0 ||
- now < 0 ||
- rate <= 0)
- {
+ if (full < 0 || now < 0 || rate <= 0)
return -1;
- }
switch(get_battery_state())
{
@@ -188,10 +183,10 @@ void bat_tray_init()
{
char icon_file[1024];
- // Get the battery number, store it for later
+ /* Get the battery number, store it for later */
bat_num = get_bat_num();
- // Set up battery info filenames/paths
+ /* Set up battery info filenames/paths */
snprintf(CHARGE_VALUE_PATH, sizeof(CHARGE_STATE_PATH), "/sys/class/power_supply/BAT%d/capacity", bat_num);
snprintf(CHARGE_STATE_PATH, sizeof(CHARGE_STATE_PATH), "/sys/class/power_supply/BAT%d/status", bat_num);
@@ -231,7 +226,7 @@ void bat_tray_hide()
int get_battery_state()
{
char state[1024];
- FILE* fd;
+ FILE* fd = NULL;
if (!(fd = fopen(CHARGE_STATE_PATH, "r")) ||
!fgets(state, sizeof(state), fd))
@@ -260,13 +255,14 @@ int get_battery_state()
**********************************************************************/
int get_bat_num()
{
- FILE* fd;
+ FILE* fd = NULL;
char filename[1024];
- unsigned int i;
+ int i = 0;
+
for(i = 0; i < 10; i++)
{
snprintf(filename, sizeof(filename), "/sys/class/power_supply/BAT%d/present", i);
- if( (fd = fopen(filename, "r")) )
+ if((fd = fopen(filename, "r")))
{
if (fgetc(fd) == '1')
{
diff --git a/common.c b/common.c
index d1be19b..953a33b 100644
--- a/common.c
+++ b/common.c
@@ -30,7 +30,6 @@ int get_int_value_from_filef(const char* format, ...)
va_start(a, format);
value = vget_int_value_from_filef(format, a);
va_end(a);
-
return value;
}
@@ -40,7 +39,6 @@ int get_int_value_from_filef(const char* format, ...)
**********************************************************************/
int vget_int_value_from_filef(const char* format, va_list args)
{
-
char filename[1024];
if (vsnprintf(filename, sizeof(filename), format, args) == sizeof(filename))
fprintf(stderr, "WARN: filename buffer too small");
@@ -53,9 +51,9 @@ int vget_int_value_from_filef(const char* format, va_list args)
**********************************************************************/
int get_int_value_from_file(const char* filename)
{
- FILE* fd;
+ FILE* fd = NULL;
char buffer[512];
- int value;
+ int value = 0;
if(!(fd = fopen(filename, "r")))
return -1;
@@ -68,7 +66,6 @@ int get_int_value_from_file(const char* filename)
}
-
/***********************************************************************
* Truncates a string at the first '\r' or '\n'
**********************************************************************/
@@ -84,9 +81,5 @@ void chomp(char *string)
**********************************************************************/
int get_int(const char* string)
{
- char* first_num;
-
- first_num = strpbrk(string, "0123456789");
-
- return atoi(first_num);
+ return atoi(strpbrk(string, "0123456789"));
}
diff --git a/common.h b/common.h
index 24f9dd6..b672e0d 100644
--- a/common.h
+++ b/common.h
@@ -27,12 +27,12 @@ int get_int_value_from_file(const char* filename);
void chomp(char *string);
int get_int(const char* string);
-// <ew> Stringification of line number
+/* <ew> Stringification of line number */
#define STRING2(x) #x
#define STRING(x) STRING2(x)
#define STR_LINE STRING(__LINE__)
-// </ew>
+/* </ew> */
#define info(...) printf("INFO: "__FILE__":"STR_LINE" --- "__VA_ARGS__)
#define FILE_PATH_SIZE 2048
-#endif
+#endif /* ifndef COMMON_H */
diff --git a/getcore.h b/getcore.h
index 5e6cbb9..ecdca9d 100644
--- a/getcore.h
+++ b/getcore.h
@@ -22,4 +22,4 @@
void gc_init();
unsigned int gc_number();
-#endif
+#endif /* ifndef GETCORE_H */
diff --git a/getfreq.c b/getfreq.c
index fbf46e9..3ff6245 100644
--- a/getfreq.c
+++ b/getfreq.c
@@ -23,7 +23,7 @@
#define FREQ_LENGTH 14
static char freqs[MAX_CORES][MAX_FREQS][FREQ_LENGTH];
-static int total_freqs; // Number of freqs for core 0
+static int total_freqs; /* Number of freqs for core 0 */
/***********************************************************************
@@ -31,25 +31,24 @@ static int total_freqs; // Number of freqs for core 0
**********************************************************************/
void gf_init()
{
- char freq_string[4096]; // POSIX suggested line length. Source of error for CPUs with a huge number of freqs
- char *next_token;
- unsigned int i;
+ char freq_string[4096]; /* POSIX suggested line length. Source of error for CPUs with a huge number of freqs */
+ char *next_token = NULL;
+ unsigned int i = 0;
memset(freqs, '\0', sizeof(freqs));
-
- for(i = 0; (i < gc_number() && i < MAX_CORES); i++)
+ for(i = 0; i < gc_number() && i < MAX_CORES; i++)
{
memset(freq_string, '\0', sizeof(freq_string) );
- // Get available governor freqs. If no governor, try next cpu
+ /* Get available governor freqs. If no governor, try next cpu */
if (gf_available(i, freq_string, sizeof(freq_string) ) == -1)
continue;
*strchrnul(freq_string, '\n') = '\0';
- // freq_string is a space separated list of freqs
- // Use strtok to find each
+ /* freq_string is a space separated list of freqs.
+ * Use strtok to find each */
next_token = strtok(freq_string, " \n");
total_freqs = 0;
do
@@ -59,7 +58,7 @@ void gf_init()
} while((next_token = strtok(NULL, " ")) != NULL);
}
- // Hit the limit of storage of cores' frequencies
+ /* Hit the limit of storage of cores' frequencies */
if (i == MAX_CORES)
info("Unable to add more than %d cores\n", MAX_CORES);
}
@@ -69,18 +68,17 @@ void gf_init()
**********************************************************************/
int gf_current(int core)
{
- FILE* fd;
+ FILE* fd = NULL;
char buff[4096];
char path[1024];
- int freq;
+ int freq = 0;
snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_cur_freq", core);
if(!(fd = fopen(path, "r")))
return -1;
- fgets(buff, 13, fd);
-
+ fgets(buff, 13, fd); /* FIXME magic */
freq = atoi(buff);
fclose(fd);
@@ -93,7 +91,7 @@ int gf_current(int core)
**********************************************************************/
int gf_available(int core, char* out, int size)
{
- FILE* fd;
+ FILE* fd = NULL;
char path[1024];
snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_available_frequencies", core);
@@ -102,7 +100,6 @@ int gf_available(int core, char* out, int size)
return -1;
fgets(out, size, fd);
-
fclose(fd);
return 0;
}
@@ -112,13 +109,13 @@ int gf_available(int core, char* out, int size)
**********************************************************************/
void gf_get_frequency_label(char *buffer, size_t max_size, int freq)
{
- if(freq >= 1000000000) // >= 1 billion KHz (1 THz) This, ladies and gentlement, is future-proofing ;)
+ if(freq >= 1000000000) /* This, ladies and gentlement, is future-proofing */
snprintf(buffer, max_size, "%.2f THz", (double)freq/1000000000 );
- else if(freq >= 1000000) // >= 1 million KHz (1 GHz)
+ else if(freq >= 1000000)
snprintf(buffer, max_size, "%.2f GHz", (double)freq/1000000 );
- else if (freq >= 1000) // >= 1 thousand KHz (1 MHz)
+ else if (freq >= 1000)
snprintf(buffer, max_size, "%.2f MHz", (double)freq/1000 );
- else // < 1000 KHz (1 MHz)
+ else
snprintf(buffer, max_size, "%.2f KHz", (double)freq);
}
diff --git a/getfreq.h b/getfreq.h
index f3c490c..5ec9d35 100644
--- a/getfreq.h
+++ b/getfreq.h
@@ -27,5 +27,4 @@ char* gf_freqa(int core, int index);
int gf_freqi(int core, int index);
unsigned int gf_number();
-
-#endif
+#endif /* ifndef GETFREQ_H */
diff --git a/getgov.c b/getgov.c
index 7ff8562..f75e6c9 100644
--- a/getgov.c
+++ b/getgov.c
@@ -27,20 +27,20 @@ static int total_governors;
**********************************************************************/
void gg_init()
{
- gchar gov_string[500];
+ char gov_string[500];
unsigned int i = 0;
total_governors = 0;
+
for (i = 0; i < gc_number(); i++)
{
memset(gov_string, '\0', sizeof(gov_string) );
gg_available(i, gov_string, sizeof(gov_string) );
- // go through every governor in gov_string
- gchar* curr = (char*)&gov_string;
- gchar* end_of_curr = g_strstr_len(curr, strlen(curr), " ");
+ char* curr = gov_string;
+ char* end_of_curr = g_strstr_len(curr, strlen(curr), " ");
while (end_of_curr)
{
- memset(governors[i][total_governors], '\0', 13);
+ memset(governors[i][total_governors], '\0', 13); /* FIXME magic */
memmove(governors[i][total_governors], curr, end_of_curr - curr);
curr = end_of_curr+1;
@@ -56,20 +56,17 @@ void gg_init()
**********************************************************************/
bool gg_current(int core, char* out, int size)
{
- FILE* fd;
+ FILE* fd = NULL;
char path[1024];
+
snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_governor", core);
if (!(fd = fopen(path, "r")))
return false;
fgets(out, size, fd);
-
- // Get first line
- gchar* newline = g_strrstr(out, "\n");
- *newline = '\0';
-
fclose(fd);
+ chomp(out);
return true;
}
@@ -79,8 +76,9 @@ bool gg_current(int core, char* out, int size)
**********************************************************************/
bool gg_available(int core, char* out, int size)
{
+ FILE *fd = NULL;
char path[1024];
- FILE *fd;
+
snprintf(path, sizeof(path), "/sys/devices/system/cpu/cpu%d/cpufreq/scaling_available_governors", core);
if (!(fd = fopen(path, "r")))
diff --git a/getgov.h b/getgov.h
index 131f164..9339d20 100644
--- a/getgov.h
+++ b/getgov.h
@@ -25,4 +25,4 @@ bool gg_available(int core, char* out, int size);
char* gg_gov(int core, int index);
unsigned int gg_number();
-#endif
+#endif /* ifndef GETGOV_H */
diff --git a/paramano.c b/paramano.c
index b0e2671..1af70a7 100644
--- a/paramano.c
+++ b/paramano.c
@@ -41,11 +41,11 @@ int main(int argc, char** argv)
tray_init();
tray_show();
- // Show battery tray only if we're supposed to
+ /* Show battery tray only if we're supposed to */
if(DEFAULT_SHOW_BATTERY)
{
bat_tray_init();
- bat_tray_show();
+// bat_tray_show();
}
gtk_main();
@@ -60,22 +60,22 @@ void config_init()
{
struct config_file config;
FILE* fd = NULL;
- gboolean home_config_exists;
- config.key_file = NULL;
+ bool home_config_exists = false;
+ config.key_file = NULL;
config.file_name = g_strconcat(getenv("HOME"), "/.paramano.conf", NULL);
- // Check if ~/.paramano.conf exists
+ /* Check if ~/.paramano.conf exists */
if( (fd = fopen(config.file_name, "r")) )
{
- // If file exists, close it, set param to TRUE
+ /* If file exists, close it, set param to true */
fclose(fd);
- home_config_exists = TRUE;
+ home_config_exists = true;
} else {
- // If file didn't exist, it's not open (don't close it), free filename var, set param to FALSE
+ /* If file didn't exist, it's not open (don't close it), free filename var, set param to false */
g_free(config.file_name);
- home_config_exists = FALSE;
+ home_config_exists = false;
}
if(!home_config_exists)
@@ -88,7 +88,7 @@ void config_init()
return;
}
- // Reset defaults to default values
+ /* Reset defaults to default values */
defaults_init();
DEFAULT_GOV = config_get_key(&config, "governor", "default");
@@ -105,7 +105,7 @@ void config_init()
if ((temp = config_get_key(&config, "extra", "theme")))
snprintf(DEFAULT_THEME, sizeof(DEFAULT_THEME), "%s", temp);
- g_free(config.file_name);
+// g_free(config.file_name);
config_close(&config);
}
diff --git a/paramano.h b/paramano.h
index 430226a..9686a2e 100644
--- a/paramano.h
+++ b/paramano.h
@@ -42,4 +42,4 @@
void config_init();
-#endif
+#endif /* ifndef PARAMANO_H */
diff --git a/paramano_set.c b/paramano_set.c
index 9bcbbff..b902a84 100644
--- a/paramano_set.c
+++ b/paramano_set.c
@@ -19,107 +19,86 @@
#include "paramano.h"
-#define FILE_PATH_STRING_SIZE 100
-
-#define ARG_CORE 0x1
-#define ARG_GOV 0x2
-#define ARG_FREQ 0x4
-typedef struct {
- char present;
- char *core;
- char *governor;
- char *frequency;
-} argument_summary;
-
-char write_str_to_file(const char *file, const char *data, const char *core)
+#define set_freq_max(freq, core) write_str_to_file("scaling_max_freq", freq, core)
+#define set_freq_min(freq, core) write_str_to_file("scaling_min_freq", freq, core)
+#define set_speed(freq, core) write_str_to_file("scaling_setspeed", freq, core)
+#define set_gov(gov, core) write_str_to_file("scaling_governor", gov, core)
+
+void die_syntax(const char *prefix);
+char write_str_to_file(const char *file, const char *data, int core);
+
+int main(int argc, char *argv[])
{
- FILE *fd;
- char file_path[FILE_PATH_STRING_SIZE];
+ char c = 0;
+ int core = -1;
+ char *frequency = NULL;
+ char *governor = NULL;
- // Prepare file path
- memset(file_path, '\0', sizeof(file_path));
- sprintf(file_path, "/sys/devices/system/cpu/cpu%d/cpufreq/%s", atoi(core), file );
+ setlocale(LC_ALL, "");
+ bindtextdomain("paramano", LOCALEDIR);
+ textdomain("paramano");
- // Try to open file and write data to it
- if ( (fd = fopen(file_path, "w")) != NULL )
+ if (getuid() != 0)
+ fprintf(stderr, "Warning: running as UID %d, not 0\n", getuid());
+
+ while ((c = getopt(argc, argv, "c:f:g:")) != -1)
{
- fputs(data, fd);
- fclose(fd);
- return 1;
+ switch (c)
+ {
+ case 'c':
+ core = atoi(optarg);
+ break;
+ case 'f':
+ frequency = optarg;
+ break;
+ case 'g':
+ governor = optarg;
+ break;
+ default:
+ die_syntax(argv[0]);
+ break;
+ }
}
- // Fallthrough: File couldn't be opened for writing
- fprintf(stderr, _("FAILED: Couldn't open %s for writing\n") , file_path);
- return 0;
-}
+ if (core < 0 ||
+ (governor == NULL && frequency == NULL) ||
+ (governor != NULL && frequency != NULL))
+ die_syntax(argv[0]);
+ if (governor != NULL)
+ return set_gov(governor, core);
-#define set_freq_max(freq,core) write_str_to_file("scaling_max_freq",freq,core)
-#define set_freq_min(freq,core) write_str_to_file("scaling_min_freq",freq,core)
-#define set_speed(freq,core) write_str_to_file("scaling_setspeed",freq,core)
-#define set_gov(gov,core) write_str_to_file("scaling_governor",gov,core)
+ if (frequency != NULL)
+ return set_gov("userspace", core) | set_speed(frequency, core);
-void get_argument_summary(int argc, char **argv, argument_summary *argsum)
-{
- int arg;
+ return 1;
+}
- // Check for -{c,g,f} xyz
- for ( arg = 1; arg < argc-1; arg+=2 )
- {
- // Can't have empty argument
- if ( strlen(argv[arg+1]) != 0 )
- {
- if ( strcmp(argv[arg], "-c") == 0 )
- {
- // Found -c with an arg
- argsum->present |= ARG_CORE;
- argsum->core = (char*)(argv[arg+1]);
- continue;
- }
-
- if ( strcmp(argv[arg], "-f") == 0 )
- {
- // Found -f with an arg
- argsum->present |= ARG_FREQ;
- argsum->frequency = (char*)(argv[arg+1]);
- continue;
- }
-
- if ( strcmp(argv[arg], "-g") == 0 )
- {
- // Found -g with an arg
- argsum->present |= ARG_GOV;
- argsum->governor = (char*)(argv[arg+1]);
- //continue;
- }
- }
- }
+void die_syntax(const char *prefix)
+{
+ fprintf(stderr, _("%s {-f frequency|-g governor} -c core\n"), prefix);
+ exit(1);
}
-int main(int argc, char *argv[])
+char write_str_to_file(const char *file, const char *data, int core)
{
- setlocale(LC_ALL,"");
- bindtextdomain("paramano",LOCALEDIR);
- textdomain("paramano");
+ FILE *fd = NULL;
+ char file_path[1024];
- argument_summary args;
- memset(&args, 0, sizeof(args));
+ /* Prepare file path */
+ snprintf(file_path, sizeof(file_path), "/sys/devices/system/cpu/cpu%d/cpufreq/%s", core, file);
- // If unusual number of args, give up now
- if (argc == 5)
+ /* Try to open file and write data to it */
+ if ( (fd = fopen(file_path, "w")) != NULL )
{
- if (getuid() != 0)
- fprintf(stderr,"Warning: running as UID %d, not 0\n",getuid() );
+ fputs(data, fd);
+ fclose(fd);
+ return 1;
+ }
- get_argument_summary(argc, argv, &args);
+ /* Fallthrough: File couldn't be opened for writing */
+ fprintf(stderr, _("FAILED: Couldn't open %s for writing\n") , file_path);
+ return 0;
+}
- if ( args.present == ( ARG_CORE | ARG_GOV ) )
- return set_gov(args.governor , args.core);
- if ( args.present == ( ARG_CORE | ARG_FREQ ) )
- return set_gov("userspace", args.core) | set_speed(args.frequency, args.core);
- }
- // Fall through to here if no valid argument combination
- fprintf(stderr, _("%s {-f frequency|-g governor} -c core\n"), argv[0] );
- return 1;
-}
diff --git a/paramano_set_interface.h b/paramano_set_interface.h
index 20b96bf..d533285 100644
--- a/paramano_set_interface.h
+++ b/paramano_set_interface.h
@@ -22,4 +22,4 @@
void si_gov(char* gov, int core);
void si_freq(int freq, int core);
-#endif
+#endif /* ifndef PARAMANO_SET_INTERFACE_H */
diff --git a/tray.c b/tray.c
index a8a0b54..dafda1f 100644
--- a/tray.c
+++ b/tray.c
@@ -102,7 +102,7 @@ static void tray_generate_menu()
gint current_frequency = gf_current(0);
- // Add available frequencies
+ /* Add available frequencies */
for(i = 0; i < gf_number(); i++)
{
gf_get_frequency_label(label, sizeof(label), gf_freqi(0, i));
@@ -119,11 +119,11 @@ static void tray_generate_menu()
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
}
- // Add a seperator
+ /* Add a seperator */
GtkWidget* seperator = gtk_separator_menu_item_new();
gtk_menu_append(menu, seperator);
- // Add available governors
+ /* Add available governors */
for(i = 0; i < gg_number(); i++)
{
if(g_strcmp0(gg_gov(0, i), "userspace") == 0)
@@ -158,7 +158,7 @@ static gboolean show_tooltip(GtkStatusIcon* status_icon, gint x, gint y, gboolea
static void update_tooltip_cache()
{
char msg[10240], label[1024];
- char current_governor[20]; // TO DO
+ char current_governor[20]; /* FIXME magic */
unsigned int i = 0;
unsigned int offset = 0;
@@ -198,14 +198,14 @@ static void update_icon()
int max_frequency = gf_freqi(0, 0);
int adjusted_percent, percent;
- // If max_frequency is 0, we don't want to divide by it,
- // so give up, call it a day, and have a simple icon
+ /* If max_frequency is 0, we don't want to divide by it,
+ * so give up, call it a day, and have a simple icon */
if (max_frequency == 0)
{
adjusted_percent = 0;
} else {
- // Percentages need to be {25,50,75,100}. Round to one of these numbers.
- // TO DO: round/truncate instead of lots of ifs
+ /* Percentages need to be {25,50,75,100}. Round to one of these numbers.
+ * TO DO: round/truncate instead of lots of ifs */
percent = (gf_current(0) * 100)/max_frequency;
if(percent == 100) {
adjusted_percent = 100;
@@ -264,7 +264,6 @@ static gboolean update()
**********************************************************************/
void tray_set_defaults()
{
- // Set defaults
unsigned int i = 0;
if(DEFAULT_GOV)
{
diff --git a/tray.h b/tray.h
index dfc21b8..8560017 100644
--- a/tray.h
+++ b/tray.h
@@ -26,4 +26,4 @@ void tray_hide();
bool tray_visible();
bool tray_embedded();
-#endif
+#endif /* ifndef TRAY_H */