summaryrefslogtreecommitdiff
path: root/audio/cdplay/files/patch-cd.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/cdplay/files/patch-cd.c')
-rw-r--r--audio/cdplay/files/patch-cd.c140
1 files changed, 0 insertions, 140 deletions
diff --git a/audio/cdplay/files/patch-cd.c b/audio/cdplay/files/patch-cd.c
deleted file mode 100644
index 18fb70325166..000000000000
--- a/audio/cdplay/files/patch-cd.c
+++ /dev/null
@@ -1,140 +0,0 @@
---- cd.c.orig 1997-10-24 15:38:25 UTC
-+++ cd.c
-@@ -98,8 +98,16 @@ void play_track(int track)
- cd_play.end_s=cdinfo.s_sec[cdinfo.l_track-1];
- cd_play.end_f=cdinfo.s_frame[cdinfo.l_track-1];
-
-- if(ioctl (cd_fd, CDIOCPLAYMSF, (char *) &cd_play)<0)
-- per();
-+ if(ioctl (cd_fd, CDIOCPLAYMSF, (char *) &cd_play)<0) {
-+ /* Hack for IDE CD-ROMs */
-+ if (cd_play.start_s < 2) {
-+ cd_play.start_s=2;
-+ if(ioctl (cd_fd, CDIOCPLAYMSF, (char *) &cd_play)<0)
-+ per();
-+ } else
-+ per();
-+ }
-+ cdinfo.pause=0;
- }
-
- /* Skips one track forward */
-@@ -111,7 +119,7 @@ void next(void)
- /* Quess */
- void prev(void)
- {
-- if(cdinfo.c_sec<1)
-+ if(cdinfo.c_sec<4)
- play_track(cdinfo.c_track-1);
- else play_track(cdinfo.c_track);
- }
-@@ -141,17 +149,59 @@ void cdpause(void)
- }
- }
-
-+/* Softly pauses the cd, or unpauses, as appropriate */
-+void cdsoftpause(void)
-+{
-+ struct ioc_vol real_vol, cur_vol;
-+ int i;
-+
-+ if(ioctl(cd_fd,CDIOCGETVOL,(char *) &real_vol)) per();
-+ cur_vol = real_vol;
-+
-+ if(cdinfo.pause){
-+ message="continue";
-+ memset (cur_vol.vol, 0, sizeof(cur_vol.vol));
-+ if(ioctl(cd_fd,CDIOCSETVOL,(char *) &cur_vol)) per();
-+ if(ioctl(cd_fd,CDIOCRESUME)<0) per(); else cdinfo.pause=0;
-+ for (i=0; i<20; usleep(21), i++) {
-+ cur_vol.vol[0] += (real_vol.vol[0] / 20);
-+ cur_vol.vol[1] += (real_vol.vol[1] / 20);
-+ cur_vol.vol[2] += (real_vol.vol[2] / 20);
-+ cur_vol.vol[3] += (real_vol.vol[3] / 20);
-+ if(ioctl(cd_fd,CDIOCSETVOL,(char *) &cur_vol)) per();
-+ }
-+ if(ioctl(cd_fd,CDIOCSETVOL,(char *) &real_vol)) per();
-+ }
-+ else {
-+ message="pause";
-+ for (i=0; i<20; usleep(21), i++) {
-+ cur_vol.vol[0] -= (real_vol.vol[0] / 20);
-+ cur_vol.vol[1] -= (real_vol.vol[1] / 20);
-+ cur_vol.vol[2] -= (real_vol.vol[2] / 20);
-+ cur_vol.vol[3] -= (real_vol.vol[3] / 20);
-+ if(ioctl(cd_fd,CDIOCSETVOL,(char *) &cur_vol)) per();
-+ }
-+ if(ioctl (cd_fd, CDIOCPAUSE)<0) per(); else cdinfo.pause=1;
-+ if(ioctl (cd_fd, CDIOCSETVOL,(char *) &real_vol)) per();
-+ }
-+}
-+
- /* Huge kludge */
--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 @@ void ff(void)
- 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 @@ void rew(void)
- 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 @@ void eject(void)
- per();
- close(cd_fd);
- cdinfo.eject=1;
-+ cdinfo.pause=1;
- }
-
-