From 5e659d7bfaf5c46dcff93d63c8252bf11d179c37 Mon Sep 17 00:00:00 2001 From: Daniel Lezcano Date: Fri, 19 Feb 2016 20:22:12 +0000 Subject: Remove the selectedwindow options. There is no logic behind the default window selection. The last option parsed set the default window. Instead of having a specific boolean set, use the first bit found in the flags for selecting the the windows. eg. powerdebug -s -g => flags = SENSOR_OPTION | GPIO_OPTION; => flags = 0x2 | 0x8 = 0x0a => flags = b01010000 => fsl(flags) = 2 => default window = 1 << fsl(flags) - 1 => default window = 1 << 2 - 1 => default window = 1 << 1 => default window = 2 = SENSOR_OPTION Signed-off-by: Daniel Lezcano --- display.c | 13 ++++++++----- display.h | 4 +++- powerdebug.c | 10 +--------- powerdebug.h | 1 - 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/display.c b/display.c index ed010b3..eada839 100644 --- a/display.c +++ b/display.c @@ -21,6 +21,9 @@ #include #include +#define _GNU_SOURCE +#include +#undef _GNU_SOURCE #include #include #include @@ -548,12 +551,12 @@ static int display_find_keystroke(int fd, void *data) return 0; } -int display_init(int wdefault) +int display_init(struct powerdebug_options *options) { int i, maxx, maxy; size_t array_size = sizeof(windata) / sizeof(windata[0]); - current_win = wdefault; + current_win = 1 << (ffs(options->flags & DEFAULT_OPTION) - 1); if (mainloop_add(0, display_keystroke, NULL)) return -1; @@ -605,13 +608,13 @@ int display_init(int wdefault) if (!footer_win) return -1; - if (display_show_header(wdefault)) + if (display_show_header(current_win)) return -1; - if (display_show_footer(wdefault, NULL)) + if (display_show_footer(current_win, NULL)) return -1; - return display_refresh(wdefault, true); + return display_refresh(current_win, true); } int display_column_name(const char *line) diff --git a/display.h b/display.h index 8882918..d8f87bf 100644 --- a/display.h +++ b/display.h @@ -29,6 +29,8 @@ struct display_ops { int (*change)(int keyvalue); }; +struct powerdebug_options; + extern int display_print_line(int window, int line, char *str, int bold, void *data); extern void display_message(int window, char *buf); @@ -37,7 +39,7 @@ extern int display_refresh_pad(int window); extern int display_reset_cursor(int window); extern void *display_get_row_data(int window); -extern int display_init(int wdefault); +extern int display_init(struct powerdebug_options *opt); extern int display_register(int win, struct display_ops *ops); extern int display_column_name(const char *line); diff --git a/powerdebug.c b/powerdebug.c index b626b05..b0d2ade 100644 --- a/powerdebug.c +++ b/powerdebug.c @@ -93,7 +93,6 @@ int getoptions(int argc, char *argv[], struct powerdebug_options *options) memset(options, 0, sizeof(*options)); options->ticktime = 10; - options->selectedwindow = -1; while (1) { int optindex = 0; @@ -106,19 +105,15 @@ int getoptions(int argc, char *argv[], struct powerdebug_options *options) switch (c) { case 'r': options->flags |= REGULATOR_OPTION; - options->selectedwindow = REGULATOR; break; case 's': options->flags |= SENSOR_OPTION; - options->selectedwindow = SENSOR; break; case 'c': options->flags |= CLOCK_OPTION; - options->selectedwindow = CLOCK; break; case 'g': options->flags |= GPIO_OPTION; - options->selectedwindow = GPIO; break; case 'd': options->flags |= DUMP_OPTION; @@ -152,9 +147,6 @@ int getoptions(int argc, char *argv[], struct powerdebug_options *options) if (!(options->flags & DEFAULT_OPTION)) options->flags |= DEFAULT_OPTION; - if (options->selectedwindow == -1) - options->selectedwindow = CLOCK; - return 0; } @@ -177,7 +169,7 @@ static int powerdebug_dump(struct powerdebug_options *options) static int powerdebug_display(struct powerdebug_options *options) { - if (display_init(options->selectedwindow)) { + if (display_init(options)) { printf("failed to initialize display\n"); return -1; } diff --git a/powerdebug.h b/powerdebug.h index 2df0a27..3852ca8 100644 --- a/powerdebug.h +++ b/powerdebug.h @@ -35,7 +35,6 @@ struct powerdebug_options { int flags; unsigned int ticktime; - int selectedwindow; char *clkname; }; -- cgit v1.2.3