Path: blob/main/audio/alsa-plugins/files/patch-oss_ctl__oss.c
16462 views
--- oss/ctl_oss.c.orig 2024-06-10 09:18:39 UTC1+++ oss/ctl_oss.c2@@ -59,7 +59,7 @@ static const char *const vol_devices[SOUND_MIXER_NRDEV3[SOUND_MIXER_CD] = "CD Playback Volume",4[SOUND_MIXER_IMIX] = "Monitor Mix Playback Volume",5[SOUND_MIXER_ALTPCM] = "Headphone Playback Volume",6- [SOUND_MIXER_RECLEV] = "Capture Volume",7+ [SOUND_MIXER_RECLEV] = "Master Capture Volume",8[SOUND_MIXER_IGAIN] = "Capture Volume",9[SOUND_MIXER_OGAIN] = "Playback Volume",10[SOUND_MIXER_LINE1] = "Aux Playback Volume",11@@ -369,7 +369,9 @@ SND_CTL_PLUGIN_DEFINE_FUNC(oss)12{13snd_config_iterator_t it, next;14const char *device = "/dev/mixer";15+#ifndef __FreeBSD__16struct mixer_info mixinfo;17+#endif18int i, err, val;19snd_ctl_oss_t *oss;2021@@ -406,19 +408,29 @@ SND_CTL_PLUGIN_DEFINE_FUNC(oss)22goto error;23}2425+#ifndef __FreeBSD__26if (ioctl(oss->fd, SOUND_MIXER_INFO, &mixinfo) < 0) {27err = -errno;28SNDERR("Cannot get mixer info for device %s", device);29goto error;30}31+#endif3233oss->ext.version = SND_CTL_EXT_VERSION;34oss->ext.card_idx = 0; /* FIXME */35+#ifdef __FreeBSD__36+ strncpy(oss->ext.id, "fbsd", sizeof(oss->ext.id) - 1);37+ strcpy(oss->ext.driver, "FreeBSD/OSS plugin");38+ strncpy(oss->ext.name, "FreeBSD/OSS", sizeof(oss->ext.name) - 1);39+ strncpy(oss->ext.longname, "FreeBSD/OSS", sizeof(oss->ext.longname) - 1);40+ strncpy(oss->ext.mixername, "FreeBSD/OSS", sizeof(oss->ext.mixername) - 1);41+#else42strncpy(oss->ext.id, mixinfo.id, sizeof(oss->ext.id) - 1);43strcpy(oss->ext.driver, "OSS-Emulation");44strncpy(oss->ext.name, mixinfo.name, sizeof(oss->ext.name) - 1);45strncpy(oss->ext.longname, mixinfo.name, sizeof(oss->ext.longname) - 1);46strncpy(oss->ext.mixername, mixinfo.name, sizeof(oss->ext.mixername) - 1);47+#endif48oss->ext.poll_fd = -1;49oss->ext.callback = &oss_ext_callback;50oss->ext.private_data = oss;515253