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 |