pkgsrc/audio/cdparanoia/patches/patch-ae
itohy 079c698258 Upgrade to cdparanoia III 9.8.
Install headers in separate directory.

Related changes:

  - Patch for Kenwood TruX drives (they worked before, but were very slow)

  - Slightly different default read command to alleviate end-of-track
    read problems on a number of drives

  - New -z command syntax; option argument to allow a skip after a
    user-configurable number of tries

  - Added more possible read commands to autoprobe

  - Removed autoprobe limitation, so starting a new rip will not
    potentially stall in autoprobe until previous rip finishes

  - Patch to allow sample-granulairy offset

  - allow NULL callbacks to be passed to library interface
2002-03-04 14:45:12 +00:00

149 lines
5 KiB
Text

$NetBSD: patch-ae,v 1.4 2002/03/04 14:45:13 itohy Exp $
--- main.c.orig Mon Mar 26 12:44:50 2001
+++ main.c Mon Mar 4 23:05:48 2002
@@ -49,12 +49,18 @@
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
+#ifdef GETOPT_LONG
#include <getopt.h>
+#endif
#include <errno.h>
#include <math.h>
#include <sys/time.h>
#include <sys/stat.h>
+#ifdef HAVE_GETRAWPARTITION
+#include <util.h>
+#endif
+
#include "interface/cdda_interface.h"
#include "paranoia/cdda_paranoia.h"
#include "utils.h"
@@ -231,6 +237,7 @@
" cdparanoia [options] <span> [outfile]\n\n"
"OPTIONS:\n"
+#ifdef GETOPT_LONG
" -v --verbose : extra verbose operation\n"
" -q --quiet : quiet operation\n"
" -e --stderr-progress : force output of progress information to\n"
@@ -276,6 +283,50 @@
" -Z --disable-paranoia : disable all paranoia checking\n"
" -Y --disable-extra-paranoia : only do cdda2wav-style overlap checking\n"
" -X --abort-on-skip : abort on imperfect reads/skips\n\n"
+#else
+" -v : extra verbose operation\n"
+" -q : quiet operation\n"
+" -e : force output of progress information to\n"
+" stderr (for wrapper scripts)\n"
+" -V : print version info and quit\n"
+" -Q : autosense drive, query disc and quit\n"
+" -B : 'batch' mode (saves each track to a seperate file.\n"
+" -s : do an exhaustive search for drive\n"
+" -h : print help\n\n"
+
+" -p : output raw 16 bit PCM in host byte order\n"
+" -r : output raw 16 bit little-endian PCM\n"
+" -R : output raw 16 bit big-endian PCM\n"
+" -w : output as WAV file (default)\n"
+" -f : output as AIFF file\n"
+" -a : output as AIFF-C file\n"
+" -i <file> : output human readable ripping info to file\n\n"
+
+" -c : force treating drive as little endian\n"
+" -C : force treating drive as big endian\n"
+" -n <n> : force default number of sectors in read to n sectors\n"
+" -o <n> : force minimum overlap search during\n"
+" verification to n sectors\n"
+" -d <dev> : use specified device; disallow autosense\n"
+" -g <dev> : use specified generic scsi device\n"
+" -S <n> : read from device at specified speed\n"
+" -t <n> : Add <n> sectors to the values reported\n"
+" when addressing tracks. May be negative\n"
+" -T : Assume that the beginning offset of\n"
+" track 1 as reported in the TOC will be\n"
+" addressed as LBA 0. Necessary for some\n"
+" Toshiba drives to get track boundaries\n"
+" correct\n"
+" -O <n> : Add <n> samples to the offset when\n"
+" reading data. May be negative.\n"
+" -z[=n] : never accept any less than perfect\n"
+" data reconstruction (don't allow 'V's)\n"
+" but if [n] is given, skip after [n]\n"
+" retries without progress.\n"
+" -Z : disable all paranoia checking\n"
+" -Y : only do cdda2wav-style overlap checking\n"
+" -X : abort on imperfect reads/skips\n\n"
+#endif
"OUTPUT SMILIES:\n"
" :-) Normal operation, low/no jitter\n"
@@ -376,7 +427,7 @@
int graph=30;
char buffer[256];
static long c_sector=0,v_sector=0;
- static char dispcache[30]=" ";
+ static char dispcache[30 + 1]=" ";
static int last=0;
static long lasttime=0;
long sector,osector=0;
@@ -587,6 +638,7 @@
const char *optstring = "escCn:o:O:d:g:S:prRwafvqVQhZz::YXWBi:Tt:";
+#ifdef GETOPT_LONG
struct option options [] = {
{"stderr-progress",no_argument,NULL,'e'},
{"search-for-drive",no_argument,NULL,'s'},
@@ -621,6 +673,7 @@
{NULL,0,NULL,0}
};
+#endif
long blocking_write(int outf, char *buffer, long num){
long words=0,temp;
@@ -673,7 +726,12 @@
atexit(cleanup);
- while((c=getopt_long(argc,argv,optstring,options,&long_option_index))!=EOF){
+#ifdef GETOPT_LONG
+ while((c=getopt_long(argc,argv,optstring,options,&long_option_index))!=EOF)
+#else
+ while((c=getopt(argc,argv,optstring))!=EOF)
+#endif
+ {
switch(c){
case 'B':
batch=1;
@@ -810,6 +868,27 @@
report(VERSION);
/* Query the cdrom/disc; we may need to override some settings */
+
+#ifndef __linux__ /* XXX */
+#ifdef __NetBSD__
+ if (!force_generic_device) {
+ int raw;
+ static char devstring[16];
+#ifdef HAVE_GETRAWPARTITION
+ raw = getrawpartition();
+#else
+ raw = 'c' - 'a';
+#endif
+ snprintf(devstring, sizeof(devstring) - 1, "/dev/rcd0%c", raw + 'a');
+ force_generic_device=devstring;
+ }
+#else
+ if (!force_generic_device)
+ errx(1, "-g option is currently required by the NetBSD pkg version");
+#endif
+ if (!force_cdrom_device)
+ force_cdrom_device=copystring(force_generic_device);
+#endif
if(force_generic_device)
d=cdda_identify_scsi(force_generic_device,force_cdrom_device,verbose,NULL);