freebsd-ports/multimedia/gstreamer-plugins/files/patch-sys_cdrom_gstcdplayer-ioctl-bsd.h
Joe Marcus Clarke c4851e78e4 Presenting GNOME 2.6.0. The FreeBSD GNOME Team feels this our best release
ever.  It fixes many bugs, and adds some features missing in previous
FreeBSD ports.  To help users upgrade from GNOME 2.4, we have constructed an
upgrade FAQ at:

http://www.freebsd.org/gnome/docs/faq26.html

Please read it carefully.  GNOME 2.6 packages are also available for all
supported i386 versions of FreeBSD at:

http://www.marcuscom.com/tinderbox/

The FreeBSD GNOME Team would like the thank the following users for their
wonderful testing and patching efforts.  We would especially like to thank
Franz Klammer <klammer@webonaut.com> for his wonderful new splash screen.
Without these people, our team, and our team alumni, GNOME on FreeBSD would
not be possible.

Jeremy Messenger <mezz7@cox.net>
Khairil Yusof <kaeru@pd.jaring.my>
Koop Mast <kwm@rainbow-runner.nl>
Simon Barner <barner@in.tum.de>
Tom McLaughlin <tmclaugh@sdf.lonestar.org>
Scott Dodson <sdodson@sdodson.com>
Vladimir Grebenschikov <vova@sw.ru>
2004-04-05 03:11:39 +00:00

72 lines
2.1 KiB
C

--- sys/cdrom/gstcdplayer_ioctl_bsd.h.orig Mon Mar 1 06:52:03 2004
+++ sys/cdrom/gstcdplayer_ioctl_bsd.h Tue Mar 9 16:05:36 2004
@@ -142,6 +142,7 @@
{
struct ioc_toc_header toc_header;
struct ioc_read_toc_entry toc_entry;
+ struct cd_toc_entry toc_entry_data;
guint i;
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
@@ -151,7 +152,7 @@
}
/* get the toc header information */
- if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
+ if (ioctl(cd->fd,CDIOREADTOCHEADER,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
@@ -161,6 +162,8 @@
for (i = 1; i <= toc_header.ending_track; i++) {
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = i;
+ toc_entry.data = &toc_entry_data;
+ toc_entry.data_len = sizeof(toc_entry_data);
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
@@ -168,9 +171,9 @@
return FALSE;
}
- cd->tracks[i].minute = toc_entry.entry.addr.msf.minute;
- cd->tracks[i].second = toc_entry.entry.addr.msf.second;
- cd->tracks[i].frame = toc_entry.entry.addr.msf.frame;
+ cd->tracks[i].minute = toc_entry.data->addr.msf.minute;
+ cd->tracks[i].second = toc_entry.data->addr.msf.second;
+ cd->tracks[i].frame = toc_entry.data->addr.msf.frame;
cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
}
@@ -186,9 +189,9 @@
return FALSE;
}
- cd->tracks[LEADOUT].minute = toc_entry.entry.addr.msf.minute;
- cd->tracks[LEADOUT].second = toc_entry.entry.addr.msf.second;
- cd->tracks[LEADOUT].frame = toc_entry.entry.addr.msf.frame;
+ cd->tracks[LEADOUT].minute = toc_entry.data->addr.msf.minute;
+ cd->tracks[LEADOUT].second = toc_entry.data->addr.msf.second;
+ cd->tracks[LEADOUT].frame = toc_entry.data->addr.msf.frame;
cd->num_tracks = toc_header.ending_track;
@@ -224,6 +227,8 @@
return FALSE;
}
+ /* lets return TRUE and lets see what happes (may not be correct)*/
+ return TRUE;
}
gboolean cd_pause(struct cd *cd)
@@ -321,7 +326,7 @@
return -1;
}
-#ifdef __NetBSD__
+#if defined(__NetBSD__) || defined(__FreeBSD__)
return sub_channel.data->what.track_info.track_number;
#else
return sub_channel.data->track_number;