Permalink
Browse files

Added macro PRINTF_ERROR_RETURN which working with progressbar

  • Loading branch information...
1 parent e4f7cf7 commit e66d87fde0e3a88ba92a0f8282eef35b452968dd @pali pali committed Sep 23, 2012
Showing with 8 additions and 5 deletions.
  1. +2 −2 src/cold-flash.c
  2. +3 −3 src/nolo.c
  3. +3 −0 src/printf-utils.h
View
@@ -211,7 +211,7 @@ static int send_2nd(usb_dev_handle * udev, struct image * image) {
if ( ret == 0 )
break;
if ( usb_bulk_write(udev, WRITE_DEV, (char *)buffer, ret, WRITE_TIMEOUT) != ret )
- ERROR_RETURN("Sending 2nd X-Loader image failed", -1);
+ PRINTF_ERROR_RETURN("Sending 2nd X-Loader image failed", -1);
readed += ret;
printf_progressbar(readed, image->size);
}
@@ -253,7 +253,7 @@ static int send_secondary(usb_dev_handle * udev, struct image * image) {
if ( ret == 0 )
break;
if ( usb_bulk_write(udev, WRITE_DEV, (char *)buffer, ret, WRITE_TIMEOUT) != ret )
- ERROR_RETURN("Sending Secondary image failed", -1);
+ PRINTF_ERROR_RETURN("Sending Secondary image failed", -1);
readed += ret;
printf_progressbar(readed, image->size);
}
View
@@ -336,7 +336,7 @@ static int nolo_send_image(struct usb_device_info * dev, struct image * image, i
if ( ret == 0 )
break;
if ( usb_bulk_write(dev->udev, 2, buf, ret, 5000) != ret )
- ERROR_RETURN("Sending image failed", -1);
+ PRINTF_ERROR_RETURN("Sending image failed", -1);
readed += ret;
printf_progressbar(readed, image->size);
}
@@ -420,7 +420,7 @@ int nolo_flash_image(struct usb_device_info * dev, struct image * image) {
while ( state != 4 ) {
if ( nolo_get_string(dev, "cmt:status", buf, sizeof(buf)) < 0 )
- ERROR_RETURN("cmt:status failed", -1);
+ PRINTF_ERROR_RETURN("cmt:status failed", -1);
if ( strncmp(buf, "finished", strlen("finished")) == 0 ) {
@@ -440,7 +440,7 @@ int nolo_flash_image(struct usb_device_info * dev, struct image * image) {
} else {
if ( sscanf(buf, "%s:%llu/%llu", status, &part, &total) != 3 )
- ERROR_RETURN("cmt:status unknown", -1);
+ PRINTF_ERROR_RETURN("cmt:status unknown", -1);
if ( strcmp(status, "program") == 0 && state <= 0 ) {
printf_progressbar(last_total, last_total);
View
@@ -20,13 +20,16 @@
#ifndef PRINTF_UTILS_H
#define PRINTF_UTILS_H
+#include "global.h"
+
extern int printf_prev;
#define PRINTF_BACK() do { if ( printf_prev ) { printf("\r%-*s\r", printf_prev, ""); printf_prev = 0; } } while (0)
#define PRINTF_ADD(...) do { printf_prev += printf(__VA_ARGS__); } while (0)
#define PRINTF_LINE(...) do { PRINTF_BACK(); PRINTF_ADD(__VA_ARGS__); fflush(stdout); } while (0)
#define PRINTF_END() do { if ( printf_prev ) { printf("\n"); printf_prev = 0; } } while (0)
#define PRINTF_ERROR(...) do { PRINTF_END(); ERROR_INFO(__VA_ARGS__); } while (0)
+#define PRINTF_ERROR_RETURN(str, ...) do { PRINTF_ERROR("%s", str); return __VA_ARGS__; } while (0)
void printf_progressbar(unsigned long long part, unsigned long long total);
void printf_and_wait(const char * format, ...);

0 comments on commit e66d87f

Please sign in to comment.