summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 94a8bf0)
raw | patch | inline | side by side (parent: 94a8bf0)
author | Florian Forster <ff@octo.it> | |
Wed, 24 Sep 2014 23:44:58 +0000 (16:44 -0700) | ||
committer | Florian Forster <ff@octo.it> | |
Wed, 24 Sep 2014 23:47:29 +0000 (16:47 -0700) |
src/oping.c | patch | blob | history |
diff --git a/src/oping.c b/src/oping.c
index 4a605534e7e608694d475443ca615328c42b5156..5c0ead5ee2608f4b69a3da6b59041e278321d7ff 100644 (file)
--- a/src/oping.c
+++ b/src/oping.c
int color = OPING_RED;
char const *symbol = "!";
int symbolc = '!';
- size_t hist_symbols_num;
- size_t index_symbols;
int x_max;
int x_pos;
x_max = getmaxx (ctx->window);
x_pos = ((sequence - 1) % (x_max - 4)) + 2;
- if (has_utf8())
- {
- hist_symbols_num = hist_symbols_utf8_num;
- }
- else {
- hist_symbols_num = hist_symbols_acs_num;
- }
-
if (latency >= 0.0)
{
double ratio;
- size_t intensity;
+
+ size_t symbols_num = hist_symbols_acs_num;
+ size_t colors_num = 1;
+
+ size_t index_symbols;
size_t index_colors;
+ size_t intensity;
- ratio = latency / PING_DEF_TTL;
+ /* latency is in milliseconds, opt_interval is in seconds. */
+ ratio = (latency * 0.001) / opt_interval;
if (ratio > 1) {
ratio = 1.0;
}
- intensity = (size_t) ((ratio * hist_symbols_num
- * hist_colors_num) - 1);
+ if (has_utf8 ())
+ symbols_num = hist_symbols_utf8_num;
+
+ if (has_colors () == TRUE)
+ colors_num = hist_colors_num;
+
+ intensity = (size_t) (ratio * ((double) (symbols_num * colors_num)));
+ if (intensity >= (symbols_num * colors_num))
+ intensity = (symbols_num * colors_num) - 1;
- index_colors = intensity / hist_symbols_num;
- assert (index_colors < hist_colors_num);
+ index_symbols = intensity % symbols_num;
+ assert (index_symbols < symbols_num);
+
+ index_colors = intensity / symbols_num;
+ assert (index_colors < colors_num);
- index_symbols = intensity % hist_symbols_num;
if (has_utf8())
{
color = hist_colors_utf8[index_colors];
color = hist_colors_acs[index_colors];
symbolc = hist_symbols_acs[index_symbols] | A_ALTCHARSET;
}
- }
+ }
else /* if (!(latency >= 0.0)) */
wattron (ctx->window, A_BOLD);
- wattron (ctx->window, COLOR_PAIR(color));
+ if (has_colors () == TRUE)
+ wattron (ctx->window, COLOR_PAIR(color));
+
if (has_utf8())
- {
- mvwprintw (ctx->window,
- /* y = */ 3,
- /* x = */ x_pos,
- symbol);
- }
- else {
- mvwaddch (ctx->window,
- /* y = */ 3,
- /* x = */ x_pos,
- symbolc);
- }
- wattroff (ctx->window, COLOR_PAIR(color));
+ mvwprintw (ctx->window, /* y = */ 3, /* x = */ x_pos, symbol);
+ else
+ mvwaddch (ctx->window, /* y = */ 3, /* x = */ x_pos, symbolc);
+
+ if (has_colors () == TRUE)
+ wattroff (ctx->window, COLOR_PAIR(color));
/* Use negation here to handle NaN correctly. */
if (!(latency >= 0.0))
@@ -798,8 +798,7 @@ static int update_stats_from_context (ping_context_t *ctx, pingobj_iter_t *iter)
deviation);
}
- if (has_colors () == TRUE)
- update_prettyping_graph (ctx, latency, sequence);
+ update_prettyping_graph (ctx, latency, sequence);
wrefresh (ctx->window);