diff options
Diffstat (limited to 'multimedia/xmms/files/patch-Output_OSS_mixer.c')
-rw-r--r-- | multimedia/xmms/files/patch-Output_OSS_mixer.c | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/multimedia/xmms/files/patch-Output_OSS_mixer.c b/multimedia/xmms/files/patch-Output_OSS_mixer.c deleted file mode 100644 index 39caaa7d8772..000000000000 --- a/multimedia/xmms/files/patch-Output_OSS_mixer.c +++ /dev/null @@ -1,91 +0,0 @@ ---- Output/OSS/mixer.c.orig 2001-06-16 13:30:35 UTC -+++ Output/OSS/mixer.c -@@ -34,12 +34,20 @@ static char* get_mixer_device(void) - - void oss_get_volume(int *l, int *r) - { -- int fd, v, cmd, devs; -+ int fd, v, devs, dspfd; -+ long cmd; - gchar *devname; - -- devname = get_mixer_device(); -- fd = open(devname, O_RDONLY); -- g_free(devname); -+ dspfd = oss_get_fd(); -+ if (oss_cfg.use_master == 0 && dspfd != -1) { -+ fd = dspfd; -+ dspfd = 1; -+ } else { -+ devname = get_mixer_device(); -+ fd = open(devname, O_RDONLY); -+ g_free(devname); -+ dspfd = 0; -+ } - - /* - * We dont show any errors if this fails, as this is called -@@ -49,28 +57,40 @@ void oss_get_volume(int *l, int *r) - { - ioctl(fd, SOUND_MIXER_READ_DEVMASK, &devs); - if ((devs & SOUND_MASK_PCM) && (oss_cfg.use_master==0)) -- cmd = SOUND_MIXER_READ_PCM; -+ cmd = (dspfd != 0) ? SNDCTL_DSP_GETPLAYVOL : -+ SOUND_MIXER_READ_PCM; - else if ((devs & SOUND_MASK_VOLUME) && (oss_cfg.use_master==1)) - cmd = SOUND_MIXER_READ_VOLUME; - else - { -- close(fd); -+ if (dspfd == 0) -+ close(fd); - return; - } - ioctl(fd, cmd, &v); - *r = (v & 0xFF00) >> 8; - *l = (v & 0x00FF); -- close(fd); -+ if (dspfd == 0) -+ close(fd); - } - } - - void oss_set_volume(int l, int r) - { -- int fd, v, cmd, devs; -+ int fd, v, devs, dspfd; -+ long cmd; - gchar *devname; - -- devname = get_mixer_device(); -- fd = open(devname, O_RDONLY); -+ dspfd = oss_get_fd(); -+ if (oss_cfg.use_master == 0 && dspfd != -1) { -+ fd = dspfd; -+ dspfd = 1; -+ devname = g_strdup("<OSS FD>"); -+ } else { -+ devname = get_mixer_device(); -+ fd = open(devname, O_RDONLY); -+ dspfd = 0; -+ } - - if (fd != -1) - { -@@ -81,12 +101,14 @@ void oss_set_volume(int l, int r) - cmd = SOUND_MIXER_WRITE_VOLUME; - else - { -- close(fd); -+ if (dspfd == 0) -+ close(fd); - return; - } - v = (r << 8) | l; - ioctl(fd, cmd, &v); -- close(fd); -+ if (dspfd == 0) -+ close(fd); - } - else - g_warning("oss_set_volume(): Failed to open mixer device (%s): %s", |