For API stablility reasons, make Ecma119WriteOpts private.
This commit is contained in:
55
demo/iso.c
55
demo/iso.c
@ -55,39 +55,10 @@ int main(int argc, char **argv)
|
||||
struct burn_source *burn_src;
|
||||
unsigned char buf[2048];
|
||||
FILE *fd;
|
||||
IsoWriteOpts *opts;
|
||||
char *volid = "VOLID";
|
||||
char *boot_img = NULL;
|
||||
|
||||
Ecma119WriteOpts opts = {
|
||||
1, /* level */
|
||||
0, /* rockridge */
|
||||
0, /* joliet */
|
||||
0, /* iso1999 */
|
||||
0, /* omit_version_numbers */
|
||||
0, /* allow_deep_paths */
|
||||
0, /* allow_longer_paths */
|
||||
0, /* max_37_char_filenames */
|
||||
0, /* no_force_dots */
|
||||
0, /* allow_lowercase */
|
||||
0, /* allow_full_ascii */
|
||||
0, /* joliet_longer_paths */
|
||||
0, /* sort files */
|
||||
0, /* replace_dir_mode */
|
||||
0, /* replace_file_mode */
|
||||
0, /* replace_uid */
|
||||
0, /* replace_gid */
|
||||
0, /* dir_mode */
|
||||
0, /* file_mode */
|
||||
0, /* uid */
|
||||
0, /* gid */
|
||||
0, /* replace_timestamps */
|
||||
0, /* timestamp */
|
||||
NULL, /* output charset */
|
||||
0, /* appendable */
|
||||
0, /* ms_block */
|
||||
NULL, /* overwrite */
|
||||
1024 /* fifo_size */
|
||||
};
|
||||
int rr = 0, j = 0, iso1999 = 0, level = 1;
|
||||
|
||||
while ((c = getopt(argc, argv, optstring)) != -1) {
|
||||
switch(c) {
|
||||
@ -97,16 +68,16 @@ int main(int argc, char **argv)
|
||||
exit(0);
|
||||
break;
|
||||
case 'J':
|
||||
opts.joliet = 1;
|
||||
j = 1;
|
||||
break;
|
||||
case 'R':
|
||||
opts.rockridge = 1;
|
||||
rr = 1;
|
||||
break;
|
||||
case 'I':
|
||||
opts.iso1999 = 1;
|
||||
iso1999 = 1;
|
||||
break;
|
||||
case 'L':
|
||||
opts.level = atoi(optarg);
|
||||
level = atoi(optarg);
|
||||
break;
|
||||
case 'b':
|
||||
boot_img = optarg;
|
||||
@ -173,13 +144,25 @@ int main(int argc, char **argv)
|
||||
el_torito_set_load_size(bootimg, 4);
|
||||
el_torito_patch_isolinux_image(bootimg);
|
||||
}
|
||||
|
||||
result = iso_write_opts_new(&opts, 0);
|
||||
if (result < 0) {
|
||||
printf ("Cant create write opts, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
iso_write_opts_set_iso_level(opts, level);
|
||||
iso_write_opts_set_rockridge(opts, rr);
|
||||
iso_write_opts_set_joliet(opts, j);
|
||||
iso_write_opts_set_iso1999(opts, iso1999);
|
||||
|
||||
result = iso_image_create_burn_source(image, &opts, &burn_src);
|
||||
result = iso_image_create_burn_source(image, opts, &burn_src);
|
||||
if (result < 0) {
|
||||
printf ("Cant create image, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
iso_write_opts_free(opts);
|
||||
|
||||
while (burn_src->read_xt(burn_src, buf, 2048) == 2048) {
|
||||
fwrite(buf, 1, 2048, fd);
|
||||
}
|
||||
|
@ -30,38 +30,10 @@ int main(int argc, char **argv)
|
||||
struct burn_drive_info *drives;
|
||||
struct burn_drive *drive;
|
||||
unsigned char buf[32 * 2048];
|
||||
IsoWriteOpts *opts;
|
||||
int ret = 0;
|
||||
struct iso_read_image_features features;
|
||||
Ecma119WriteOpts opts = {
|
||||
1, /* level */
|
||||
1, /* rockridge */
|
||||
0, /* joliet */
|
||||
0, /* iso1999 */
|
||||
0, /* omit_version_numbers */
|
||||
0, /* allow_deep_paths */
|
||||
0, /* allow_longer_paths */
|
||||
0, /* max_37_char_filenames */
|
||||
0, /* no_force_dots */
|
||||
0, /* allow_lowercase */
|
||||
0, /* allow_full_ascii */
|
||||
0, /* joliet_longer_paths */
|
||||
1, /* sort files */
|
||||
0, /* replace_dir_mode */
|
||||
0, /* replace_file_mode */
|
||||
0, /* replace_uid */
|
||||
0, /* replace_gid */
|
||||
0, /* dir_mode */
|
||||
0, /* file_mode */
|
||||
0, /* uid */
|
||||
0, /* gid */
|
||||
0, /* replace_timestamps */
|
||||
0, /* timestamp */
|
||||
NULL, /* output charset */
|
||||
0, /* appendable */
|
||||
0, /* ms_block */
|
||||
NULL, /* overwrite */
|
||||
1024 /* fifo_size */
|
||||
};
|
||||
uint32_t ms_block;
|
||||
struct iso_read_opts ropts = {
|
||||
0, /* block */
|
||||
0, /* norock */
|
||||
@ -150,16 +122,26 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
/* generate a multisession image with new contents */
|
||||
/* round up to 32kb aligment = 16 block*/
|
||||
opts.ms_block = ((features.size + 15) / 16 ) * 16;
|
||||
opts.appendable = 1;
|
||||
opts.overwrite = buf;
|
||||
result = iso_image_create_burn_source(image, &opts, &burn_src);
|
||||
result = iso_write_opts_new(&opts, 1);
|
||||
if (result < 0) {
|
||||
printf ("Cant create image, error %d\n", result);
|
||||
printf("Cant create write opts, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* round up to 32kb aligment = 16 block */
|
||||
ms_block = ((features.size + 15) / 16 ) * 16;
|
||||
iso_write_opts_set_ms_block(opts, ms_block);
|
||||
iso_write_opts_set_appendable(opts, 1);
|
||||
iso_write_opts_set_overwrite_buf(opts, buf);
|
||||
|
||||
result = iso_image_create_burn_source(image, opts, &burn_src);
|
||||
if (result < 0) {
|
||||
printf("Cant create image, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
iso_write_opts_free(opts);
|
||||
|
||||
/* a. write the new image */
|
||||
printf("Adding new data...\n");
|
||||
{
|
||||
@ -182,8 +164,8 @@ int main(int argc, char **argv)
|
||||
burn_drive_set_speed(drive, 0, 0);
|
||||
burn_write_opts_set_underrun_proof(burn_options, 1);
|
||||
|
||||
//mmm, check for 32K alignment?
|
||||
burn_write_opts_set_start_byte(burn_options, opts.ms_block * 2048);
|
||||
/* mmm, check for 32K alignment? */
|
||||
burn_write_opts_set_start_byte(burn_options, ms_block * 2048);
|
||||
|
||||
if (burn_write_opts_auto_write_type(burn_options, target_disc,
|
||||
reasons, 0) == BURN_WRITE_NONE) {
|
||||
@ -208,7 +190,7 @@ int main(int argc, char **argv)
|
||||
|
||||
/* b. write the new vol desc */
|
||||
printf("Writing the new vol desc...\n");
|
||||
ret = burn_random_access_write(drive, 0, (char*)opts.overwrite, 32*2048, 0);
|
||||
ret = burn_random_access_write(drive, 0, (char*)buf, 32*2048, 0);
|
||||
if (ret != 1) {
|
||||
printf("Ups, new vol desc write failed\n");
|
||||
}
|
||||
@ -233,7 +215,7 @@ libburn_ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
|
||||
|
||||
if ( burn_read_data(d, (off_t) lba * (off_t) 2048, (char*)buffer,
|
||||
2048, &data_count, 0) < 0 ) {
|
||||
return -1; //error
|
||||
return -1; /* error */
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
@ -27,36 +27,7 @@ int main(int argc, char **argv)
|
||||
struct burn_source *burn_src;
|
||||
unsigned char buf[2048];
|
||||
FILE *fd;
|
||||
Ecma119WriteOpts opts = {
|
||||
1, /* level */
|
||||
1, /* rockridge */
|
||||
0, /* joliet */
|
||||
0, /* iso1999 */
|
||||
0, /* omit_version_numbers */
|
||||
0, /* allow_deep_paths */
|
||||
0, /* allow_longer_paths */
|
||||
0, /* max_37_char_filenames */
|
||||
0, /* no_force_dots */
|
||||
0, /* allow_lowercase */
|
||||
0, /* allow_full_ascii */
|
||||
0, /* joliet_longer_paths */
|
||||
1, /* sort files */
|
||||
0, /* replace_dir_mode */
|
||||
0, /* replace_file_mode */
|
||||
0, /* replace_uid */
|
||||
0, /* replace_gid */
|
||||
0, /* dir_mode */
|
||||
0, /* file_mode */
|
||||
0, /* uid */
|
||||
0, /* gid */
|
||||
0, /* replace_timestamps */
|
||||
0, /* timestamp */
|
||||
NULL, /* output charset */
|
||||
0, /* appendable */
|
||||
0, /* ms_block */
|
||||
NULL, /* overwrite */
|
||||
1024 /* fifo_size */
|
||||
};
|
||||
IsoWriteOpts *opts;
|
||||
struct iso_read_opts ropts = {
|
||||
0, /* block */
|
||||
0, /* norock */
|
||||
@ -114,12 +85,20 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
/* generate a new image with both previous and added contents */
|
||||
result = iso_image_create_burn_source(image, &opts, &burn_src);
|
||||
result = iso_write_opts_new(&opts, 1);
|
||||
if (result < 0) {
|
||||
printf("Cant create write opts, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
result = iso_image_create_burn_source(image, opts, &burn_src);
|
||||
if (result < 0) {
|
||||
printf ("Cant create image, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
iso_write_opts_free(opts);
|
||||
|
||||
while (burn_src->read_xt(burn_src, buf, 2048) == 2048) {
|
||||
fwrite(buf, 1, 2048, fd);
|
||||
}
|
||||
|
@ -27,36 +27,8 @@ int main(int argc, char **argv)
|
||||
struct burn_source *burn_src;
|
||||
unsigned char buf[2048];
|
||||
FILE *fd;
|
||||
Ecma119WriteOpts opts = {
|
||||
1, /* level */
|
||||
1, /* rockridge */
|
||||
0, /* joliet */
|
||||
0, /* iso1999 */
|
||||
0, /* omit_version_numbers */
|
||||
0, /* allow_deep_paths */
|
||||
0, /* allow_longer_paths */
|
||||
0, /* max_37_char_filenames */
|
||||
0, /* no_force_dots */
|
||||
0, /* allow_lowercase */
|
||||
0, /* allow_full_ascii */
|
||||
0, /* joliet_longer_paths */
|
||||
1, /* sort files */
|
||||
0, /* replace_dir_mode */
|
||||
0, /* replace_file_mode */
|
||||
0, /* replace_uid */
|
||||
0, /* replace_gid */
|
||||
0, /* dir_mode */
|
||||
0, /* file_mode */
|
||||
0, /* uid */
|
||||
0, /* gid */
|
||||
0, /* replace_timestamps */
|
||||
0, /* timestamp */
|
||||
NULL, /* output charset */
|
||||
0, /* appendable */
|
||||
0, /* ms_block */
|
||||
NULL, /* overwrite */
|
||||
1024 /* fifo_size */
|
||||
};
|
||||
IsoWriteOpts *opts;
|
||||
uint32_t ms_block;
|
||||
struct iso_read_opts ropts = {
|
||||
0, /* block */
|
||||
0, /* norock */
|
||||
@ -115,13 +87,23 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
/* generate a multisession image with new contents */
|
||||
opts.ms_block = atoi(argv[2]);
|
||||
opts.appendable = 1;
|
||||
result = iso_image_create_burn_source(image, &opts, &burn_src);
|
||||
result = iso_write_opts_new(&opts, 1);
|
||||
if (result < 0) {
|
||||
printf("Cant create write opts, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* round up to 32kb aligment = 16 block */
|
||||
ms_block = atoi(argv[2]);
|
||||
iso_write_opts_set_ms_block(opts, ms_block);
|
||||
iso_write_opts_set_appendable(opts, 1);
|
||||
|
||||
result = iso_image_create_burn_source(image, opts, &burn_src);
|
||||
if (result < 0) {
|
||||
printf ("Cant create image, error %d\n", result);
|
||||
return 1;
|
||||
}
|
||||
iso_write_opts_free(opts);
|
||||
|
||||
while (burn_src->read_xt(burn_src, buf, 2048) == 2048) {
|
||||
fwrite(buf, 1, 2048, fd);
|
||||
|
Reference in New Issue
Block a user