|
|
|
@ -50,7 +50,6 @@ int isoburn_new(struct isoburn **objpt, int flag)
|
|
|
|
|
o->nwa= 0;
|
|
|
|
|
o->treatment= 1;
|
|
|
|
|
o->src= NULL;
|
|
|
|
|
o->new_wopts= NULL;
|
|
|
|
|
o->fabricated_disc_status= BURN_DISC_UNREADY;
|
|
|
|
|
for(i=0;i<65536;i++)
|
|
|
|
|
o->target_iso_head[i]= 0;
|
|
|
|
@ -240,21 +239,44 @@ int isoburn_prepare_disc(struct burn_drive *d, struct burn_disc **disc)
|
|
|
|
|
struct burn_session *session;
|
|
|
|
|
struct burn_track *track;
|
|
|
|
|
struct isoburn *o;
|
|
|
|
|
struct ecma119_source_opts wopts;
|
|
|
|
|
int ret;
|
|
|
|
|
|
|
|
|
|
ret= isoburn_find_emulator(&o, d, 0);
|
|
|
|
|
if(ret<0)
|
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO check return values for failure. propertly clean-up on error
|
|
|
|
|
|
|
|
|
|
*disc = burn_disc_create();
|
|
|
|
|
session = burn_session_create();
|
|
|
|
|
burn_disc_add_session(*disc, session, BURN_POS_END);
|
|
|
|
|
|
|
|
|
|
// FIXME we need a way to allow users to pass parameters to this!!
|
|
|
|
|
o->new_wopts->ms_block = o->nwa;
|
|
|
|
|
o->new_wopts->src = o->src;
|
|
|
|
|
wsrc = iso_source_new_ecma119(o->target_volset, o->new_wopts);
|
|
|
|
|
|
|
|
|
|
wopts.volnum = 0;
|
|
|
|
|
wopts.level = 2;
|
|
|
|
|
wopts.flags = 0;
|
|
|
|
|
wopts.relaxed_constraints = 0;
|
|
|
|
|
wopts.copy_eltorito = 0;
|
|
|
|
|
wopts.no_cache_inodes = 0;
|
|
|
|
|
wopts.sort_files = 1;
|
|
|
|
|
wopts.default_mode = 0;
|
|
|
|
|
wopts.replace_dir_mode = 0;
|
|
|
|
|
wopts.replace_file_mode = 0;
|
|
|
|
|
wopts.replace_uid = 0;
|
|
|
|
|
wopts.replace_gid = 0;
|
|
|
|
|
wopts.dir_mode = 0555;
|
|
|
|
|
wopts.file_mode = 0555;
|
|
|
|
|
wopts.gid = 0;
|
|
|
|
|
wopts.uid = 0;
|
|
|
|
|
wopts.input_charset = NULL;
|
|
|
|
|
wopts.ouput_charset = NULL;
|
|
|
|
|
|
|
|
|
|
wopts.ms_block = o->nwa;
|
|
|
|
|
wopts.src = o->src;
|
|
|
|
|
wopts.overwrite = o->target_iso_head;
|
|
|
|
|
wsrc = iso_source_new_ecma119(o->target_volset, &wopts);
|
|
|
|
|
|
|
|
|
|
track = burn_track_create();
|
|
|
|
|
burn_track_set_source(track, wsrc);
|
|
|
|
|
burn_session_add_track(session, track, BURN_POS_END);
|
|
|
|
|