Changed struct isoburn_source_opts to opaque handle struct isoburn_imgen_opts

This commit is contained in:
2008-01-28 23:58:12 +00:00
parent 65cc7a5178
commit 6225d48f2c
5 changed files with 480 additions and 113 deletions

View File

@ -1 +1 @@
#define Xorriso_timestamP "2008.01.28.171915"
#define Xorriso_timestamP "2008.01.28.235717"

View File

@ -519,7 +519,7 @@ int Xorriso_make_write_options(
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
{
int ret, media_space;
struct isoburn_source_opts sopts;
struct isoburn_imgen_opts *sopts= NULL;
struct burn_drive_info *dinfo, *source_dinfo;
struct burn_drive *drive, *source_drive;
struct burn_disc *disc= NULL;
@ -535,8 +535,20 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
if(ret<=0)
return(0);
memset(&sopts, 0, sizeof(sopts));
ret= isoburn_igopt_new(&sopts, 0);
if(ret<=0)
return(ret);
isoburn_igopt_set_level(sopts, 2);
isoburn_igopt_set_extensions(sopts, 1|((!!xorriso->do_joliet)<<1));
isoburn_igopt_set_relaxed(sopts, isoburn_igopt_allow_deep_paths);
isoburn_igopt_set_sort_files(sopts, 1);
isoburn_igopt_set_over_mode(sopts, 0, 0, (mode_t) 0, (mode_t) 0);
isoburn_igopt_set_over_ugid(sopts, 0, 0, (uid_t) 0, (gid_t) 0);
isoburn_igopt_set_out_charset(sopts, NULL);
isoburn_igopt_set_fifo_size(sopts, xorriso->fs * 2048);
#ifdef NIX
memset(&sopts, 0, sizeof(sopts));
sopts.level= 2;
sopts.rockridge= 1;
sopts.joliet= !!xorriso->do_joliet;
@ -560,10 +572,11 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
sopts.gid= xorriso->global_gid;
sopts.output_charset= NULL;
sopts.fifo_size= xorriso->fs * 2048;
#endif /* NIX */
if(xorriso->out_drive_handle == xorriso->in_drive_handle ||
xorriso->in_drive_handle == NULL) {
ret= isoburn_prepare_disc(drive, &disc, &sopts);
ret= isoburn_prepare_disc(drive, &disc, sopts);
} else {
s= isoburn_disc_get_status(drive);
if(s!=BURN_DISC_BLANK) {
@ -581,7 +594,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
"on attempt to get source for write", 0);
if(ret<=0)
goto ex;
ret= isoburn_prepare_new_image(source_drive, &disc, &sopts, drive);
ret= isoburn_prepare_new_image(source_drive, &disc, sopts, drive);
}
if (ret <= 0) {
Xorriso_process_msg_queues(xorriso,0);
@ -649,6 +662,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
ex:;
if(disc!=NULL)
burn_disc_free(disc);
isoburn_igopt_destroy(&sopts, 0);
Xorriso_process_msg_queues(xorriso,0);
return(ret);
}