View | Details | Raw Unified | Return to bug 59514
Collapse All | Expand All

(-)xmms-cdread/files/patch-cdrombsd.h (-5 / +39 lines)
Lines 1-6 Link Here
1
--- cdrombsd.h.orig	Sat Aug 18 19:09:10 2001
1
--- cdrombsd.h.orig	Sat Aug 18 15:09:10 2001
2
+++ cdrombsd.h	Sun Mar 23 16:35:33 2003
2
+++ cdrombsd.h	Thu Nov 20 19:24:05 2003
3
@@ -9,12 +9,9 @@
3
@@ -5,15 +5,19 @@
4
 #ifndef CDROMBSD_H
5
 #define CDROMBSD_H
6
 #include <sys/param.h>
7
+#if __FreeBSD_version >= 501106
8
+#include <sys/cdrio.h>
9
+#ifndef CD_FRAMESIZE_RAW
10
+#define CD_FRAMESIZE_RAW 2352
11
+#endif
12
+#endif
13
 /*\
4
 |*| FreeBSD (?) specific code
14
 |*| FreeBSD (?) specific code
5
 \*/
15
 \*/
6
 
16
 
Lines 9-18 Link Here
9
-					((entry.addr.msf.minute * 60 + \
19
-					((entry.addr.msf.minute * 60 + \
10
-					entry.addr.msf.second) * 75 + \
20
-					entry.addr.msf.second) * 75 + \
11
-					entry.addr.msf.frame))
21
-					entry.addr.msf.frame))
12
-
13
+#define GET_LBA(entry) ((entry.addr.msf.minute * 60 \
22
+#define GET_LBA(entry) ((entry.addr.msf.minute * 60 \
14
+			+ entry.addr.msf.second) * 75 \
23
+			+ entry.addr.msf.second) * 75 \
15
+			+ entry.addr.msf.frame)
24
+			+ entry.addr.msf.frame)
16
 
25
 
26
 
17
 /*\
27
 /*\
18
 |*| Open cdrom device
28
@@ -84,6 +88,16 @@
29
 |*|  from device cdfd, at position lba
30
 |*|  Return number of successfully read frames, -1 on error.
31
 \*/
32
+#if __FreeBSD_version >= 501106
33
+static int
34
+cdrom_read_audio(int cdfd, int lba, char *buf, int btw)
35
+{
36
+	int bsize = CD_FRAMESIZE_RAW;
37
+	if (ioctl(cdfd, CDRIOCSETBLOCKSIZE, &bsize) == -1) return -errno;
38
+	if (pread(cdfd, buf, btw*bsize, (lba - 150)*bsize) != btw*bsize) return 0;
39
+	return btw; 
40
+}
41
+#else // 4-STABLE
42
 static int
43
 cdrom_read_audio(int cdfd, int lba, char *buf, int btw)
44
 {
45
@@ -101,6 +115,7 @@
46
 	} while (--rtr >= 0);
47
 	return -1;
48
 }
49
+#endif // FreeBSD_version
50
 
51
 /*\ Play audio from lba address from, to lba address to
52
 |*|  return -1 on failure

Return to bug 59514