|
|
|
@ -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); |
|
|
|
|