New API call burn_track_set_pregap_size()
This commit is contained in:
parent
aabdb1f4c1
commit
4622514203
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2012.01.08.191443"
|
#define Cdrskin_timestamP "2012.01.10.122000"
|
||||||
|
@ -1935,7 +1935,7 @@ int burn_session_remove_track(struct burn_session *s, struct burn_track *t);
|
|||||||
/* ts B20107 */
|
/* ts B20107 */
|
||||||
/** Set the number which shall be written as CD track number with the first
|
/** Set the number which shall be written as CD track number with the first
|
||||||
track of the session. The following tracks will then get written with
|
track of the session. The following tracks will then get written with
|
||||||
consequtive CD track numbers. The resulting number of the last track
|
consecutive CD track numbers. The resulting number of the last track
|
||||||
must not exceed 99. The lowest possible start number is 1, which is also
|
must not exceed 99. The lowest possible start number is 1, which is also
|
||||||
the default. This setting applies only to CD SAO writing.
|
the default. This setting applies only to CD SAO writing.
|
||||||
@param session The session to be manipulated
|
@param session The session to be manipulated
|
||||||
@ -2270,16 +2270,6 @@ void burn_track_define_data(struct burn_track *t, int offset, int tail,
|
|||||||
int pad, int mode);
|
int pad, int mode);
|
||||||
|
|
||||||
|
|
||||||
/* ts A61024 */
|
|
||||||
/** Define whether a track shall swap bytes of its input stream.
|
|
||||||
@param t The track to change
|
|
||||||
@param swap_source_bytes 0=do not swap, 1=swap byte pairs
|
|
||||||
@return 1=success , 0=unacceptable value
|
|
||||||
@since 0.2.6
|
|
||||||
*/
|
|
||||||
int burn_track_set_byte_swap(struct burn_track *t, int swap_source_bytes);
|
|
||||||
|
|
||||||
|
|
||||||
/* ts B11206 */
|
/* ts B11206 */
|
||||||
/** Attach text or binary data as CD-TEXT attributes to a track.
|
/** Attach text or binary data as CD-TEXT attributes to a track.
|
||||||
The payload will be used to generate CD-TEXT packs by
|
The payload will be used to generate CD-TEXT packs by
|
||||||
@ -2427,12 +2417,41 @@ int burn_track_set_index(struct burn_track *t, int index_number,
|
|||||||
after the end of their predecessor.
|
after the end of their predecessor.
|
||||||
@param t The track to be manipulated
|
@param t The track to be manipulated
|
||||||
@param flag Bitfield for control purposes. Unused yet. Submit 0.
|
@param flag Bitfield for control purposes. Unused yet. Submit 0.
|
||||||
@return i > 0 indicates success, <= 0 means failure
|
@return > 0 indicates success, <= 0 means failure
|
||||||
@since 1.2.0
|
@since 1.2.0
|
||||||
*/
|
*/
|
||||||
int burn_track_clear_indice(struct burn_track *t, int flag);
|
int burn_track_clear_indice(struct burn_track *t, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/* ts B20110 */
|
||||||
|
/** Define whether a pre-gap shall be written before the track and how many
|
||||||
|
sectors this pregap shall have. A pre-gap is written in the range of track
|
||||||
|
index 0 and contains zeros resp. silence. No bytes from the track source
|
||||||
|
will be read for writing the pre-gap.
|
||||||
|
This setting affects only CD SAO write runs.
|
||||||
|
Track 1 always has a pre-gap of at least 150 sectors. Further pre-gaps
|
||||||
|
are not mandatory for MMC compliance as long as track modes are not mixed.
|
||||||
|
Mode mixing is currently not supported by libburn.
|
||||||
|
@param t The track to change
|
||||||
|
@param size Number of sectors in the pre-gap.
|
||||||
|
0 disables pre-gap, except for the first track.
|
||||||
|
@param flag Bitfield for control purposes. Unused yet. Submit 0.
|
||||||
|
@return > 0 indicates success, <= 0 means failure
|
||||||
|
@since 1.2.0
|
||||||
|
*/
|
||||||
|
int burn_track_set_pregap_size(struct burn_track *t, int size, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/* ts A61024 */
|
||||||
|
/** Define whether a track shall swap bytes of its input stream.
|
||||||
|
@param t The track to change
|
||||||
|
@param swap_source_bytes 0=do not swap, 1=swap byte pairs
|
||||||
|
@return 1=success , 0=unacceptable value
|
||||||
|
@since 0.2.6
|
||||||
|
*/
|
||||||
|
int burn_track_set_byte_swap(struct burn_track *t, int swap_source_bytes);
|
||||||
|
|
||||||
|
|
||||||
/** Hide the first track in the "pre gap" of the disc
|
/** Hide the first track in the "pre gap" of the disc
|
||||||
@param s session to change
|
@param s session to change
|
||||||
@param onoff 1 to enable hiding, 0 to disable
|
@param onoff 1 to enable hiding, 0 to disable
|
||||||
|
@ -159,6 +159,7 @@ burn_track_set_default_size;
|
|||||||
burn_track_set_index;
|
burn_track_set_index;
|
||||||
burn_track_set_isrc;
|
burn_track_set_isrc;
|
||||||
burn_track_set_isrc_string;
|
burn_track_set_isrc_string;
|
||||||
|
burn_track_set_pregap_size;
|
||||||
burn_track_set_size;
|
burn_track_set_size;
|
||||||
burn_track_set_source;
|
burn_track_set_source;
|
||||||
burn_version;
|
burn_version;
|
||||||
|
@ -203,6 +203,7 @@ struct burn_track *burn_track_create(void)
|
|||||||
t->postgap = 0;
|
t->postgap = 0;
|
||||||
t->pregap1 = 0;
|
t->pregap1 = 0;
|
||||||
t->pregap2 = 0;
|
t->pregap2 = 0;
|
||||||
|
t->pregap2_size = 150;
|
||||||
|
|
||||||
/* ts A61024 */
|
/* ts A61024 */
|
||||||
t->swap_source_bytes = 0;
|
t->swap_source_bytes = 0;
|
||||||
@ -475,6 +476,13 @@ int burn_track_clear_indice(struct burn_track *t, int flag)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ts B20110 API */
|
||||||
|
int burn_track_set_pregap_size(struct burn_track *t, int size, int flag)
|
||||||
|
{
|
||||||
|
t->pregap2 = (size > 0);
|
||||||
|
t->pregap2_size = size;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int burn_track_get_sectors(struct burn_track *t)
|
int burn_track_get_sectors(struct burn_track *t)
|
||||||
{
|
{
|
||||||
|
@ -90,6 +90,11 @@ struct burn_track
|
|||||||
int pregap1;
|
int pregap1;
|
||||||
/** The track contains interval two of a pregap */
|
/** The track contains interval two of a pregap */
|
||||||
int pregap2;
|
int pregap2;
|
||||||
|
|
||||||
|
/* ts B20110 */
|
||||||
|
/** The number of sectors in pre-gap 2, if .pregap2 is set */
|
||||||
|
int pregap2_size;
|
||||||
|
|
||||||
/** The track contains a postgap */
|
/** The track contains a postgap */
|
||||||
int postgap;
|
int postgap;
|
||||||
struct isrc isrc;
|
struct isrc isrc;
|
||||||
|
@ -301,6 +301,7 @@ int burn_write_close_session(struct burn_write_opts *o)
|
|||||||
This is useful only when changes about CD SAO get tested.
|
This is useful only when changes about CD SAO get tested.
|
||||||
# define Libburn_write_with_function_print_cuE yes
|
# define Libburn_write_with_function_print_cuE yes
|
||||||
*/
|
*/
|
||||||
|
#define Libburn_write_with_function_print_cuE
|
||||||
|
|
||||||
#ifdef Libburn_write_with_function_print_cuE
|
#ifdef Libburn_write_with_function_print_cuE
|
||||||
|
|
||||||
@ -333,14 +334,20 @@ static void print_cue(struct cue_sheet *sheet)
|
|||||||
unit[7] == 0 ? ' ' : cue_printify(unit[7]));
|
unit[7] == 0 ? ' ' : cue_printify(unit[7]));
|
||||||
} else if ((unit[0] & 0xf) == 3) {
|
} else if ((unit[0] & 0xf) == 3) {
|
||||||
printf(
|
printf(
|
||||||
" %1X %1X | %02X | | | | | %c%c%c%c%c%c\n",
|
" %1X %1X | %2d | | | | | %c%c%c%c%c%c\n",
|
||||||
(unit[0] & 0xf0) >> 4, unit[0] & 0xf,
|
(unit[0] & 0xf0) >> 4, unit[0] & 0xf,
|
||||||
unit[1], cue_printify(unit[2]),
|
unit[1], cue_printify(unit[2]),
|
||||||
cue_printify(unit[3]), cue_printify(unit[4]),
|
cue_printify(unit[3]), cue_printify(unit[4]),
|
||||||
cue_printify(unit[5]), cue_printify(unit[6]),
|
cue_printify(unit[5]), cue_printify(unit[6]),
|
||||||
cue_printify(unit[7]));
|
cue_printify(unit[7]));
|
||||||
|
} else if (unit[1] > 99) {
|
||||||
|
printf(" %1X %1X |0x%02X| %02X | %02X | %02X |",
|
||||||
|
(unit[0] & 0xf0) >> 4, unit[0] & 0xf,
|
||||||
|
unit[1], unit[2], unit[3], unit[4]);
|
||||||
|
printf(" %02d:%02d:%02d |\n",
|
||||||
|
unit[5], unit[6], unit[7]);
|
||||||
} else {
|
} else {
|
||||||
printf(" %1X %1X | %02X | %02X | %02X | %02X |",
|
printf(" %1X %1X | %2d | %02X | %02X | %02X |",
|
||||||
(unit[0] & 0xf0) >> 4, unit[0] & 0xf,
|
(unit[0] & 0xf0) >> 4, unit[0] & 0xf,
|
||||||
unit[1], unit[2], unit[3], unit[4]);
|
unit[1], unit[2], unit[3], unit[4]);
|
||||||
printf(" %02d:%02d:%02d |\n",
|
printf(" %02d:%02d:%02d |\n",
|
||||||
@ -585,14 +592,10 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
|
|||||||
e[2].control = e[1].control;
|
e[2].control = e[1].control;
|
||||||
e[2].adr = 1;
|
e[2].adr = 1;
|
||||||
|
|
||||||
/* ts A70121 : The pause before the first track is not really Pre-gap.
|
|
||||||
To count it as part 2 of a Pre-gap is a dirty hack. It also seems
|
|
||||||
to have caused confusion in dealing with part 1 of an eventual
|
|
||||||
real Pre-gap. mmc5r03c.pdf 6.33.3.2, 6.33.3.18 .
|
|
||||||
ts B20103 : It is not really Pre-gap with audio tracks.
|
|
||||||
*/
|
|
||||||
tar[0]->pregap2 = 1;
|
tar[0]->pregap2 = 1;
|
||||||
pregap = 150;
|
if (tar[0]->pregap2_size < 150)
|
||||||
|
tar[0]->pregap2_size = 150;
|
||||||
|
pregap = tar[0]->pregap2_size;
|
||||||
|
|
||||||
pform = form;
|
pform = form;
|
||||||
for (i = 0; i < ntr; i++) {
|
for (i = 0; i < ntr; i++) {
|
||||||
@ -1057,7 +1060,7 @@ int burn_write_track(struct burn_write_opts *o, struct burn_session *s,
|
|||||||
if (t->pregap1)
|
if (t->pregap1)
|
||||||
d->rlba += 75;
|
d->rlba += 75;
|
||||||
if (t->pregap2)
|
if (t->pregap2)
|
||||||
d->rlba += 150;
|
d->rlba += t->pregap2_size;
|
||||||
|
|
||||||
if (t->pregap1) {
|
if (t->pregap1) {
|
||||||
|
|
||||||
@ -1087,7 +1090,7 @@ int burn_write_track(struct burn_write_opts *o, struct burn_session *s,
|
|||||||
{ ret = 0; goto ex; }
|
{ ret = 0; goto ex; }
|
||||||
}
|
}
|
||||||
if (t->pregap2)
|
if (t->pregap2)
|
||||||
for (i = 0; i < 150; i++)
|
for (i = 0; i < t->pregap2_size; i++)
|
||||||
if (!sector_pregap(o, t->entry->point,
|
if (!sector_pregap(o, t->entry->point,
|
||||||
t->entry->control, t->mode))
|
t->entry->control, t->mode))
|
||||||
{ ret = 0; goto ex; }
|
{ ret = 0; goto ex; }
|
||||||
@ -2890,7 +2893,7 @@ return crap. so we send the command, then ignore the result.
|
|||||||
|
|
||||||
#ifdef Libburn_write_with_function_print_cuE
|
#ifdef Libburn_write_with_function_print_cuE
|
||||||
print_cue(sheet);
|
print_cue(sheet);
|
||||||
/* goto fail_wo_sync; */
|
goto fail_wo_sync;
|
||||||
#endif /* Libburn_write_with_function_print_cuE */
|
#endif /* Libburn_write_with_function_print_cuE */
|
||||||
|
|
||||||
ret = 1;
|
ret = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user