+ if (latency > 0.0)
+ {
+ if (has_colors () == TRUE)
+ {
+ int color = OPING_GREEN_HIST;
+ float ratio = 0;
+ int index = 0;
+
+ ratio = latency / PING_DEF_TTL;
+ if (ratio > 1) {
+ ratio = 1;
+ }
+ if (ratio > 2/3.0) {
+ color = OPING_RED_HIST;
+ }
+ else if (ratio > 1/3.0) {
+ color = OPING_YELLOW_HIST;
+ }
+ index = (int) (ratio * BARS_LEN * 3); /* 3 colors */
+ /* HOST_PRINTF ("%%r%f-ia%d-", ratio, index); */
+ index = index % (BARS_LEN-1);
+ /* HOST_PRINTF ("im%d-", index); */
+ if (index < 0) {
+ index = 0; /* safety check */
+ }
+ if (index >= BARS_LEN) {
+ index = BARS_LEN -1; /* safety check */
+ }
+ wattron (ctx->window, COLOR_PAIR(color));
+ mvwprintw (ctx->window,
+ /* y = */ 3,
+ /* x = */ (1 + sequence) % maxx,
+ bars[index]);
+ wattroff (ctx->window, COLOR_PAIR(color));
+ }
+ else
+ {
+ }
+ }
+ else {
+ wattron (ctx->window, COLOR_PAIR(OPING_RED) | A_BOLD);
+ mvwprintw (ctx->window,
+ /* y = */ 3,
+ /* x = */ (1 + sequence) % maxx,
+ "!");
+ wattroff (ctx->window, COLOR_PAIR(OPING_RED) | A_BOLD);
+ }