#include <pakfire/i18n.h>
#include <pakfire/logging.h>
#include <pakfire/pakfire.h>
-#include <pakfire/progressbar.h>
+#include <pakfire/progress.h>
#include <pakfire/string.h>
#include <pakfire/util.h>
struct pakfire* pakfire;
int nrefs;
- struct pakfire_progressbar* progressbar;
+ struct pakfire_progress* progress;
unsigned int parallel;
// cURL multi handle
pakfire_transfer_free(transfer);
}
- if (downloader->progressbar)
- pakfire_progressbar_unref(downloader->progressbar);
+ if (downloader->progress)
+ pakfire_progress_unref(downloader->progress);
if (downloader->curl)
curl_multi_cleanup(downloader->curl);
if (r)
goto ERROR;
- // Create the progressbar
- r = pakfire_progressbar_create(&d->progressbar, NULL);
+ // Create the progress indicator
+ r = pakfire_progress_create(&d->progress, d->pakfire,
+ PAKFIRE_PROGRESS_SHOW_PERCENTAGE |
+ PAKFIRE_PROGRESS_SHOW_ETA |
+ PAKFIRE_PROGRESS_SHOW_BYTES_TRANSFERRED |
+ PAKFIRE_PROGRESS_SHOW_TRANSFER_SPEED);
if (r)
goto ERROR;
return 0;
}
-static int pakfire_downloader_update_single_progressbar(void* data,
+static int pakfire_downloader_update_progress(void* data,
curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow) {
struct pakfire_downloader* downloader = (struct pakfire_downloader*)data;
// Set maximum (because this might have changed)
- pakfire_progressbar_set_max(downloader->progressbar, dltotal);
+ pakfire_progress_set_max_value(downloader->progress, dltotal);
// Update current value
- return pakfire_progressbar_update(downloader->progressbar, dlnow);
+ return pakfire_progress_update(downloader->progress, dlnow);
}
-static int pakfire_downloader_make_single_progressbar(
+static int pakfire_downloader_make_single_progress(
struct pakfire_downloader* downloader, struct pakfire_transfer* transfer) {
int r;
- // Reset the progressbar
- pakfire_progressbar_reset(downloader->progressbar);
+ // Reset the progress
+ pakfire_progress_reset(downloader->progress);
- // Add title
+ // Set title
if (*transfer->title) {
- r = pakfire_progressbar_add_string(downloader->progressbar, "%s", transfer->title);
+ r = pakfire_progress_set_title(downloader->progress, "%s", transfer->title);
if (r)
return r;
}
- // Add percentage
- r = pakfire_progressbar_add_percentage(downloader->progressbar);
- if (r)
- return r;
-
- // Add the bar
- r = pakfire_progressbar_add_bar(downloader->progressbar);
- if (r)
- return r;
-
- // Add transfer speed
- r = pakfire_progressbar_add_transfer_speed(downloader->progressbar);
- if (r)
- return r;
-
- // Add delimiter
- r = pakfire_progressbar_add_string(downloader->progressbar, "|");
- if (r)
- return r;
-
- // Add bytes transferred
- r = pakfire_progressbar_add_bytes_transferred(downloader->progressbar);
- if (r)
- return r;
-
- // Add ETA
- r = pakfire_progressbar_add_eta(downloader->progressbar);
- if (r)
- return r;
-
- // Update the progressbar
+ // Update the progress
curl_easy_setopt(transfer->handle, CURLOPT_XFERINFOFUNCTION,
- pakfire_downloader_update_single_progressbar);
+ pakfire_downloader_update_progress);
curl_easy_setopt(transfer->handle, CURLOPT_XFERINFODATA, downloader);
curl_easy_setopt(transfer->handle, CURLOPT_NOPROGRESS, 0L);
- // Start the progressbar
- r = pakfire_progressbar_start(downloader->progressbar, 0);
+ // Start the progress
+ r = pakfire_progress_start(downloader->progress, 0);
if (r)
return r;
const int has_progress = !(transfer->flags & PAKFIRE_TRANSFER_NOPROGRESS);
int r;
- // Create progressbar
+ // Create progress
if (has_progress) {
- r = pakfire_downloader_make_single_progressbar(downloader, transfer);
+ r = pakfire_downloader_make_single_progress(downloader, transfer);
if (r)
return r;
}
if (r == EAGAIN)
goto AGAIN;
- // Finish the progressbar
- if (has_progress)
- pakfire_progressbar_finish(downloader->progressbar);
+ // Finish the progress
+ if (has_progress) {
+ r = pakfire_progress_finish(downloader->progress);
+ if (r)
+ return r;
+ }
return r;
}