progress_bar.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019 Inria
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
21 #include <stdlib.h>
22 #include <inttypes.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
31 #ifndef CONFIG_PROGRESS_BAR_LENGTH
32 #define CONFIG_PROGRESS_BAR_LENGTH (25U)
33 #endif
34 
38 #ifndef CONFIG_PROGRESS_BAR_FULL_CHARACTER
39 #define CONFIG_PROGRESS_BAR_FULL_CHARACTER "█"
40 #endif
41 
45 #ifndef CONFIG_PROGRESS_BAR_EMPTY_CHARACTER
46 #define CONFIG_PROGRESS_BAR_EMPTY_CHARACTER " "
47 #endif
48 
52 #ifndef CONFIG_PROGRESS_BAR_PREFIX_CHARACTER
53 #define CONFIG_PROGRESS_BAR_PREFIX_CHARACTER "|"
54 #endif
55 
59 #ifndef CONFIG_PROGRESS_BAR_SUFFIX_CHARACTER
60 #define CONFIG_PROGRESS_BAR_SUFFIX_CHARACTER "|"
61 #endif
62 
66 #ifndef CONFIG_PROGRESS_BAR_PREFIX_MAX_LENGTH
67 #define CONFIG_PROGRESS_BAR_PREFIX_MAX_LENGTH (32U)
68 #endif
69 
73 #ifndef CONFIG_PROGRESS_BAR_SUFFIX_MAX_LENGTH
74 #define CONFIG_PROGRESS_BAR_SUFFIX_MAX_LENGTH (32U)
75 #endif
76 
80 typedef struct {
82  uint8_t value;
88 
96 void progress_bar_print(char *prefix, char *suffix, uint8_t value);
97 
104 
116 void progress_bar_prepare_multi(uint8_t len);
117 
124 void progress_bar_update_multi(progress_bar_t *progress_bar_list, uint8_t len);
125 
126 #ifdef __cplusplus
127 }
128 #endif
129 
Adds include for missing inttype definitions.
void progress_bar_print(char *prefix, char *suffix, uint8_t value)
Print a progress bar in the terminal.
void progress_bar_prepare_multi(uint8_t len)
Prepare the output for displaying multiple progress bars.
#define CONFIG_PROGRESS_BAR_PREFIX_MAX_LENGTH
Progress bar prefix max length.
Definition: progress_bar.h:67
void progress_bar_update(progress_bar_t *progress_bar)
Update the progress bar display in the terminal.
#define CONFIG_PROGRESS_BAR_SUFFIX_MAX_LENGTH
Progress bar suffix max length.
Definition: progress_bar.h:74
void progress_bar_update_multi(progress_bar_t *progress_bar_list, uint8_t len)
Update all progress bar displays of the given progress bars list.
Progress bar descriptor.
Definition: progress_bar.h:80
uint8_t value
Current value of the progress bar.
Definition: progress_bar.h:82