1 --- xine-lib-1-rc3a/src/audio_out/audio_oss_out.c.orig 2003-12-14 23:13:22.000000000 +0100
2 +++ xine-lib-1-rc3a/src/audio_out/audio_oss_out.c 2003-12-31 02:07:58.260704624 +0100
4 # include <sys/soundcard.h>
7 -# if defined(__linux__)
8 -# include <linux/config.h> /* Check for DEVFS */
10 # include <sys/soundcard.h>
11 +# include <sys/stat.h>
13 #include <sys/ioctl.h>
16 #define OSS_SYNC_SOFTSYNC 3
17 #define OSS_SYNC_PROBEBUFFER 4
19 -#ifdef CONFIG_DEVFS_FS
20 -#define DSP_TEMPLATE "/dev/sound/dsp%d"
22 -#define DSP_TEMPLATE "/dev/dsp%d"
24 +#define DSP_TEMPLATE_DEVFS "/dev/sound/dsp%d"
25 +#define DSP_TEMPLATE_DEV "/dev/dsp%d"
27 typedef struct oss_driver_s {
30 config_values_t *config = class->config;
33 -#ifdef CONFIG_DEVFS_FS
34 char devname[] = "/dev/sound/dsp\0\0\0";
36 - char devname[] = "/dev/dsp\0\0\0";
42 int num_channels, bits, status, arg;
43 static char *sync_methods[] = {"auto", "getodelay", "getoptr", "softsync", "probebuffer", NULL};
44 + struct stat statbuf;
47 this = (oss_driver_t *) xine_xmalloc (sizeof (oss_driver_t));
50 _("/dev/dsp# device to use for oss output, -1 => auto_detect"),
51 NULL, 10, NULL, NULL);
53 + if (!stat("/dev/sound", &statbuf) && (statbuf.st_mode & S_IFDIR))
57 - sprintf (this->audio_dev, DSP_TEMPLATE, devnum);
58 + sprintf (this->audio_dev, (havedevfs ? DSP_TEMPLATE_DEVFS : DSP_TEMPLATE_DEV), devnum);
59 devnum = 30; /* skip while loop */
63 this->audio_dev, strerror(errno));
66 - sprintf(devname, DSP_TEMPLATE, devnum);
67 + sprintf(devname, (havedevfs ? DSP_TEMPLATE_DEVFS : DSP_TEMPLATE_DEV), devnum);