$OpenBSD: patch-src_input_input_cdda_c,v 1.7 2009/02/02 22:00:42 sthen Exp $
--- src/input/input_cdda.c.orig	Sun Jan  4 10:47:28 2009
+++ src/input/input_cdda.c	Thu Jan  8 01:02:34 2009
@@ -72,7 +72,7 @@
 #elif defined(WIN32)
 #define DEFAULT_CDDA_DEVICE "d:\\"
 #else
-#define	DEFAULT_CDDA_DEVICE	"/dev/cdrom"
+#define	DEFAULT_CDDA_DEVICE	"/dev/rcd0c"
 #endif
 
 #define CDDB_SERVER             "freedb.freedb.org"
@@ -611,7 +611,7 @@ static int read_cdrom_frames(cdda_input_plugin_t *this
   return 0;
 }
 
-#elif defined(__FreeBSD_kernel__) || defined(__NetBSD__)
+#elif defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__)
 
 #include <sys/cdio.h>
 
@@ -624,7 +624,7 @@ static int read_cdrom_toc(int fd, cdrom_toc *toc) {
   struct ioc_toc_header tochdr;
 #if defined(__FreeBSD_kernel__)
   struct ioc_read_toc_single_entry tocentry;
-#elif defined(__NetBSD__)
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
   struct ioc_read_toc_entry tocentry;
   struct cd_toc_entry data;
 #endif
@@ -659,7 +659,7 @@ static int read_cdrom_toc(int fd, cdrom_toc *toc) {
       perror("CDIOREADTOCENTRY");
       return -1;
     }
-#elif defined(__NetBSD__)
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
     memset(&data, 0, sizeof(data));
     tocentry.data_len = sizeof(data);
     tocentry.data = &data;
@@ -680,7 +680,7 @@ static int read_cdrom_toc(int fd, cdrom_toc *toc) {
       (tocentry.entry.addr.msf.minute * CD_SECONDS_PER_MINUTE * CD_FRAMES_PER_SECOND) +
       (tocentry.entry.addr.msf.second * CD_FRAMES_PER_SECOND) +
        tocentry.entry.addr.msf.frame;
-#elif defined(__NetBSD__)
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
     toc->toc_entries[i-1].track_mode = (tocentry.data->control & 0x04) ? 1 : 0;
     toc->toc_entries[i-1].first_frame_minute = tocentry.data->addr.msf.minute;
     toc->toc_entries[i-1].first_frame_second = tocentry.data->addr.msf.second;
@@ -702,7 +702,7 @@ static int read_cdrom_toc(int fd, cdrom_toc *toc) {
     perror("CDIOREADTOCENTRY");
     return -1;
   }
-#elif defined(__NetBSD__)
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
   memset(&data, 0, sizeof(data));
   tocentry.data_len = sizeof(data);
   tocentry.data = &data;
@@ -723,7 +723,7 @@ static int read_cdrom_toc(int fd, cdrom_toc *toc) {
     (tocentry.entry.addr.msf.minute * CD_SECONDS_PER_MINUTE * CD_FRAMES_PER_SECOND) +
     (tocentry.entry.addr.msf.second * CD_FRAMES_PER_SECOND) +
      tocentry.entry.addr.msf.frame;
-#elif defined(__NetBSD__)
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
   toc->leadout_track.track_mode = (tocentry.data->control & 0x04) ? 1 : 0;
   toc->leadout_track.first_frame_minute = tocentry.data->addr.msf.minute;
   toc->leadout_track.first_frame_second = tocentry.data->addr.msf.second;
@@ -761,7 +761,7 @@ static int read_cdrom_frames(cdda_input_plugin_t *this
       perror("CDIOCREADAUDIO");
       return -1;
     }
-#elif defined(__NetBSD__)
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
     scsireq_t req;
     int nblocks = 1;
 
