summaryrefslogtreecommitdiff
path: root/src/input/input_dvd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/input_dvd.c')
-rw-r--r--src/input/input_dvd.c41
1 files changed, 22 insertions, 19 deletions
diff --git a/src/input/input_dvd.c b/src/input/input_dvd.c
index b3aa850a8..bbd302ca4 100644
--- a/src/input/input_dvd.c
+++ b/src/input/input_dvd.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: input_dvd.c,v 1.13 2001/07/10 21:07:55 f1rmb Exp $
+ * $Id: input_dvd.c,v 1.14 2001/07/16 19:36:00 mshopf Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -27,15 +27,6 @@
#include <dlfcn.h>
#include <stdio.h>
#include <fcntl.h>
-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) \
- || defined(__sun)
-# include <sys/cdio.h>
-#elif defined(__linux__)
-#include <linux/config.h> /* Check for DEVFS */
-# include <linux/cdrom.h>
-#else
-# error "Need the DVD ioctls"
-#endif
#include <sys/ioctl.h>
#include <errno.h>
#include <unistd.h>
@@ -43,6 +34,17 @@
#include <string.h>
#include <inttypes.h>
+#ifdef HAVE_SYS_CDIO_H
+# include <sys/cdio.h>
+#endif
+#ifdef HAVE_LINUX_CDROM_H
+# include <linux/config.h> /* Check for DEVFS */
+# include <linux/cdrom.h>
+#endif
+#if ! defined (HAVE_LINUX_CDROM_H) && ! defined (HAVE_SYS_CDIO)
+#error "you need to add cdrom / VCD support for your platform to input_vcd and configure.in"
+#endif
+
#include "xine_internal.h"
#include "monitor.h"
#include "input_plugin.h"
@@ -348,7 +350,7 @@ static int dvd_plugin_eject_media (input_plugin_t *this_gen) {
if((fd = open(DVD, O_RDONLY|O_NONBLOCK)) > -1) {
-#if defined (__linux__)
+#if defined (HAVE_LINUX_CDROM_H)
if((status = ioctl(fd, CDROM_DRIVE_STATUS, CDSL_CURRENT)) > 0) {
switch(status) {
case CDS_TRAY_OPEN:
@@ -371,8 +373,15 @@ static int dvd_plugin_eject_media (input_plugin_t *this_gen) {
return 0;
}
-#elif defined (__NetBSD__) || defined (__OpenBSD__) || defined (__FreeBSD__)
+#elif defined (HAVE_CDIO_H)
+# if defined (__sun)
+ status = 0;
+ if ((ret = ioctl(fd, CDROMEJECT)) != 0) {
+ xprintf(VERBOSE|INPUT, "CDROMEJECT failed: %s\n", strerror(errno));
+ }
+
+# else
if (ioctl(fd, CDIOCALLOW) == -1) {
perror("ioctl(cdromallow)");
} else {
@@ -380,13 +389,7 @@ static int dvd_plugin_eject_media (input_plugin_t *this_gen) {
perror("ioctl(cdromeject)");
}
}
-
-#elif defined(__sun)
-
- status = 0;
- if ((ret = ioctl(fd, CDROMEJECT)) != 0) {
- xprintf(VERBOSE|INPUT, "CDROMEJECT failed: %s\n", strerror(errno));
- }
+# endif
#endif