Set the advised write mode before inquiring media space

This commit is contained in:
Thomas Schmitt 2007-02-14 12:05:26 +00:00
parent e10bfe2d37
commit 636f5278ad

View File

@ -230,6 +230,7 @@ int telltoc_media(struct burn_drive *drive)
enum burn_disc_status s; enum burn_disc_status s;
char profile_name[80], speed_unit[40]; char profile_name[80], speed_unit[40];
struct burn_multi_caps *caps; struct burn_multi_caps *caps;
struct burn_write_opts *o = NULL;
printf("Media current: "); printf("Media current: ");
ret = burn_disc_get_profile(drive, &profile_no, profile_name); ret = burn_disc_get_profile(drive, &profile_no, profile_name);
@ -311,11 +312,27 @@ int telltoc_media(struct burn_drive *drive)
caps->advised_write_mode == BURN_WRITE_RAW ? caps->advised_write_mode == BURN_WRITE_RAW ?
" (advised)" : ""); " (advised)" : "");
printf("\n"); printf("\n");
burn_disc_free_multi_caps(&caps); o= burn_write_opts_new(drive);
available = burn_disc_available_space(drive, NULL); if (o != NULL) {
burn_write_opts_set_perform_opc(o, 0);
if(caps->advised_write_mode == BURN_WRITE_TAO)
burn_write_opts_set_write_type(o,
BURN_WRITE_TAO, BURN_BLOCK_MODE1);
else if (caps->advised_write_mode == BURN_WRITE_SAO)
burn_write_opts_set_write_type(o,
BURN_WRITE_SAO, BURN_BLOCK_SAO);
else {
burn_write_opts_free(o);
o = NULL;
}
}
available = burn_disc_available_space(drive, o);
printf("Write space : %.1f MiB (%.fs)\n", printf("Write space : %.1f MiB (%.fs)\n",
((double) available) / 1024.0 / 1024.0, ((double) available) / 1024.0 / 1024.0,
((double) available) / 2048.0); ((double) available) / 2048.0);
burn_disc_free_multi_caps(&caps);
if (o != NULL)
burn_write_opts_free(o);
} }
ret = burn_drive_get_write_speed(drive); ret = burn_drive_get_write_speed(drive);