From e8d415c97324de6e383c8d8c785d22c709098c24 Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Sun, 8 Aug 2010 19:56:47 -0300 Subject: [PATCH] --- yaml --- r: 209259 b: refs/heads/master c: 34cea7f7c0620c964676eece258ef431a6608bce h: refs/heads/master i: 209257: 0dbfe9d1297238dfa27e0b35819e4e0ed12d5331 209255: 16612ea9bfad81622e75bd91ce104f253f4e0467 v: v3 --- [refs] | 2 +- trunk/tools/perf/Makefile | 2 + trunk/tools/perf/util/debug.h | 4 +- trunk/tools/perf/util/newt.c | 56 --------------------------- trunk/tools/perf/util/ui/progress.c | 60 +++++++++++++++++++++++++++++ trunk/tools/perf/util/ui/progress.h | 11 ++++++ 6 files changed, 75 insertions(+), 60 deletions(-) create mode 100644 trunk/tools/perf/util/ui/progress.c create mode 100644 trunk/tools/perf/util/ui/progress.h diff --git a/[refs] b/[refs] index ea348092c8e9..eff16072d0c3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5575536fc7ad7577a4e687a13e2f49acebc519f3 +refs/heads/master: 34cea7f7c0620c964676eece258ef431a6608bce diff --git a/trunk/tools/perf/Makefile b/trunk/tools/perf/Makefile index d77a101ab7dd..528c91469c0d 100644 --- a/trunk/tools/perf/Makefile +++ b/trunk/tools/perf/Makefile @@ -570,8 +570,10 @@ else LIB_OBJS += $(OUTPUT)util/newt.o LIB_OBJS += $(OUTPUT)util/ui/browser.o LIB_OBJS += $(OUTPUT)util/ui/helpline.o + LIB_OBJS += $(OUTPUT)util/ui/progress.o LIB_H += util/ui/browser.h LIB_H += util/ui/helpline.h + LIB_H += util/ui/progress.h endif endif diff --git a/trunk/tools/perf/util/debug.h b/trunk/tools/perf/util/debug.h index 047ac3324ebe..a929b06cfc0a 100644 --- a/trunk/tools/perf/util/debug.h +++ b/trunk/tools/perf/util/debug.h @@ -31,9 +31,7 @@ static inline void ui_progress__update(struct ui_progress *self __used, static inline void ui_progress__delete(struct ui_progress *self __used) {} #else int browser__show_help(const char *format, va_list ap); -struct ui_progress *ui_progress__new(const char *title, u64 total); -void ui_progress__update(struct ui_progress *self, u64 curr); -void ui_progress__delete(struct ui_progress *self); +#include "ui/progress.h" #endif #endif /* __PERF_DEBUG_H */ diff --git a/trunk/tools/perf/util/newt.c b/trunk/tools/perf/util/newt.c index 23f3b7d31bff..c0986d342954 100644 --- a/trunk/tools/perf/util/newt.c +++ b/trunk/tools/perf/util/newt.c @@ -39,62 +39,6 @@ newtComponent newt_form__new(void); -struct ui_progress { - newtComponent form, scale; -}; - -struct ui_progress *ui_progress__new(const char *title, u64 total) -{ - struct ui_progress *self = malloc(sizeof(*self)); - - if (self != NULL) { - int cols; - - if (use_browser <= 0) - return self; - newtGetScreenSize(&cols, NULL); - cols -= 4; - newtCenteredWindow(cols, 1, title); - self->form = newtForm(NULL, NULL, 0); - if (self->form == NULL) - goto out_free_self; - self->scale = newtScale(0, 0, cols, total); - if (self->scale == NULL) - goto out_free_form; - newtFormAddComponent(self->form, self->scale); - newtRefresh(); - } - - return self; - -out_free_form: - newtFormDestroy(self->form); -out_free_self: - free(self); - return NULL; -} - -void ui_progress__update(struct ui_progress *self, u64 curr) -{ - /* - * FIXME: We should have a per UI backend way of showing progress, - * stdio will just show a percentage as NN%, etc. - */ - if (use_browser <= 0) - return; - newtScaleSet(self->scale, curr); - newtRefresh(); -} - -void ui_progress__delete(struct ui_progress *self) -{ - if (use_browser > 0) { - newtFormDestroy(self->form); - newtPopWindow(); - } - free(self); -} - static int ui_entry__read(const char *title, char *bf, size_t size, int width) { struct newtExitStruct es; diff --git a/trunk/tools/perf/util/ui/progress.c b/trunk/tools/perf/util/ui/progress.c new file mode 100644 index 000000000000..d7fc399d36b3 --- /dev/null +++ b/trunk/tools/perf/util/ui/progress.c @@ -0,0 +1,60 @@ +#include +#include +#include "../cache.h" +#include "progress.h" + +struct ui_progress { + newtComponent form, scale; +}; + +struct ui_progress *ui_progress__new(const char *title, u64 total) +{ + struct ui_progress *self = malloc(sizeof(*self)); + + if (self != NULL) { + int cols; + + if (use_browser <= 0) + return self; + newtGetScreenSize(&cols, NULL); + cols -= 4; + newtCenteredWindow(cols, 1, title); + self->form = newtForm(NULL, NULL, 0); + if (self->form == NULL) + goto out_free_self; + self->scale = newtScale(0, 0, cols, total); + if (self->scale == NULL) + goto out_free_form; + newtFormAddComponent(self->form, self->scale); + newtRefresh(); + } + + return self; + +out_free_form: + newtFormDestroy(self->form); +out_free_self: + free(self); + return NULL; +} + +void ui_progress__update(struct ui_progress *self, u64 curr) +{ + /* + * FIXME: We should have a per UI backend way of showing progress, + * stdio will just show a percentage as NN%, etc. + */ + if (use_browser <= 0) + return; + newtScaleSet(self->scale, curr); + newtRefresh(); +} + +void ui_progress__delete(struct ui_progress *self) +{ + if (use_browser > 0) { + newtFormDestroy(self->form); + newtPopWindow(); + } + free(self); +} diff --git a/trunk/tools/perf/util/ui/progress.h b/trunk/tools/perf/util/ui/progress.h new file mode 100644 index 000000000000..a3820a0beb5b --- /dev/null +++ b/trunk/tools/perf/util/ui/progress.h @@ -0,0 +1,11 @@ +#ifndef _PERF_UI_PROGRESS_H_ +#define _PERF_UI_PROGRESS_H_ 1 + +struct ui_progress; + +struct ui_progress *ui_progress__new(const char *title, u64 total); +void ui_progress__delete(struct ui_progress *self); + +void ui_progress__update(struct ui_progress *self, u64 curr); + +#endif