From 7ed32c2baa83aa15c0bf959f114651c6494286ab Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 21 Mar 2011 09:04:14 +0000 Subject: [PATCH] Adjustments for drive role 5, random access write-only --- libburn/trunk/cdrskin/cdrskin_timestamp.h | 2 +- libburn/trunk/libburn/write.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libburn/trunk/cdrskin/cdrskin_timestamp.h b/libburn/trunk/cdrskin/cdrskin_timestamp.h index 1110ccaf..52e5541b 100644 --- a/libburn/trunk/cdrskin/cdrskin_timestamp.h +++ b/libburn/trunk/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2011.03.21.090313" +#define Cdrskin_timestamP "2011.03.21.090430" diff --git a/libburn/trunk/libburn/write.c b/libburn/trunk/libburn/write.c index 3bdf5dab..935b1d31 100644 --- a/libburn/trunk/libburn/write.c +++ b/libburn/trunk/libburn/write.c @@ -2053,6 +2053,8 @@ int burn_stdio_open_write(struct burn_drive *d, off_t start_byte, 0, 0); return 0; } + if (d->drive_role == 5 || d->drive_role == 3) + mode = O_WRONLY | O_CREAT | O_LARGEFILE; if (d->devname[0] == 0) /* null drives should not come here */ return -1; fd = burn_drive__fd_from_special_adr(d->devname); @@ -2350,6 +2352,9 @@ int burn_stdio_write_sync(struct burn_write_opts *o, /* open target file */ if (d->stdio_fd >= 0) close(d->stdio_fd); + if (d->drive_role == 5 && d->status == BURN_DISC_APPENDABLE && + o->start_byte < 0) + o->start_byte = d->role_5_nwa * 2048; d->stdio_fd = burn_stdio_open_write(d, o->start_byte, 2048, 0); if (d->stdio_fd == -1) {ret = 0; goto ex;}