Replace rwopts management with data_source related functions
This commit is contained in:
parent
aa9d33c9e3
commit
cff1144b0e
@ -55,21 +55,15 @@ int isoburn_new(struct isoburn **objpt, int flag)
|
|||||||
o->target_volset= NULL;
|
o->target_volset= NULL;
|
||||||
o->prev= NULL;
|
o->prev= NULL;
|
||||||
o->next= NULL;
|
o->next= NULL;
|
||||||
if(isoburn_new_rwopts(o)<=0)
|
|
||||||
goto failed;
|
|
||||||
|
|
||||||
isoburn_link(o, isoburn_list_start, 1);
|
isoburn_link(o, isoburn_list_start, 1);
|
||||||
return(1);
|
return(1);
|
||||||
failed:;
|
|
||||||
isoburn_destroy(objpt,0);
|
|
||||||
return(-1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int isoburn_destroy(struct isoburn **objpt, int flag)
|
int isoburn_destroy(struct isoburn **objpt, int flag)
|
||||||
{
|
{
|
||||||
struct isoburn *o;
|
struct isoburn *o;
|
||||||
int isoburn_free_rwopts(struct isoburn *o);
|
|
||||||
|
|
||||||
o= *objpt;
|
o= *objpt;
|
||||||
if(o==NULL)
|
if(o==NULL)
|
||||||
@ -88,7 +82,6 @@ int isoburn_destroy(struct isoburn **objpt, int flag)
|
|||||||
|
|
||||||
if(o->drive!=NULL)
|
if(o->drive!=NULL)
|
||||||
burn_drive_release(o->drive, 0);
|
burn_drive_release(o->drive, 0);
|
||||||
isoburn_free_rwopts(o);
|
|
||||||
if(o->target_volset!=NULL)
|
if(o->target_volset!=NULL)
|
||||||
iso_volset_free(o->target_volset);
|
iso_volset_free(o->target_volset);
|
||||||
|
|
||||||
|
@ -84,8 +84,8 @@ int isoburn_find_by_drive(struct isoburn **pt, struct burn_drive *d, int flag);
|
|||||||
/* Calls from burn_wrap.c into isofs_wrap.c */
|
/* Calls from burn_wrap.c into isofs_wrap.c */
|
||||||
|
|
||||||
int isoburn_start_emulation(struct isoburn *o, int flag);
|
int isoburn_start_emulation(struct isoburn *o, int flag);
|
||||||
int isoburn_new_rwopts(struct isoburn *o);
|
int isoburn_create_data_source(struct isoburn *o);
|
||||||
int isoburn_free_rwopts(struct isoburn *o);
|
int isoburn_free_data_source(struct isoburn *o);
|
||||||
int isoburn_invalidate_iso(struct isoburn *o, int flag);
|
int isoburn_invalidate_iso(struct isoburn *o, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,6 +88,9 @@ int isoburn_read_volset(struct burn_drive *d, struct isoburn_read_opts *read_opt
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO replace with isoburn_disc_get_status()
|
||||||
|
// Check for suitable FULL or APPENDABLE status. Full only useful for image
|
||||||
|
// modification
|
||||||
if (o->fabricated_disc_status == BURN_DISC_BLANK) {
|
if (o->fabricated_disc_status == BURN_DISC_BLANK) {
|
||||||
// FIXME construct an empty volset!!
|
// FIXME construct an empty volset!!
|
||||||
*volset = NULL;
|
*volset = NULL;
|
||||||
@ -139,38 +142,24 @@ int isoburn_activate_session(struct burn_drive *drive)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Allocate and initialize memory for libisofs related objects in
|
/** Create a new data source suitable for reading from the given drive.
|
||||||
struct isoburn.
|
@param o A freshly created isoburn object, without any data_source
|
||||||
@param o A freshly created isoburn object with NULL pointers
|
(src field == NULL), but with the drive field set.
|
||||||
@return <=0 error , 1 = success
|
@return <=0 error , 1 = success
|
||||||
*/
|
*/
|
||||||
int isoburn_new_rwopts(struct isoburn *o)
|
int isoburn_create_data_source(struct isoburn *o)
|
||||||
{
|
{
|
||||||
|
|
||||||
// FIXME
|
|
||||||
/* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
||||||
* This should call isoburn_data_source_new(), that now is in
|
|
||||||
* isoburn_start_emulation(). That is wrong, as for true ms discs
|
|
||||||
* isoburn_start_emulation() is never called, and thus we haven't a
|
|
||||||
* source for read previous session volset.
|
|
||||||
* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* create and initialize the data source */
|
/* create and initialize the data source */
|
||||||
// o->src = isoburn_data_source_new(o->drive);
|
o->src = isoburn_data_source_new(o->drive);
|
||||||
// if (!o->src)
|
return (o->src ? 1 : -1);
|
||||||
// return -1;
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Dispose memory objects created by isoburn_new_rwopts(). This function
|
/** Dispose the data source created by isoburn_create_data_source().
|
||||||
expect that the pointers in struct isoburn might still be NULL, i.e.
|
|
||||||
that isoburn_new_rwopts() was not called before.
|
|
||||||
@return <=0 error , 1 = success
|
@return <=0 error , 1 = success
|
||||||
*/
|
*/
|
||||||
int isoburn_free_rwopts(struct isoburn *o)
|
int isoburn_free_data_source(struct isoburn *o)
|
||||||
{
|
{
|
||||||
if (o->src)
|
if (o->src)
|
||||||
data_source_free(o->src);
|
data_source_free(o->src);
|
||||||
@ -180,7 +169,7 @@ int isoburn_free_rwopts(struct isoburn *o)
|
|||||||
|
|
||||||
/** Initialize the emulation of multi-session on random access media.
|
/** Initialize the emulation of multi-session on random access media.
|
||||||
The need for emulation is confirmed already.
|
The need for emulation is confirmed already.
|
||||||
@param o A freshly created isoburn object. isoburn_new_rwopts() was
|
@param o A freshly created isoburn object. isoburn_create_data_source() was
|
||||||
already called, nevertheless.
|
already called, nevertheless.
|
||||||
@return <=0 error , 1 = success
|
@return <=0 error , 1 = success
|
||||||
*/
|
*/
|
||||||
@ -206,13 +195,6 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO remove >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
||||||
/* create and initialize the data source */
|
|
||||||
o->src = isoburn_data_source_new(o->drive);
|
|
||||||
if (!o->src)
|
|
||||||
return -1;
|
|
||||||
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
||||||
|
|
||||||
/* check first 64K. If 0's, the disc is treated as a blank disc, and thus
|
/* check first 64K. If 0's, the disc is treated as a blank disc, and thus
|
||||||
overwritten without extra check. */
|
overwritten without extra check. */
|
||||||
i = sizeof(o->target_iso_head);
|
i = sizeof(o->target_iso_head);
|
||||||
|
Loading…
Reference in New Issue
Block a user