|
|
|
@ -842,7 +842,7 @@ void burn_set_scsi_logging(int flag);
|
|
|
|
|
@param exclusive
|
|
|
|
|
0 = no attempt to make drive access exclusive.
|
|
|
|
|
1 = Try to open only devices which are not marked as busy
|
|
|
|
|
and try to mark them busy if opened sucessfully. (O_EXCL
|
|
|
|
|
and try to mark them busy if opened successfully. (O_EXCL
|
|
|
|
|
on GNU/Linux , flock(LOCK_EX) on FreeBSD.)
|
|
|
|
|
2 = in case of a SCSI device, also try to open exclusively
|
|
|
|
|
the matching /dev/sr, /dev/scd and /dev/st .
|
|
|
|
@ -880,7 +880,7 @@ void burn_allow_untested_profiles(int yes);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ts A60823 */
|
|
|
|
|
/** Aquire a drive with known device file address.
|
|
|
|
|
/** Acquire a drive with known device file address.
|
|
|
|
|
|
|
|
|
|
This is the sysadmin friendly way to open one drive and to leave all
|
|
|
|
|
others untouched. It bundles the following API calls to form a
|
|
|
|
@ -902,12 +902,12 @@ void burn_allow_untested_profiles(int yes);
|
|
|
|
|
|
|
|
|
|
Different than with burn_drive_scan() it is allowed to call
|
|
|
|
|
burn_drive_scan_and_grab() without giving up any other scanned drives. So
|
|
|
|
|
this call can be used to get a collection of more than one aquired drives.
|
|
|
|
|
The attempt to aquire the same drive twice will fail, though.
|
|
|
|
|
this call can be used to get a collection of more than one acquired drives.
|
|
|
|
|
The attempt to acquire the same drive twice will fail, though.
|
|
|
|
|
|
|
|
|
|
Pseudo-drives:
|
|
|
|
|
|
|
|
|
|
burn_drive_scan_and_grab() is able to aquire virtual drives which will
|
|
|
|
|
burn_drive_scan_and_grab() is able to acquire virtual drives which will
|
|
|
|
|
accept options much like a MMC burner drive. Many of those options will not
|
|
|
|
|
cause any effect, though. The address of a pseudo-drive begins with
|
|
|
|
|
prefix "stdio:" followed by a path.
|
|
|
|
@ -1001,7 +1001,7 @@ void burn_drive_clear_whitelist(void);
|
|
|
|
|
burn_drive_scan() again.
|
|
|
|
|
@param n_drives Returns the number of drive items in drive_infos.
|
|
|
|
|
@return 0 while scanning is not complete
|
|
|
|
|
>0 when it is finished sucessfully,
|
|
|
|
|
>0 when it is finished successfully,
|
|
|
|
|
<0 when finished but failed.
|
|
|
|
|
*/
|
|
|
|
|
int burn_drive_scan(struct burn_drive_info *drive_infos[],
|
|
|
|
@ -1307,7 +1307,7 @@ int burn_drive_get_media_sno(struct burn_drive *d, char **sno, int *sno_len);
|
|
|
|
|
burn_drive_get_write_speed(), burn_drive_get_min_write_speed(),
|
|
|
|
|
burn_drive_get_start_end_lba(). The drive must be grabbed for this call.
|
|
|
|
|
@param drive The drive to query.
|
|
|
|
|
@return 1=sucess, 0=no valid ATIP info read, -1 severe error
|
|
|
|
|
@return 1=success, 0=no valid ATIP info read, -1 severe error
|
|
|
|
|
@since 0.2.6
|
|
|
|
|
*/
|
|
|
|
|
int burn_disc_read_atip(struct burn_drive *drive);
|
|
|
|
@ -1376,7 +1376,7 @@ char *burn_guess_cd_manufacturer(int m_li, int s_li, int f_li,
|
|
|
|
|
bit5= Disc is nominally erasable (Erasable bit)
|
|
|
|
|
This will be set with overwriteable media which
|
|
|
|
|
libburn normally considers to be unerasable blank.
|
|
|
|
|
@return 1 success, <= 0 an error occured
|
|
|
|
|
@return 1 success, <= 0 an error occurred
|
|
|
|
|
@since 0.7.2
|
|
|
|
|
*/
|
|
|
|
|
int burn_disc_get_cd_info(struct burn_drive *d, char disc_type[80],
|
|
|
|
@ -1400,7 +1400,7 @@ int burn_disc_get_cd_info(struct burn_drive *d, char disc_type[80],
|
|
|
|
|
bytes in text_packs divided by 18.
|
|
|
|
|
@param flag Bitfield for control purposes,
|
|
|
|
|
Unused yet. Submit 0.
|
|
|
|
|
@return 1 success, 0= no CD-TEXT found, < 0 an error occured
|
|
|
|
|
@return 1 success, 0= no CD-TEXT found, < 0 an error occurred
|
|
|
|
|
@since 1.2.0
|
|
|
|
|
*/
|
|
|
|
|
int burn_disc_get_leadin_text(struct burn_drive *d,
|
|
|
|
@ -1468,7 +1468,7 @@ int burn_disc_track_lba_nwa(struct burn_drive *d, struct burn_write_opts *o,
|
|
|
|
|
|
|
|
|
|
/* ts B10525 */
|
|
|
|
|
/** Tells whether a previous attempt to determine the Next Writeable Address
|
|
|
|
|
of the upcomming track reveiled that the READ TRACK INFORMATION Damage Bit
|
|
|
|
|
of the upcoming track reveiled that the READ TRACK INFORMATION Damage Bit
|
|
|
|
|
is set for this track and that no valid writable address is available.
|
|
|
|
|
See MMC-5 6.27.3.7 Damage Bit, 6.27.3.11 NWA_V (NWA valid)
|
|
|
|
|
@param d The drive to query.
|
|
|
|
@ -1692,7 +1692,7 @@ void burn_disc_erase(struct burn_drive *drive, int fast);
|
|
|
|
|
in state "Sequential Recording" (profile 0014h) which get formatted to
|
|
|
|
|
state "Restricted Overwrite" (profile 0013h). DVD+RW can be "de-iced"
|
|
|
|
|
by setting bit4 of flag. DVD-RAM and BD-RE may get formatted initially
|
|
|
|
|
or re-formatted to adjust their Defect Managment.
|
|
|
|
|
or re-formatted to adjust their Defect Management.
|
|
|
|
|
This function usually returns while the drive is still in the process
|
|
|
|
|
of formatting. The formatting is done, when burn_drive_get_status()
|
|
|
|
|
returns BURN_DRIVE_IDLE. This may be immediately after return or may
|
|
|
|
@ -1880,7 +1880,7 @@ int burn_drive_wrote_well(struct burn_drive *d);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ts B31023 */
|
|
|
|
|
/** Inquire whether a write error occured which is suspected to have happened
|
|
|
|
|
/** Inquire whether a write error occurred which is suspected to have happened
|
|
|
|
|
due to a false report about DVD-RW capability to be written in write type
|
|
|
|
|
BURN_WRITE_TAO.
|
|
|
|
|
@param d The drive to inquire.
|
|
|
|
@ -2645,7 +2645,7 @@ struct burn_disc *burn_drive_get_disc(struct burn_drive *d);
|
|
|
|
|
@param t The track to set the data source for
|
|
|
|
|
@param s The data source to use for the contents of the track
|
|
|
|
|
@return An error code stating if the source is ready for use for
|
|
|
|
|
writing the track, or if an error occured
|
|
|
|
|
writing the track, or if an error occurred
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
enum burn_source_status burn_track_set_source(struct burn_track *t,
|
|
|
|
@ -2660,7 +2660,7 @@ enum burn_source_status burn_track_set_source(struct burn_track *t,
|
|
|
|
|
announced then the track will be padded up with zeros.
|
|
|
|
|
@param t The track to change
|
|
|
|
|
@param size The size to set
|
|
|
|
|
@return 0=failure 1=sucess
|
|
|
|
|
@return 0=failure 1=success
|
|
|
|
|
@since 0.3.4
|
|
|
|
|
*/
|
|
|
|
|
int burn_track_set_default_size(struct burn_track *t, off_t size);
|
|
|
|
@ -3268,7 +3268,7 @@ void burn_write_opts_set_obs_pad(struct burn_write_opts *opts, int pad);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ts A91115 */
|
|
|
|
|
/** Sets the rythm by which stdio pseudo drives force their output data to
|
|
|
|
|
/** Sets the rhythm by which stdio pseudo drives force their output data to
|
|
|
|
|
be consumed by the receiving storage device. This forcing keeps the memory
|
|
|
|
|
from being clogged with lots of pending data for slow devices.
|
|
|
|
|
@param opts The write opts to change
|
|
|
|
@ -3914,7 +3914,7 @@ int burn_is_aborting(int flag);
|
|
|
|
|
resulting struct burn_multi_caps elements .start_adr , .start_alignment ,
|
|
|
|
|
.start_range_low , .start_range_high .
|
|
|
|
|
Other than burn_disc_write() this is a synchronous call which returns
|
|
|
|
|
only after the write transaction has ended (sucessfully or not). So it is
|
|
|
|
|
only after the write transaction has ended (successfully or not). So it is
|
|
|
|
|
wise not to transfer giant amounts of data in a single call.
|
|
|
|
|
Important: Data have to fit into the already formatted area of the media.
|
|
|
|
|
@param d The drive to which to write
|
|
|
|
@ -3926,7 +3926,7 @@ int burn_is_aborting(int flag);
|
|
|
|
|
drive buffer without further data transfer).
|
|
|
|
|
@param flag Bitfield for control purposes:
|
|
|
|
|
bit0 = flush the drive buffer after eventual writing
|
|
|
|
|
@return 1=sucessful , <=0 : number of transfered bytes * -1
|
|
|
|
|
@return 1=successful , <=0 : number of transferred bytes * -1
|
|
|
|
|
@since 0.4.0
|
|
|
|
|
*/
|
|
|
|
|
int burn_random_access_write(struct burn_drive *d, off_t byte_address,
|
|
|
|
@ -3944,7 +3944,7 @@ int burn_random_access_write(struct burn_drive *d, off_t byte_address,
|
|
|
|
|
@param d The drive from which to read
|
|
|
|
|
@param capacity Will return the result if valid
|
|
|
|
|
@param flag Bitfield for control purposes: Unused yet, submit 0.
|
|
|
|
|
@return 1=sucessful , <=0 an error occured
|
|
|
|
|
@return 1=successful , <=0 an error occurred
|
|
|
|
|
@since 0.6.0
|
|
|
|
|
*/
|
|
|
|
|
int burn_get_read_capacity(struct burn_drive *d, int *capacity, int flag);
|
|
|
|
@ -3957,7 +3957,7 @@ int burn_get_read_capacity(struct burn_drive *d, int *capacity, int flag);
|
|
|
|
|
be aligned to 2048 bytes. Only data tracks with 2048 bytes per sector
|
|
|
|
|
can be read this way. I.e. not CD-audio, not CD-video-stream ...
|
|
|
|
|
This is a synchronous call which returns only after the full read job
|
|
|
|
|
has ended (sucessfully or not). So it is wise not to read giant amounts
|
|
|
|
|
has ended (successfully or not). So it is wise not to read giant amounts
|
|
|
|
|
of data in a single call.
|
|
|
|
|
@param d The drive from which to read
|
|
|
|
|
@param byte_address The start address of the read in byte (aligned to 2048)
|
|
|
|
@ -3973,7 +3973,7 @@ int burn_get_read_capacity(struct burn_drive *d, int *capacity, int flag);
|
|
|
|
|
with single block steps.
|
|
|
|
|
@since 0.5.2
|
|
|
|
|
bit3= return -2 on permission denied error rather than
|
|
|
|
|
issueing a warning message.
|
|
|
|
|
issuing a warning message.
|
|
|
|
|
@since 1.0.6
|
|
|
|
|
bit4= return -3 on SCSI error
|
|
|
|
|
5 64 00 ILLEGAL MODE FOR THIS TRACK
|
|
|
|
@ -3985,7 +3985,7 @@ int burn_get_read_capacity(struct burn_drive *d, int *capacity, int flag);
|
|
|
|
|
bit5= issue messages with severity DEBUG if they would
|
|
|
|
|
be suppressed by bit1.
|
|
|
|
|
@since 1.4.0
|
|
|
|
|
@return 1=sucessful , <=0 an error occured
|
|
|
|
|
@return 1=successful , <=0 an error occurred
|
|
|
|
|
with bit3: -2= permission denied error
|
|
|
|
|
@since 0.4.0
|
|
|
|
|
*/
|
|
|
|
@ -4032,7 +4032,7 @@ int burn_read_data(struct burn_drive *d, off_t byte_address,
|
|
|
|
|
bit5= issue messages with severity DEBUG if they would
|
|
|
|
|
be suppressed by bit1.
|
|
|
|
|
@since 1.4.0
|
|
|
|
|
@return 1=sucessful , <=0 an error occured
|
|
|
|
|
@return 1=successful , <=0 an error occurred
|
|
|
|
|
with bit3: -2= permission denied error
|
|
|
|
|
@since 1.2.6
|
|
|
|
|
*/
|
|
|
|
@ -4116,7 +4116,7 @@ int burn_drive_get_drive_role(struct burn_drive *d);
|
|
|
|
|
(role 2) or read-only (role 4) or write-only (role 5). See bit1.
|
|
|
|
|
@param allowed Bitfield for control purposes:
|
|
|
|
|
bit0= Enable roles 4 and 5 for drives which get
|
|
|
|
|
aquired after this call
|
|
|
|
|
acquired after this call
|
|
|
|
|
bit1= with bit0:
|
|
|
|
|
Test whether the file can be opened for
|
|
|
|
|
read-write, read-only, or write-only.
|
|
|
|
|