aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio/cdplay/Makefile2
-rw-r--r--audio/cdplay/files/patch-ab82
-rw-r--r--audio/cdplay/files/patch-ad26
-rw-r--r--audio/cdplay/files/patch-ae72
4 files changed, 162 insertions, 20 deletions
diff --git a/audio/cdplay/Makefile b/audio/cdplay/Makefile
index d16c1100b296..662f30106d34 100644
--- a/audio/cdplay/Makefile
+++ b/audio/cdplay/Makefile
@@ -7,7 +7,7 @@
PORTNAME= cdplay
PORTVERSION= 0.92
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= audio
MASTER_SITES= ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= dannyboy
diff --git a/audio/cdplay/files/patch-ab b/audio/cdplay/files/patch-ab
index 6d09ac7c56b2..11783cdcd366 100644
--- a/audio/cdplay/files/patch-ab
+++ b/audio/cdplay/files/patch-ab
@@ -1,6 +1,9 @@
---- cd.c.orig Fri Oct 24 11:38:25 1997
-+++ cd.c Sat Jun 27 00:53:10 1998
-@@ -98,8 +98,15 @@
+
+$FreeBSD$
+
+--- cd.c.orig Mon May 19 15:44:40 2003
++++ cd.c Mon May 19 15:53:44 2003
+@@ -98,8 +98,16 @@
cd_play.end_s=cdinfo.s_sec[cdinfo.l_track-1];
cd_play.end_f=cdinfo.s_frame[cdinfo.l_track-1];
@@ -15,10 +18,11 @@
+ } else
+ per();
+ }
++ cdinfo.pause=0;
}
/* Skips one track forward */
-@@ -111,7 +118,7 @@
+@@ -111,7 +119,7 @@
/* Quess */
void prev(void)
{
@@ -27,7 +31,7 @@
play_track(cdinfo.c_track-1);
else play_track(cdinfo.c_track);
}
-@@ -141,6 +148,43 @@
+@@ -141,17 +149,59 @@
}
}
@@ -69,5 +73,71 @@
+}
+
/* Huge kludge */
- void ff(void)
+-void ff(void)
++void ff(int n_times)
{
++ int secs;
+ struct ioc_play_msf cd_play;
+
+- if(cdinfo.c_seca%60+5>=60){
+- cd_play.start_s=((cdinfo.c_seca%60)+5)%60;
++ secs=4*n_times;
++
++ if (secs > 59) secs=59;
++
++ if(cdinfo.c_seca%60+secs>=60){
++ cd_play.start_s=((cdinfo.c_seca%60)+secs)%60;
+ cd_play.start_m=cdinfo.c_seca/60+1;
+ }
+ else {
+- cd_play.start_s=(cdinfo.c_seca%60)+5;
++ cd_play.start_s=(cdinfo.c_seca%60)+secs;
+ cd_play.start_m=cdinfo.c_seca/60;
+ }
+ cd_play.start_f=1;
+@@ -160,19 +210,25 @@
+ cd_play.end_f=cdinfo.s_frame[cdinfo.l_track-1];
+
+ if(ioctl(cd_fd,CDIOCPLAYMSF,(char *) &cd_play)<0) per();
++ cdinfo.pause=0;
+ }
+
+ /* Hi mom!! */
+-void rew(void)
++void rew(int n_times)
+ {
++ int secs;
+ struct ioc_play_msf cd_play;
+
+- if(cdinfo.c_seca%60-5<0){
+- cd_play.start_s=((cdinfo.c_seca%60)-5)+60;
++ secs=4*n_times;
++
++ if (secs > 59) secs=59;
++
++ if(cdinfo.c_seca%60-secs<0){
++ cd_play.start_s=((cdinfo.c_seca%60)-secs)+60;
+ cd_play.start_m=cdinfo.c_seca/60-1;
+ }
+ else {
+- cd_play.start_s=(cdinfo.c_seca%60)-5;
++ cd_play.start_s=(cdinfo.c_seca%60)-secs;
+ cd_play.start_m=cdinfo.c_seca/60;
+ }
+ cd_play.start_f=1;
+@@ -181,6 +237,7 @@
+ cd_play.end_f=cdinfo.s_frame[cdinfo.l_track-1];
+
+ if(ioctl(cd_fd,CDIOCPLAYMSF,(char *) &cd_play)<0) per();
++ cdinfo.pause=0;
+ }
+
+ /* Spit cd out */
+@@ -192,6 +249,7 @@
+ per();
+ close(cd_fd);
+ cdinfo.eject=1;
++ cdinfo.pause=1;
+ }
+
+
diff --git a/audio/cdplay/files/patch-ad b/audio/cdplay/files/patch-ad
index 0766f3acc9e9..c67e3211b1bc 100644
--- a/audio/cdplay/files/patch-ad
+++ b/audio/cdplay/files/patch-ad
@@ -1,11 +1,25 @@
-diff -ur ../cdplay-0.92.orig/cdplay.h ./cdplay.h
---- ../cdplay-0.92.orig/cdplay.h Mon Nov 17 02:21:55 1997
-+++ ./cdplay.h Sat Jun 27 00:29:34 1998
-@@ -71,6 +71,7 @@
+
+$FreeBSD$
+
+--- ./cdplay.h.orig Mon May 19 15:44:41 2003
++++ ./cdplay.h Mon May 19 15:55:12 2003
+@@ -71,8 +71,9 @@
void prev(void);
void stop(void);
void cdpause(void);
+-void ff(void);
+-void rew(void);
+void cdsoftpause(void);
- void ff(void);
- void rew(void);
++void ff(int);
++void rew(int);
void eject(void);
+
+ /* Terminal related functions */
+@@ -90,6 +91,7 @@
+ void hs_winch(void);
+ void do_exit(int);
+ void do_stop(void);
++void getcommand(char *command, int *repetivity);
+
+ /* Awesome!!1!!1! 2 sound functions */
+ void more_vol(void);
diff --git a/audio/cdplay/files/patch-ae b/audio/cdplay/files/patch-ae
index 0c7c50aec1e0..d204d5834052 100644
--- a/audio/cdplay/files/patch-ae
+++ b/audio/cdplay/files/patch-ae
@@ -1,7 +1,14 @@
-diff -ur ../cdplay-0.92.orig/main.c ./main.c
---- ../cdplay-0.92.orig/main.c Mon Nov 17 04:26:26 1997
-+++ ./main.c Sat Jun 27 00:29:34 1998
-@@ -39,7 +39,9 @@
+
+$FreeBSD$
+
+--- ./main.c.orig Mon May 19 15:44:41 2003
++++ ./main.c Mon May 19 15:55:24 2003
+@@ -35,11 +35,14 @@
+ int main(int argc, char **argv)
+ {
+ char cmd[1];
++ int repetivity;
+ fd_set rset;
struct timeval stime;
/* Parse arguments */
@@ -12,11 +19,25 @@ diff -ur ../cdplay-0.92.orig/main.c ./main.c
if(argc>1 && !strcmp(argv[1],"-d"))
cd_device=argv[2];
else if(argc>1)
-@@ -77,10 +79,11 @@
- else if(cmd[0]=='r'){message="rew";rew();}
+@@ -68,19 +71,20 @@
+
+ while(1){
+ if(select(1,&rset,(fd_set *) 0,(fd_set *) 0,&stime)>0) {
+- read(STDIN_FILENO,cmd,FD_SETSIZE);
+-
++ getcommand(&cmd[0], &repetivity);
++
+ if(cmd[0]=='p'){message="play";play_track(1);}
+ else if(cmd[0]=='F'){message="next";next();}
+ else if(cmd[0]=='R'){message="prev";prev();}
+- else if(cmd[0]=='f'){message="ff";ff();}
+- else if(cmd[0]=='r'){message="rew";rew();}
++ else if(cmd[0]=='f'){message="ff";ff(repetivity);}
++ else if(cmd[0]=='r'){message="rew";rew(repetivity);}
else if(cmd[0]=='s'){message="stop";stop();}
- else if(cmd[0]=='e'){message="eject";eject();}
+- else if(cmd[0]=='e'){message="eject";eject();}
- else if(cmd[0]==' ') cdpause();
++ else if(cmd[0]=='E'){message="eject";eject();}
+ else if(cmd[0]==' ') cdsoftpause();
else if(cmd[0]=='+'){message="more vol";more_vol();}
else if(cmd[0]=='-'){message="less vol";less_vol();}
@@ -25,3 +46,40 @@ diff -ur ../cdplay-0.92.orig/main.c ./main.c
}
update_cdinfo();
move_up(5);
+@@ -90,6 +94,36 @@
+ }
+
+ exit(0);
++}
++
++void getcommand(char *command, int *repetivity)
++{
++ static char stored_command;
++ int n;
++
++ fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);
++
++ if (stored_command) {
++ *command=stored_command;
++ } else {
++ n=read(STDIN_FILENO,command,1);
++ if (n <= 0) {
++ *command='\0';
++ *repetivity=0;
++ return;
++ }
++ }
++
++ *repetivity=1;
++ while (read(STDIN_FILENO, &stored_command, 1) > 0) {
++ if (stored_command == *command) {
++ (*repetivity)++;
++ } else {
++ return;
++ }
++ }
++ stored_command='\0';
++ return;
+ }
+
+ void hs_cont(void)