From cf9a2031a4ee1ae976e56016068a1edab5d3ff29 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 1 Sep 2009 08:25:01 +0000 Subject: [PATCH] Disabled write mode -raw96r --- cdrskin/cdrskin.1 | 9 +------ cdrskin/cdrskin.c | 49 ++++++++++++++++++++++++++++++++----- cdrskin/cdrskin_timestamp.h | 2 +- 3 files changed, 45 insertions(+), 15 deletions(-) diff --git a/cdrskin/cdrskin.1 b/cdrskin/cdrskin.1 index 56a863f..8d813ca 100644 --- a/cdrskin/cdrskin.1 +++ b/cdrskin/cdrskin.1 @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH CDRSKIN 1 "May 07, 2009" +.TH CDRSKIN 1 "Aug 30, 2009" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -679,13 +679,6 @@ Add the given amount of trailing zeros to the next data track. This option gets reset to padsize=0 after that next track is written. It may be set again before the next track argument. About size specifiers, see option fs=. .TP -.BI \-raw96r -Write CD in RAW/RAW96R mode. This mode allows to put more payload bytes -into a CD sector but obviously at the cost of error correction. It can only -be used for tracks of fixely predicted size. Some drives allow this mode but -then behave strange or even go bad for the next few attempts to burn a CD. -One should use it only if inavoidable. -.TP .BI \-sao Write CD in Session At Once mode or sequential DVD-R[W] in Disc-at-once (DAO) mode. diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index 7f8af1a..060da5c 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -310,6 +310,15 @@ or #define Cdrskin_all_tracks_with_sector_paD 1 +/** ts A90901 + The raw write modes of libburn depend in part on code borrowed from cdrdao. + Since this code is not understood by the current developers and since CDs + written with cdrskin -raw96r seem unreadable anyway, -raw96r is given up + for now. +*/ +#define Cdrskin_disable_raw96R 1 + + /** A macro which is able to eat up a function call like printf() */ #ifdef Cdrskin_extra_leaN #define ClN(x) @@ -2814,7 +2823,11 @@ see_cdrskin_eng_html:; #endif fprintf(stderr,"\t-dao\t\tWrite disk in SAO mode.\n"); fprintf(stderr,"\t-sao\t\tWrite disk in SAO mode.\n"); + +#ifndef Cdrskin_disable_raw96R fprintf(stderr,"\t-raw96r\t\tWrite disk in RAW/RAW96R mode\n"); +#endif + fprintf(stderr,"\ttsize=#\t\tannounces exact size of source data\n"); fprintf(stderr,"\tpadsize=#\tAmount of padding\n"); fprintf(stderr,"\t-audio\t\tSubsequent tracks are CD-DA audio tracks\n"); @@ -2873,8 +2886,10 @@ see_cdrskin_eng_html:; fprintf(stderr, "cdrskin: NOTE : option --no_rc would only work as first argument.\n"); +#ifndef Cdrskin_disable_raw96R } else if(strcmp(argv[i],"-raw96r")==0) { strcpy(o->write_mode_name,"RAW/RAW96R"); +#endif } else if(strcmp(argv[i],"-sao")==0 || strcmp(argv[i],"-dao")==0) { strcpy(o->write_mode_name,"SAO"); @@ -3203,7 +3218,7 @@ struct CdrskiN { int do_burn; int tell_media_space; /* actually do not burn but tell the available space */ int burnfree; - /** The write mode (like SAO or RAW96/R). See libburn. + /** The write mode (like SAO or TAO). See libburn. Controled by preskin->write_mode_name */ enum burn_write_types write_type; int block_type; @@ -4593,10 +4608,14 @@ int Cdrskin_checkdrive(struct CdrskiN *skin, char *profile_name, int flag) printf(" TAO"); if(drive_info->sao_block_types & BURN_BLOCK_SAO) printf(" SAO"); + +#ifndef Cdrskin_disable_raw96R if((drive_info->raw_block_types & BURN_BLOCK_RAW96R) && strstr(profile_name,"DVD")!=profile_name && strstr(profile_name,"BD")!=profile_name) printf(" RAW/RAW96R"); +#endif /* ! Cdrskin_disable_raw96R */ + printf("\n"); #else @@ -5771,19 +5790,28 @@ int Cdrskin_activate_write_mode(struct CdrskiN *skin, goto report_failure; } skin->write_type= wt; + +#ifndef Cdrskin_disable_raw96R if(wt==BURN_WRITE_RAW) strcpy(skin->preskin->write_mode_name,"RAW/RAW96R"); - else if(wt==BURN_WRITE_TAO) + else +#endif /* ! Cdrskin_disable_raw96R */ + if(wt==BURN_WRITE_TAO) strcpy(skin->preskin->write_mode_name,"TAO"); else if(wt==BURN_WRITE_SAO) strcpy(skin->preskin->write_mode_name,"SAO"); else sprintf(skin->preskin->write_mode_name,"LIBBURN/%d", (int) wt); } + +#ifndef Cdrskin_disable_raw96R if(strcmp(skin->preskin->write_mode_name,"RAW/RAW96R")==0) { skin->write_type= BURN_WRITE_RAW; skin->block_type= BURN_BLOCK_RAW96R; - } else if(strcmp(skin->preskin->write_mode_name,"TAO")==0) { + } else +#endif /* ! Cdrskin_disable_raw96R */ + + if(strcmp(skin->preskin->write_mode_name,"TAO")==0) { skin->write_type= BURN_WRITE_TAO; skin->block_type= BURN_BLOCK_MODE1; } else if(strncmp(skin->preskin->write_mode_name,"LIBBURN/",8)==0) { @@ -5907,9 +5935,12 @@ int Cdrskin_activate_write_mode(struct CdrskiN *skin, enum burn_disc_status s, strcpy(skin->preskin->write_mode_name,"SAO"); } } + +#ifndef Cdrskin_disable_raw96R if(strcmp(skin->preskin->write_mode_name,"RAW/RAW96R")==0) { skin->write_type= BURN_WRITE_RAW; skin->block_type= BURN_BLOCK_RAW96R; +#endif /* ! Cdrskin_disable_raw96R */ #ifdef Cdrskin_allow_libburn_taO } else if(strcmp(skin->preskin->write_mode_name,"TAO")==0) { @@ -5947,9 +5978,13 @@ check_with_drive:; ok= 1; if(skin->write_type==BURN_WRITE_TAO && might_do_tao) ok= 1; - } else if(skin->write_type==BURN_WRITE_RAW) + +#ifndef Cdrskin_disable_raw96R + } else if(skin->write_type==BURN_WRITE_RAW) { ok= !!(drive_info->raw_block_types & BURN_BLOCK_RAW96R); - else if(skin->write_type==BURN_WRITE_SAO && !mixed_mode) +#endif + + } else if(skin->write_type==BURN_WRITE_SAO && !mixed_mode) ok= !!(drive_info->sao_block_types & BURN_BLOCK_SAO); else if(skin->write_type==BURN_WRITE_TAO) { block_type_demand= 0; @@ -7057,7 +7092,7 @@ int Cdrskin_setup(struct CdrskiN *skin, int argc, char **argv, int flag) "-d", "-Verbose", "-V", "-silent", "-s", "-setdropts", "-prcap", "-reset", "-abort", "-overburn", "-ignsize", "-useinfo", "-fix", "-nofix", - "-raw", "-raw96p", "-raw16", + "-raw", "-raw96p", "-raw16", "-raw96r", "-clone", "-text", "-mode2", "-xa", "-xa1", "-xa2", "-xamix", "-cdi", "-preemp", "-nopreemp", "-copy", "-nocopy", "-scms", "-shorttrack", "-noshorttrack", "-packet", "-noclose", @@ -7733,8 +7768,10 @@ set_padsize:; } else if(strcmp(argv[i],"--prodvd_cli_compatible")==0) { skin->prodvd_cli_compatible= 1; +#ifdef NIX } else if(strcmp(argv[i],"-raw96r")==0) { /* is handled in Cdrpreskin_setup() */; +#endif } else if(strcmp(argv[i],"-sao")==0 || strcmp(argv[i],"-dao")==0) { /* is handled in Cdrpreskin_setup() */; diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 9298928..4c43784 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2009.08.27.143351" +#define Cdrskin_timestamP "2009.09.01.082602"