diff options
Diffstat (limited to 'tools/perf/ui/progress.c')
| -rw-r--r-- | tools/perf/ui/progress.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tools/perf/ui/progress.c b/tools/perf/ui/progress.c new file mode 100644 index 000000000000..13aa64e50e11 --- /dev/null +++ b/tools/perf/ui/progress.c | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | #include "../cache.h" | ||
| 2 | #include "progress.h" | ||
| 3 | #include "libslang.h" | ||
| 4 | #include "ui.h" | ||
| 5 | #include "browser.h" | ||
| 6 | |||
| 7 | void ui_progress__update(u64 curr, u64 total, const char *title) | ||
| 8 | { | ||
| 9 | int bar, y; | ||
| 10 | /* | ||
| 11 | * FIXME: We should have a per UI backend way of showing progress, | ||
| 12 | * stdio will just show a percentage as NN%, etc. | ||
| 13 | */ | ||
| 14 | if (use_browser <= 0) | ||
| 15 | return; | ||
| 16 | |||
| 17 | if (total == 0) | ||
| 18 | return; | ||
| 19 | |||
| 20 | ui__refresh_dimensions(true); | ||
| 21 | pthread_mutex_lock(&ui__lock); | ||
| 22 | y = SLtt_Screen_Rows / 2 - 2; | ||
| 23 | SLsmg_set_color(0); | ||
| 24 | SLsmg_draw_box(y, 0, 3, SLtt_Screen_Cols); | ||
| 25 | SLsmg_gotorc(y++, 1); | ||
| 26 | SLsmg_write_string((char *)title); | ||
| 27 | SLsmg_set_color(HE_COLORSET_SELECTED); | ||
| 28 | bar = ((SLtt_Screen_Cols - 2) * curr) / total; | ||
| 29 | SLsmg_fill_region(y, 1, 1, bar, ' '); | ||
| 30 | SLsmg_refresh(); | ||
| 31 | pthread_mutex_unlock(&ui__lock); | ||
| 32 | } | ||
