|
|
|
@ -105,6 +105,21 @@ IsoImage *isoburn_get_attached_image(struct burn_drive *d)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* API */ |
|
|
|
|
int isoburn_get_attached_start_lba(struct burn_drive *d) |
|
|
|
|
{ |
|
|
|
|
int ret; |
|
|
|
|
struct isoburn *o= NULL; |
|
|
|
|
|
|
|
|
|
ret = isoburn_find_emulator(&o, d, 0); |
|
|
|
|
if (ret < 0 || o == NULL) |
|
|
|
|
return -1; |
|
|
|
|
if(o->image == NULL) |
|
|
|
|
return -1; |
|
|
|
|
return o->image_start_lba; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void isoburn_idle_free_function(void *ignored) |
|
|
|
|
{ |
|
|
|
|
return; |
|
|
|
@ -133,6 +148,7 @@ int isoburn_read_image(struct burn_drive *d,
|
|
|
|
|
if (ret < 0 || o == NULL) |
|
|
|
|
{ret= 0; goto ex;} |
|
|
|
|
status = isoburn_disc_get_status(d); |
|
|
|
|
o->image_start_lba= -1; |
|
|
|
|
} |
|
|
|
|
if(read_opts==NULL) { |
|
|
|
|
isoburn_msgs_submit(o, 0x00060000, |
|
|
|
@ -193,6 +209,8 @@ create_blank_image:;
|
|
|
|
|
if (ret <= 0) |
|
|
|
|
{ret= -2; goto ex;} |
|
|
|
|
ms_block= int_num; |
|
|
|
|
if (o != NULL) |
|
|
|
|
o->image_start_lba= ms_block; |
|
|
|
|
ret = isoburn_read_iso_head(d, int_num, &dummy, NULL, 0); |
|
|
|
|
if (ret <= 0) { |
|
|
|
|
sprintf(msg, "No ISO 9660 image at LBA %d. Creating blank image.", int_num); |
|
|
|
@ -312,10 +330,29 @@ int isoburn_attach_image(struct burn_drive *d, IsoImage *image)
|
|
|
|
|
if(o->image != NULL) |
|
|
|
|
iso_image_unref(o->image); |
|
|
|
|
o->image = image; |
|
|
|
|
o->image_start_lba = -1; |
|
|
|
|
return(1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* API */ |
|
|
|
|
int isoburn_attach_start_lba(struct burn_drive *d, int lba, int flag) |
|
|
|
|
{ |
|
|
|
|
int ret; |
|
|
|
|
struct isoburn *o; |
|
|
|
|
|
|
|
|
|
ret = isoburn_find_emulator(&o, d, 0); |
|
|
|
|
if(ret < 0) |
|
|
|
|
return ret; |
|
|
|
|
if(o == NULL) |
|
|
|
|
return 0; |
|
|
|
|
if(o->image == NULL) |
|
|
|
|
return 0; |
|
|
|
|
o->image_start_lba = lba; |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* API function. See libisoburn.h
|
|
|
|
|
*/ |
|
|
|
|
int isoburn_activate_session(struct burn_drive *drive) |
|
|
|
|