Support for specify image creation options.

This commit is contained in:
Vreixo Formoso Lopes
2007-09-28 16:10:48 +00:00
parent 33ef32b389
commit 22d0969098
3 changed files with 115 additions and 32 deletions

View File

@ -224,8 +224,8 @@ int isoburn_find_by_drive(struct isoburn **pt, struct burn_drive *d, int flag)
}
static
int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
int new_img)
int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
struct isoburn_source_opts *opts, int new_img)
{
struct burn_source *wsrc;
struct burn_session *session;
@ -244,25 +244,24 @@ int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
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!!
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.level = opts->level;
wopts.flags = opts->flag;
wopts.relaxed_constraints = opts->relaxed_constraints;
wopts.copy_eltorito = opts->copy_eltorito;
wopts.no_cache_inodes = opts->no_cache_inodes;
wopts.sort_files = opts->sort_files;
wopts.default_mode = opts->default_mode;
wopts.replace_dir_mode = opts->replace_dir_mode;
wopts.replace_file_mode = opts->replace_file_mode;
wopts.replace_uid = opts->replace_uid;
wopts.replace_gid = opts->replace_gid;
wopts.dir_mode = opts->dir_mode;
wopts.file_mode = opts->file_mode;
wopts.gid = opts->gid;
wopts.uid = opts->uid;
wopts.input_charset = opts->input_charset;
wopts.ouput_charset = opts->ouput_charset;
wopts.ms_block = (new_img ? 0 : o->nwa);
wopts.src = o->src;
@ -276,12 +275,14 @@ int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
return 1;
}
int isoburn_prepare_disc(struct burn_drive *d, struct burn_disc **disc)
int isoburn_prepare_disc(struct burn_drive *d, struct burn_disc **disc,
struct isoburn_source_opts *opts)
{
return isoburn_prepare_disc_aux(d, disc, 0);
return isoburn_prepare_disc_aux(d, disc, opts, 0);
}
int isoburn_prepare_new_image(struct burn_drive *d, struct burn_disc **disc)
int isoburn_prepare_new_image(struct burn_drive *d, struct burn_disc **disc,
struct isoburn_source_opts *opts)
{
return isoburn_prepare_disc_aux(d, disc, 1);
return isoburn_prepare_disc_aux(d, disc, opts, 1);
}