From e065ff1db741070375ca9f822b3a6cbfa459834d Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 4 Oct 2007 20:06:38 +0000 Subject: [PATCH] Inserted the necessary error messages and magic numbers --- test/libburner.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/test/libburner.c b/test/libburner.c index 77836c7..b22761c 100644 --- a/test/libburner.c +++ b/test/libburner.c @@ -359,6 +359,10 @@ int libburner_format_row(struct burn_drive *drive) To make sure a data image is fully readable on any Linux machine, this function adds 300 kiB of padding to the (usualy single) track. Audio tracks get padded to complete their last sector. + A fifo of 4 MB is installed between each track and its data source. + Each of the 4 MB buffers gets allocated automatically as soon as a track + begins to be processed and it gets freed as soon as the track is done. + The fifos do not wait for buffer fill but writing starts immediately. In case of external signals expect abort handling of an ongoing burn to last up to a minute. Wait the normal burning timespan before any kill -9. @@ -490,7 +494,10 @@ int libburner_payload(struct burn_drive *drive, while (burn_drive_get_status(drive, NULL) == BURN_DRIVE_SPAWNING) usleep(1002); while (burn_drive_get_status(drive, &progress) != BURN_DRIVE_IDLE) { - if( progress.sectors <= 0) + if (progress.sectors <= 0 || + (progress.sector >= progress.sectors - 1 && + !unpredicted_size) || + (unpredicted_size && progress.sector == last_sector)) printf( "Thank you for being patient since %d seconds.", (int) (time(0) - start_time)); @@ -503,14 +510,13 @@ int libburner_payload(struct burn_drive *drive, last_sector = progress.sector; if (progress.track >= 0 && progress.track < source_adr_count) { int size, free_bytes, ret; - static char ind[8][16] = { - "-", "active", "ending", "input error", - "-", "no reader", "ended", "aborted"}; + char *status_text; ret = burn_fifo_inquire_status( - fifo_src[progress.track], &size, &free_bytes); - if (ret > 0 && ret <8) - printf(" [fifo %s, %2d%% fill]", ind[ret], + fifo_src[progress.track], &size, &free_bytes, + &status_text); + if (ret > 0 ) + printf(" [fifo %s, %2d%% fill]", status_text, (int) (100.0 - 100.0 * ((double) free_bytes) / (double) size));