New command -use_immed_bit, new -as cdrecord option use_immed_bit=
This commit is contained in:
@@ -343,6 +343,10 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
xorriso->use_immed_bit_default= burn_drive_get_immed(dinfo[0].drive) > 0 ?
|
||||
1 : -1;
|
||||
if(xorriso->use_immed_bit != 0)
|
||||
burn_drive_set_immed(dinfo[0].drive, xorriso->use_immed_bit > 0);
|
||||
state= isoburn_disc_get_status(dinfo[0].drive);
|
||||
ret= isoburn_get_img_partition_offset(dinfo[0].drive, &offst);
|
||||
if((state == BURN_DISC_APPENDABLE || state == BURN_DISC_FULL) && ret == 1) {
|
||||
@@ -3412,3 +3416,36 @@ int Xorriso_scsi_dev_family(struct XorrisO *xorriso, int flag)
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_use_immed_bit(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int enable= 1, ret;
|
||||
struct burn_drive_info *dinfo;
|
||||
struct burn_drive *drive;
|
||||
|
||||
/* It is not an error if no drive is acquired.
|
||||
Xorriso_drive_aquire() will apply use_immed_bit.
|
||||
*/
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"on attempt to control use of Immed bit", 2 | 16);
|
||||
if(ret<0)
|
||||
return(ret);
|
||||
if(ret == 0)
|
||||
return(1);
|
||||
|
||||
if(xorriso->use_immed_bit == -1) {
|
||||
enable= 0;
|
||||
} else if(xorriso->use_immed_bit == 1) {
|
||||
enable= 1;
|
||||
} else if(xorriso->use_immed_bit == 0) {
|
||||
/* obtain default value as determined after drive aquiration */
|
||||
if(xorriso->use_immed_bit_default == 0)
|
||||
return(1);
|
||||
enable= (xorriso->use_immed_bit_default > 0);
|
||||
}
|
||||
burn_drive_set_immed(drive, enable);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user