diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2003-11-20 22:31:21 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2003-11-20 22:31:21 +0000 |
commit | 5998c8ec9b49be1115459c7a0e1ce7b4f3e42783 (patch) | |
tree | 1eaffcb97ae75ec6eebdea24e3fa645387d49ab2 /audio/xmms-cdread/files/patch-cdrombsd.h | |
parent | - Update to version 0.1.4 (diff) |
- Adapt for ATAng (unbreak on -CURRENT).
PR: ports/59514
Submitted by: Sergey V. Belov <argail@visit.ru> (maintainer)
Approved by: adamw (mentor)
Notes
Notes:
svn path=/head/; revision=94556
Diffstat (limited to 'audio/xmms-cdread/files/patch-cdrombsd.h')
-rw-r--r-- | audio/xmms-cdread/files/patch-cdrombsd.h | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/audio/xmms-cdread/files/patch-cdrombsd.h b/audio/xmms-cdread/files/patch-cdrombsd.h index 9fda4b4b7f6f..08d230a14279 100644 --- a/audio/xmms-cdread/files/patch-cdrombsd.h +++ b/audio/xmms-cdread/files/patch-cdrombsd.h @@ -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 |