From 795a131c15330b4ebba66fb58b31780e701dbc36 Mon Sep 17 00:00:00 2001 From: Sude Date: Tue, 27 Aug 2013 10:01:04 +0300 Subject: [PATCH] Show download rate in MB/s when it exceeds 1MB/s --- src/downloader.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/downloader.cpp b/src/downloader.cpp index 31975fe..822ec54 100644 --- a/src/downloader.cpp +++ b/src/downloader.cpp @@ -1101,7 +1101,18 @@ int Downloader::progressCallback(void *clientp, double dltotal, double dlnow, do // assuming that config is provided. printf("\033[0K\r%3.0f%% ", fraction * 100); downloader->progressbar->draw(bar_length, fraction); - printf(" %0.2f/%0.2fMB @ %0.2fkB/s ETA: %s\r", dlnow/1024/1024, dltotal/1024/1024, rate/1024, eta_ss.str().c_str()); + std::string rate_unit; + if (rate > 1048576) // 1 MB + { + rate /= 1048576; + rate_unit = "MB/s"; + } + else + { + rate /= 1024; + rate_unit = "kB/s"; + } + printf(" %0.2f/%0.2fMB @ %0.2f%s ETA: %s\r", dlnow/1024/1024, dltotal/1024/1024, rate, rate_unit.c_str(), eta_ss.str().c_str()); fflush(stdout); }