New API calls burn_disc_get_sectors_v2(), burn_session_get_sectors_v2(), burn_track_get_sectors_v2()
This commit is contained in:
parent
29bfd7e5e7
commit
f0d9795cd1
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2024.03.02.131145"
|
#define Cdrskin_timestamP "2024.03.03.105146"
|
||||||
|
@ -3063,6 +3063,11 @@ int burn_track_set_size(struct burn_track *t, off_t size);
|
|||||||
*/
|
*/
|
||||||
int burn_track_get_sectors(struct burn_track *);
|
int burn_track_get_sectors(struct burn_track *);
|
||||||
|
|
||||||
|
/* ts C40302 */
|
||||||
|
/** Like burn_track_get_sectors(), but with return type off_t.
|
||||||
|
@since 1.5.8
|
||||||
|
*/
|
||||||
|
off_t burn_track_get_sectors_v2(struct burn_track *);
|
||||||
|
|
||||||
/* ts A61101 */
|
/* ts A61101 */
|
||||||
/** Tells how many source bytes have been read and how many data bytes have
|
/** Tells how many source bytes have been read and how many data bytes have
|
||||||
@ -3856,8 +3861,19 @@ struct burn_session **burn_disc_get_sessions(struct burn_disc *d,
|
|||||||
int burn_disc_get_incomplete_sessions(struct burn_disc *d);
|
int burn_disc_get_incomplete_sessions(struct burn_disc *d);
|
||||||
|
|
||||||
|
|
||||||
|
/** Tells how many sectors a disc will have, or already has.
|
||||||
|
This is the sum of all burn_session_get_sectors() results of the disc.
|
||||||
|
The result is NOT RELIABLE with tracks of undefined length
|
||||||
|
*/
|
||||||
int burn_disc_get_sectors(struct burn_disc *d);
|
int burn_disc_get_sectors(struct burn_disc *d);
|
||||||
|
|
||||||
|
/* ts C40302 */
|
||||||
|
/** Like burn_disc_get_sectors(), but with return type off_t.
|
||||||
|
@since 1.5.8
|
||||||
|
*/
|
||||||
|
off_t burn_disc_get_sectors_v2(struct burn_disc *d);
|
||||||
|
|
||||||
|
|
||||||
/** Gets an array of all the tracks for a session
|
/** Gets an array of all the tracks for a session
|
||||||
THIS IS NO LONGER VALID AFTER YOU ADD OR REMOVE A TRACK
|
THIS IS NO LONGER VALID AFTER YOU ADD OR REMOVE A TRACK
|
||||||
@param s session to get track array for
|
@param s session to get track array for
|
||||||
@ -3867,8 +3883,19 @@ int burn_disc_get_sectors(struct burn_disc *d);
|
|||||||
struct burn_track **burn_session_get_tracks(struct burn_session *s,
|
struct burn_track **burn_session_get_tracks(struct burn_session *s,
|
||||||
int *num);
|
int *num);
|
||||||
|
|
||||||
|
/** Tells how many sectors a session will have, or already has on disc.
|
||||||
|
This is the sum of all burn_track_get_sectors() results of the session.
|
||||||
|
The result is NOT RELIABLE with tracks of undefined length
|
||||||
|
*/
|
||||||
int burn_session_get_sectors(struct burn_session *s);
|
int burn_session_get_sectors(struct burn_session *s);
|
||||||
|
|
||||||
|
/* ts C40302 */
|
||||||
|
/** Like burn_session_get_sectors(), but with return type off_t.
|
||||||
|
@since 1.5.8
|
||||||
|
*/
|
||||||
|
off_t burn_session_get_sectors_v2(struct burn_session *s);
|
||||||
|
|
||||||
|
|
||||||
/** Gets the mode of a track
|
/** Gets the mode of a track
|
||||||
@param track the track to query
|
@param track the track to query
|
||||||
@return the track's mode
|
@return the track's mode
|
||||||
|
@ -215,7 +215,10 @@ local: *;
|
|||||||
};
|
};
|
||||||
|
|
||||||
LIBBURN4_1.5.8 {
|
LIBBURN4_1.5.8 {
|
||||||
burn_drive_get_status_v2;
|
burn_disc_get_sectors_v2;
|
||||||
burn_disc_track_lba_nwa_v2;
|
burn_disc_track_lba_nwa_v2;
|
||||||
|
burn_drive_get_status_v2;
|
||||||
|
burn_session_get_sectors_v2;
|
||||||
|
burn_track_get_sectors_v2;
|
||||||
} LIBBURN4;
|
} LIBBURN4;
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ static void get_bytes(struct burn_track *track, int count, unsigned char *data)
|
|||||||
off_t missing, inp_block_size, track_blocks;
|
off_t missing, inp_block_size, track_blocks;
|
||||||
|
|
||||||
inp_block_size = burn_sector_length(track->mode);
|
inp_block_size = burn_sector_length(track->mode);
|
||||||
track_blocks = burn_track_get_sectors_2(track, 1);
|
track_blocks = burn_track_get_sectors_2_v2(track, 1);
|
||||||
if (track_blocks < 0)
|
if (track_blocks < 0)
|
||||||
track_blocks = 0;
|
track_blocks = 0;
|
||||||
missing = track_blocks * inp_block_size - track->sourcecount;
|
missing = track_blocks * inp_block_size - track->sourcecount;
|
||||||
|
@ -160,7 +160,7 @@ int burn_track_is_open_ended(struct burn_track *t);
|
|||||||
int burn_track_is_data_done(struct burn_track *t);
|
int burn_track_is_data_done(struct burn_track *t);
|
||||||
|
|
||||||
/* ts A70125 : sets overall sectors of a track: offset+payload+padding */
|
/* ts A70125 : sets overall sectors of a track: offset+payload+padding */
|
||||||
int burn_track_set_sectors(struct burn_track *t, int sectors);
|
int burn_track_set_sectors(struct burn_track *t, off_t sectors);
|
||||||
|
|
||||||
/* ts A70218 : sets the payload size alone */
|
/* ts A70218 : sets the payload size alone */
|
||||||
int burn_track_set_size(struct burn_track *t, off_t size);
|
int burn_track_set_size(struct burn_track *t, off_t size);
|
||||||
@ -185,6 +185,7 @@ void burn_cdtext_free(struct burn_cdtext **cdtext);
|
|||||||
/* @param flag bit0= do not add post-gap
|
/* @param flag bit0= do not add post-gap
|
||||||
*/
|
*/
|
||||||
int burn_track_get_sectors_2(struct burn_track *t, int flag);
|
int burn_track_get_sectors_2(struct burn_track *t, int flag);
|
||||||
|
off_t burn_track_get_sectors_2_v2(struct burn_track *t, int flag);
|
||||||
|
|
||||||
|
|
||||||
#endif /* BURN__STRUCTURE_H */
|
#endif /* BURN__STRUCTURE_H */
|
||||||
|
@ -636,7 +636,7 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
|
|||||||
track_length = 300;
|
track_length = 300;
|
||||||
if (!tar[i]->pad)
|
if (!tar[i]->pad)
|
||||||
tar[i]->pad = 1;
|
tar[i]->pad = 1;
|
||||||
burn_track_set_sectors(tar[i], track_length);
|
burn_track_set_sectors(tar[i], (off_t) track_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
type_to_form(tar[i]->mode, &ctladr, &form);
|
type_to_form(tar[i]->mode, &ctladr, &form);
|
||||||
@ -2832,21 +2832,25 @@ int burn_nominal_slowdown(int kb_per_second, int max_corr,
|
|||||||
int burn_stdio_write_track(struct burn_write_opts *o, struct burn_session *s,
|
int burn_stdio_write_track(struct burn_write_opts *o, struct burn_session *s,
|
||||||
int tnum, int flag)
|
int tnum, int flag)
|
||||||
{
|
{
|
||||||
int open_ended, bufsize = 16 * 2048, ret, sectors;
|
int open_ended, bufsize = 16 * 2048, ret;
|
||||||
struct burn_track *t = s->track[tnum];
|
struct burn_track *t = s->track[tnum];
|
||||||
struct burn_drive *d = o->drive;
|
struct burn_drive *d = o->drive;
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
int i, us_corr = 0, max_corr = 250000;
|
int us_corr = 0, max_corr = 250000;
|
||||||
off_t prev_sync_sector = 0;
|
off_t prev_sync_sector = 0, sectors, i;
|
||||||
struct buffer *out = d->buffer;
|
struct buffer *out = d->buffer;
|
||||||
struct timeval prev_time;
|
struct timeval prev_time;
|
||||||
|
|
||||||
BURN_ALLOC_MEM(buf, char, bufsize);
|
BURN_ALLOC_MEM(buf, char, bufsize);
|
||||||
|
|
||||||
sectors = burn_track_get_sectors_2(t, 1);
|
sectors = burn_track_get_sectors_2_v2(t, 1);
|
||||||
if (sectors < 0)
|
if (sectors < 0)
|
||||||
{ret = 0; goto ex;}
|
{ret = 0; goto ex;}
|
||||||
burn_disc_init_track_status(o, s, t, tnum, sectors);
|
|
||||||
|
/* >>> (int) cast will be removed when burn_disc_init_track_status()
|
||||||
|
>>> gets off_t sectors */;
|
||||||
|
burn_disc_init_track_status(o, s, t, tnum, (int) sectors);
|
||||||
|
|
||||||
open_ended = burn_track_is_open_ended(t);
|
open_ended = burn_track_is_open_ended(t);
|
||||||
|
|
||||||
t->end_on_premature_eoi = (o->write_type == BURN_WRITE_TAO);
|
t->end_on_premature_eoi = (o->write_type == BURN_WRITE_TAO);
|
||||||
|
Loading…
Reference in New Issue
Block a user