2008/02/20 (水) 00:25:34 ◆ ▼ ◇ [qwerty]--- /usr/ports/audio/dagrab/work/dagrab-0.3.5/dagrab.c Sun Sep 30 04:29:35 2001
+++ dagrab.c Sun Sep 30 04:20:42 2001
@@ -106,7 +106,7 @@
#include <sys/cdio.h>
#include <sys/param.h>
#include <sys/mount.h>
-#define CDDEVICE "/dev/cdrom"
+#define CDDEVICE "/dev/acd0c"
#define N_BUF 12
#define OVERLAP 2
#define KEYLEN 12
@@ -186,6 +186,7 @@
static int opt_spchk=0;
static unsigned opt_srate = 44100; // still unused
static int opt_mono=0;
+static int opt_minus=0;
static int retries=0;
static int opt_cddb=0;
@@ -946,7 +947,8 @@
"\t-N\t\t: use cddb name, changes behavior of -f's parameter\n"
"\t-H host\t\t: cddbp server, default %s\n"
"\t-P port\t\t: cddbp port number default %d\n"
- "\t-D dir\t\t: base of local cddb database\n",
+ "\t-D dir\t\t: base of local cddb database\n"
+ "\t-M\t\t: minus-track\n" ,
PROGNAME,VERSION,CDDEVICE,OVERLAP,N_BUF,KEYLEN,
RETRYS,OFS,D_MODE,CDDB_HOST,CDDB_PORT);
printf("\n\tVariables: (use lowcase values for removing slashes)\n");
@@ -970,7 +972,7 @@
char path[500];
FILE *f;
progname=av[0];
- while((c=getopt(ac,av,"pshaivCSNd:f:n:o:k:r:t:m:e:H:P:D:"))!=-1){
+ while((c=getopt(ac,av,"MpshaivCSNd:f:n:o:k:r:t:m:e:H:P:D:"))!=-1){
switch(c){
case 'h':usage();break;
case 'd':CPARG(cd_dev);break;
@@ -993,6 +995,7 @@
case 'P':opt_cddb_port=atoi(optarg);break;
case 'H':opt_cddb_host=strdup(optarg);break;
case 'p':opt_mono=1;break;
+ case 'M':opt_minus=1;break;
}
}
if (basename[0]==0){
@@ -1050,7 +1053,7 @@
opt_bufsize=CD_FRAMESIZE_RAW * opt_blocks;
opt_ibufsize=opt_bufsize/sizeof(int);
opt_bufstep=opt_blocks-opt_overlap;
- if((optind==ac)&&!all_tracks&&!opt_save) {
+ if((optind==ac)&&!all_tracks&&!opt_save&&!opt_minus) {
if(disp_TOC){
if(cd_getinfo(cd_dev,&tl))
exit(1);
@@ -1088,7 +1091,14 @@
cd_read_track(basename,i,&tl,filter);
}
}
- else
+ else if(opt_minus)
+ {
+ printf("Reading Minus track\n");
+ tl.starts[1]=tl.starts[0];
+ tl.starts[0]=0;
+ cd_read_track(basename,1,&tl,filter);
+ }
+ else
{
for(i=optind;i<ac;i++)
{