mirror of
https://github.com/trabucayre/openFPGALoader.git
synced 2026-08-30 09:59:03 +02:00
limit the progressBar update rate to 5 per second. This speeds up loading of small bin files.
This commit is contained in:
+11
-4
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "time.h"
|
||||
#include "progressBar.hpp"
|
||||
#include "display.hpp"
|
||||
|
||||
@@ -24,9 +25,15 @@ ProgressBar::ProgressBar(std::string mess, int maxValue, int progressLen):
|
||||
_mess(mess), _maxValue(maxValue), _progressLen(progressLen)
|
||||
{
|
||||
}
|
||||
|
||||
void ProgressBar::display(int value)
|
||||
static time_t last_time;
|
||||
void ProgressBar::display(int value, char force)
|
||||
{
|
||||
clock_t this_time = clock();
|
||||
if (!force && ((((float)(this_time - last_time))/CLOCKS_PER_SEC) < 0.2))
|
||||
{
|
||||
return;
|
||||
}
|
||||
last_time = this_time;
|
||||
float percent = ((float)value * 100.0f)/(float)_maxValue;
|
||||
float nbEq = (percent * (float) _progressLen)/100.0f;
|
||||
|
||||
@@ -41,13 +48,13 @@ void ProgressBar::display(int value)
|
||||
}
|
||||
void ProgressBar::done()
|
||||
{
|
||||
display(_maxValue);
|
||||
display(_maxValue, true);
|
||||
//fprintf(stderr, "\nDone\n");
|
||||
printSuccess("\nDone");
|
||||
}
|
||||
void ProgressBar::fail()
|
||||
{
|
||||
display(_maxValue);
|
||||
display(_maxValue, true);
|
||||
//fprintf(stderr, "\nDone\n");
|
||||
printError("\nFail");
|
||||
}
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
class ProgressBar {
|
||||
public:
|
||||
ProgressBar(std::string mess, int maxValue, int progressLen);
|
||||
void display(int value);
|
||||
void display(int value, char force = 0);
|
||||
void done();
|
||||
void fail();
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user