diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2016-02-19 20:22:12 +0000 |
---|---|---|
committer | Daniel Lezcano <daniel.lezcano@linaro.org> | 2016-02-19 21:04:57 +0000 |
commit | 5e659d7bfaf5c46dcff93d63c8252bf11d179c37 (patch) | |
tree | 89435f011d85d77a6f4669e164a26b2d97394bbc | |
parent | b4eec7eb5e0408ecc0e450025dbb5ab3fe6cbc5c (diff) |
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 <daniel.lezcano@linaro.org>
-rw-r--r-- | display.c | 13 | ||||
-rw-r--r-- | display.h | 4 | ||||
-rw-r--r-- | powerdebug.c | 10 | ||||
-rw-r--r-- | powerdebug.h | 1 |
4 files changed, 12 insertions, 16 deletions
@@ -21,6 +21,9 @@ #include <stdio.h> #include <string.h> +#define _GNU_SOURCE +#include <strings.h> +#undef _GNU_SOURCE #include <stdlib.h> #include <ctype.h> #include <ncurses.h> @@ -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) @@ -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; }; |