New track mode modifier BURN_SCMS

This commit is contained in:
2011-12-31 12:00:14 +00:00
parent ce29b4b38c
commit 38aaa2f8aa
4 changed files with 37 additions and 8 deletions

View File

@ -121,6 +121,13 @@ struct burn_write_opts;
/** Input mode modifier - subcodes present raw 96 */
#define BURN_SUBCODE_R96 (1 << 12)
/* ts B11230 */
/** Track mode modifier - Serial Copy Management System, SAO only
@since 1.2.0
*/
#define BURN_SCMS (1 << 13)
/** Possible disc writing style/modes */
enum burn_write_types
{

View File

@ -452,7 +452,7 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
{
int i, m, s, f, form, pform, runtime = -150, ret, track_length;
int leadin_form, leadin_start;
unsigned char ctladr;
unsigned char ctladr, scms;
struct burn_drive *d;
struct burn_toc_entry *e;
struct cue_sheet *sheet;
@ -581,6 +581,10 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
pform = form;
for (i = 0; i < ntr; i++) {
type_to_form(tar[i]->mode, &ctladr, &form);
if (tar[i]->mode & BURN_SCMS)
scms = 0x80;
else
scms = 0;
if (tar[i]->isrc.has_isrc) {
ret = add_isrc_cue(sheet, ctladr, i + 1,
@ -603,7 +607,7 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
if (pform != form) {
ret = add_cue(sheet, ctladr | 1, i + 1, 0, form, 0,
ret = add_cue(sheet, ctladr | 1, i + 1, 0, form, scms,
runtime);
if (ret <= 0)
goto failed;
@ -644,7 +648,8 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
e[3 + i].adr = 1;
e[3 + i].control = type_to_ctrl(tar[i]->mode);
ret = add_cue(sheet, ctladr | 1, i + 1, 1, form, 0, runtime);
ret = add_cue(sheet, ctladr | 1, i + 1, 1, form, scms,
runtime);
if (ret <= 0)
goto failed;