1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/* vi: set sw=4 ts=4:
*
* Copyright (C) 2018 - 2020 Christian Hohnstaedt.
*
* All rights reserved.
*/
#include <stdio.h>
#include <string.h>
#include "base.h"
#include "XcaProgress.h"
void XcaProgressCmd::stop()
{
puts(" finished.");
}
void XcaProgressCmd::start(const QString &what, int)
{
puts("");
puts(CCHAR(what));
}
void XcaProgressCmd::increment()
{
static const char *spinner = "|/-\\";
printf("\rGenerating %c ...", spinner[i++%4]);
fflush(stdout);
}
XcaProgress_i *XcaProgress::progress;
XcaProgress::XcaProgress(const QString &what, int max)
{
if (!progress)
progress = new XcaProgressCmd();
progress->start(what, max);
}
XcaProgress::~XcaProgress()
{
progress->stop();
}
void XcaProgress::increment()
{
progress->increment();
}
void XcaProgress::inc(int, int, void *p)
{
XcaProgress *prog = static_cast<XcaProgress*>(p);
if (prog)
prog->increment();
}
void XcaProgress::setGui(XcaProgress_i *p)
{
delete progress;
progress = p;
}
|