|
|
|
@ -1027,7 +1027,7 @@ static int burn_write_leadin_cdtext(struct burn_write_opts *o,
|
|
|
|
|
}
|
|
|
|
|
#endif /* Libburn_debug_cd_texT */
|
|
|
|
|
|
|
|
|
|
err = d->write(d, write_lba, buf);
|
|
|
|
|
err = d->write(d, (off_t) write_lba, buf);
|
|
|
|
|
if (err == BE_CANCELLED)
|
|
|
|
|
{ ret = 0; goto ex; }
|
|
|
|
|
write_lba += sectors;
|
|
|
|
@ -1074,10 +1074,10 @@ ex:;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ts A61218 : outsourced from burn_write_track() */
|
|
|
|
|
/* ts A61218 / C40303 : outsourced from burn_write_track() */
|
|
|
|
|
int burn_disc_init_track_status(struct burn_write_opts *o,
|
|
|
|
|
struct burn_session *s, struct burn_track *t,
|
|
|
|
|
int tnum, int sectors)
|
|
|
|
|
int tnum, off_t sectors)
|
|
|
|
|
{
|
|
|
|
|
struct burn_drive *d = o->drive;
|
|
|
|
|
|
|
|
|
@ -1179,8 +1179,8 @@ int burn_write_track(struct burn_write_opts *o, struct burn_session *s,
|
|
|
|
|
|
|
|
|
|
/* <<< */
|
|
|
|
|
sprintf(msg,
|
|
|
|
|
"TAO pre-track %2.2d : get_nwa(%d)=%d, d=%d , demand=%.f , cap=%.f\n",
|
|
|
|
|
tnum+1, nwa, ret, d->nwa,
|
|
|
|
|
"TAO pre-track %2.2d : get_nwa(%d)=%d, d=%.f , demand=%.f , cap=%.f\n",
|
|
|
|
|
tnum+1, nwa, ret, (double) d->nwa,
|
|
|
|
|
(double) burn_track_get_sectors_2(t, 1) * 2048.0,
|
|
|
|
|
(double) d->media_capacity_remaining);
|
|
|
|
|
libdax_msgs_submit(libdax_messenger, d->global_index,
|
|
|
|
@ -1209,7 +1209,7 @@ int burn_write_track(struct burn_write_opts *o, struct burn_session *s,
|
|
|
|
|
{ ret = 0; goto ex; }
|
|
|
|
|
open_ended = burn_track_is_open_ended(t);
|
|
|
|
|
|
|
|
|
|
burn_disc_init_track_status(o, s, t, tnum, sectors);
|
|
|
|
|
burn_disc_init_track_status(o, s, t, tnum, (off_t) sectors);
|
|
|
|
|
|
|
|
|
|
/* ts A61030 : this cannot happen. tnum is always < s->tracks */
|
|
|
|
|
if (tnum == s->tracks)
|
|
|
|
@ -1570,8 +1570,8 @@ int burn_disc_open_track_dvd_minus_r(struct burn_write_opts *o,
|
|
|
|
|
d->send_write_parameters(d, NULL, -1, o);
|
|
|
|
|
ret = d->get_nwa(d, -1, &lba, &nwa);
|
|
|
|
|
sprintf(msg,
|
|
|
|
|
"DVD pre-track %2.2d : get_nwa(%d), ret= %d , d->nwa= %d",
|
|
|
|
|
tnum+1, nwa, ret, d->nwa);
|
|
|
|
|
"DVD pre-track %2.2d : get_nwa(%d), ret= %d , d->nwa= %.f",
|
|
|
|
|
tnum+1, nwa, ret, (double) d->nwa);
|
|
|
|
|
libdax_msgs_submit(libdax_messenger, d->global_index, 0x00000002,
|
|
|
|
|
LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_ZERO, msg,0,0);
|
|
|
|
|
if (nwa > d->nwa)
|
|
|
|
@ -1632,8 +1632,8 @@ int burn_disc_open_track_dvd_plus_r(struct burn_write_opts *o,
|
|
|
|
|
BURN_ALLOC_MEM(msg, char, 160);
|
|
|
|
|
ret = d->get_nwa(d, -1, &lba, &nwa);
|
|
|
|
|
sprintf(msg,
|
|
|
|
|
"DVD+R pre-track %2.2d : get_nwa(%d), ret= %d , d->nwa= %d",
|
|
|
|
|
tnum+1, nwa, ret, d->nwa);
|
|
|
|
|
"DVD+R pre-track %2.2d : get_nwa(%d), ret= %d , d->nwa= %.f",
|
|
|
|
|
tnum+1, nwa, ret, (double) d->nwa);
|
|
|
|
|
libdax_msgs_submit(libdax_messenger, d->global_index, 0x00000002,
|
|
|
|
|
LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_ZERO, msg,0,0);
|
|
|
|
|
if (nwa > d->nwa)
|
|
|
|
@ -1936,7 +1936,7 @@ int burn_dvd_write_track(struct burn_write_opts *o,
|
|
|
|
|
|
|
|
|
|
/* (offset padding is done within sector_data()) */
|
|
|
|
|
|
|
|
|
|
burn_disc_init_track_status(o, s, t, tnum, sectors);
|
|
|
|
|
burn_disc_init_track_status(o, s, t, tnum, (off_t) sectors);
|
|
|
|
|
for (i = 0; open_ended || i < sectors; i++) {
|
|
|
|
|
|
|
|
|
|
/* From time to time inquire drive buffer */
|
|
|
|
@ -2233,7 +2233,8 @@ int burn_disc_setup_dvd_minus_rw(struct burn_write_opts *o,
|
|
|
|
|
if (o->start_byte >= 0) {
|
|
|
|
|
d->nwa = o->start_byte / 32768; /* align to 32 kB */
|
|
|
|
|
|
|
|
|
|
sprintf(msg, "Write start address is %d * 32768", d->nwa);
|
|
|
|
|
sprintf(msg, "Write start address is %.f * 32768",
|
|
|
|
|
(double) d->nwa);
|
|
|
|
|
libdax_msgs_submit(libdax_messenger, d->global_index,
|
|
|
|
|
0x00020127,
|
|
|
|
|
LIBDAX_MSGS_SEV_NOTE, LIBDAX_MSGS_PRIO_HIGH,
|
|
|
|
@ -2335,8 +2336,8 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
|
|
|
|
|
d->nwa = 0;
|
|
|
|
|
if (o->start_byte >= 0) {
|
|
|
|
|
d->nwa = o->start_byte / 2048;
|
|
|
|
|
sprintf(msg, "Write start address is %d * 2048",
|
|
|
|
|
d->nwa);
|
|
|
|
|
sprintf(msg, "Write start address is %.f * 2048",
|
|
|
|
|
(double) d->nwa);
|
|
|
|
|
libdax_msgs_submit(libdax_messenger, d->global_index,
|
|
|
|
|
0x00020127,
|
|
|
|
|
LIBDAX_MSGS_SEV_NOTE, LIBDAX_MSGS_PRIO_HIGH,
|
|
|
|
@ -2658,7 +2659,7 @@ ex:;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ts A70910 : to be used as burn_drive.write(), emulating mmc_write() */
|
|
|
|
|
int burn_stdio_mmc_write(struct burn_drive *d, int start, struct buffer *buf)
|
|
|
|
|
int burn_stdio_mmc_write(struct burn_drive *d, off_t start, struct buffer *buf)
|
|
|
|
|
{
|
|
|
|
|
int ret;
|
|
|
|
|
off_t start_byte;
|
|
|
|
@ -2701,7 +2702,7 @@ int burn_stdio_mmc_write(struct burn_drive *d, int start, struct buffer *buf)
|
|
|
|
|
|
|
|
|
|
/* ts A70910 : to be used as burn_drive.write(),
|
|
|
|
|
emulating mmc_write() with simulated writing. */
|
|
|
|
|
int burn_stdio_mmc_dummy_write(struct burn_drive *d, int start,
|
|
|
|
|
int burn_stdio_mmc_dummy_write(struct burn_drive *d, off_t start,
|
|
|
|
|
struct buffer *buf)
|
|
|
|
|
{
|
|
|
|
|
if (d->cancel)
|
|
|
|
@ -2846,11 +2847,7 @@ int burn_stdio_write_track(struct burn_write_opts *o, struct burn_session *s,
|
|
|
|
|
sectors = burn_track_get_sectors_2_v2(t, 1);
|
|
|
|
|
if (sectors < 0)
|
|
|
|
|
{ret = 0; goto ex;}
|
|
|
|
|
|
|
|
|
|
/* >>> (int) cast will be removed when burn_disc_init_track_status()
|
|
|
|
|
>>> gets off_t sectors */;
|
|
|
|
|
burn_disc_init_track_status(o, s, t, tnum, (int) sectors);
|
|
|
|
|
|
|
|
|
|
burn_disc_init_track_status(o, s, t, tnum, sectors);
|
|
|
|
|
open_ended = burn_track_is_open_ended(t);
|
|
|
|
|
|
|
|
|
|
t->end_on_premature_eoi = (o->write_type == BURN_WRITE_TAO);
|
|
|
|
|