Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Nov 2003 20:00:11 +0400 (SAMT)
From:      "Sergey V. Belov" <argail@visit.ru>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        argail@visit.ru
Subject:   ports/59514: audio/xmms-cdread fix to work under -CURRENT too
Message-ID:  <200311201600.hAKG0BtJ000821@dexter.csite.ru>
Resent-Message-ID: <200311201610.hAKGAIRf077741@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         59514
>Category:       ports
>Synopsis:       audio/xmms-cdread fix to work under -CURRENT too
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 20 08:10:17 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Sergey V. Belov
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
Sergey V. Belov 
>Environment:
System: FreeBSD dexter 5.1-CURRENT FreeBSD 5.1-CURRENT #4: Sat Nov 15 22:02:17 SAMT 2003 root@dexter:/usr/obj/usr/src/sys/DEXTER3 i386


	
>Description:
	Under FreeBSD-CURRENT, audio/xmms-cdread port would
        not work because of CDIOCREADAUDIO ioctl removal from 
        ATA/ATAPI driver.
	
>How-To-Repeat:
	audio/xmms-cdread ports is not building under -CURRENT
	
>Fix:

	

--- xmms-cdread.diff begins here ---
diff -ruN xmms-cdread.bak/files/patch-cdrombsd.h xmms-cdread/files/patch-cdrombsd.h
--- xmms-cdread.bak/files/patch-cdrombsd.h	Sun Mar 23 11:51:47 2003
+++ xmms-cdread/files/patch-cdrombsd.h	Thu Nov 20 19:25:03 2003
@@ -1,6 +1,16 @@
---- cdrombsd.h.orig	Sat Aug 18 19:09:10 2001
-+++ cdrombsd.h	Sun Mar 23 16:35:33 2003
-@@ -9,12 +9,9 @@
+--- cdrombsd.h.orig	Sat Aug 18 15:09:10 2001
++++ cdrombsd.h	Thu Nov 20 19:24:05 2003
+@@ -5,15 +5,19 @@
+ #ifndef CDROMBSD_H
+ #define CDROMBSD_H
+ #include <sys/param.h>
++#if __FreeBSD_version >= 501106
++#include <sys/cdrio.h>
++#ifndef CD_FRAMESIZE_RAW
++#define CD_FRAMESIZE_RAW 2352
++#endif
++#endif
+ /*\
  |*| FreeBSD (?) specific code
  \*/
  
@@ -9,10 +19,34 @@
 -					((entry.addr.msf.minute * 60 + \
 -					entry.addr.msf.second) * 75 + \
 -					entry.addr.msf.frame))
--
 +#define GET_LBA(entry) ((entry.addr.msf.minute * 60 \
 +			+ entry.addr.msf.second) * 75 \
 +			+ entry.addr.msf.frame)
  
+ 
  /*\
- |*| Open cdrom device
+@@ -84,6 +88,16 @@
+ |*|  from device cdfd, at position lba
+ |*|  Return number of successfully read frames, -1 on error.
+ \*/
++#if __FreeBSD_version >= 501106
++static int
++cdrom_read_audio(int cdfd, int lba, char *buf, int btw)
++{
++	int bsize = CD_FRAMESIZE_RAW;
++	if (ioctl(cdfd, CDRIOCSETBLOCKSIZE, &bsize) == -1) return -errno;
++	if (pread(cdfd, buf, btw*bsize, (lba - 150)*bsize) != btw*bsize) return 0;
++	return btw; 
++}
++#else // 4-STABLE
+ static int
+ cdrom_read_audio(int cdfd, int lba, char *buf, int btw)
+ {
+@@ -101,6 +115,7 @@
+ 	} while (--rtr >= 0);
+ 	return -1;
+ }
++#endif // FreeBSD_version
+ 
+ /*\ Play audio from lba address from, to lba address to
+ |*|  return -1 on failure
--- xmms-cdread.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200311201600.hAKG0BtJ000821>