aboutsummaryrefslogtreecommitdiffstats
path: root/audio/gnomemedia2/files
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2003-06-20 08:47:33 +0800
committermarcus <marcus@FreeBSD.org>2003-06-20 08:47:33 +0800
commit8985f47fb00b78fea4be240e2c67e54b7d7699e8 (patch)
treebd23a4ed8ea5931762784352c975d02d3532b568 /audio/gnomemedia2/files
parent709ef57a5101a47eba62cba5dc7de493a81ed5bb (diff)
downloadfreebsd-ports-gnome-8985f47fb00b78fea4be240e2c67e54b7d7699e8.tar.gz
freebsd-ports-gnome-8985f47fb00b78fea4be240e2c67e54b7d7699e8.tar.zst
freebsd-ports-gnome-8985f47fb00b78fea4be240e2c67e54b7d7699e8.zip
Show real device names in gmix so it's easier to control individual
sound cards. Submitted by: Hendrik Scholz <hscholz@raisdorf.net>
Diffstat (limited to 'audio/gnomemedia2/files')
-rw-r--r--audio/gnomemedia2/files/patch-gmix_gmix.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/audio/gnomemedia2/files/patch-gmix_gmix.c b/audio/gnomemedia2/files/patch-gmix_gmix.c
new file mode 100644
index 000000000000..d306c14e282d
--- /dev/null
+++ b/audio/gnomemedia2/files/patch-gmix_gmix.c
@@ -0,0 +1,42 @@
+--- gmix/gmix.c.orig Sun Mar 16 16:09:01 2003
++++ gmix/gmix.c Sun Mar 16 16:13:09 2003
+@@ -591,6 +591,11 @@
+ /* Masks for the channel data - OSS blows compared to ALSA */
+ int recmask, recsrc, stereodee;
+
++ /* FreeBSD device name detection */
++ FILE *sndstat;
++ char line[256];
++ char *devname, *p;
++
+ /*
+ * create new device configureation
+ */
+@@ -659,7 +665,26 @@
+ }
+ #else
+ new_device->card_name = g_strdup_printf ("OSS-%d-%d", num + 1, num + 1);
+- g_snprintf (new_device->info.name, 31, "Card %d", num+1);
++ /* get soundcard name from /dev/sndstat on FreeBSD */
++ sndstat = fopen("/dev/sndstat", "r");
++ if (!sndstat)
++ g_snprintf (new_device->info.name, 31, "Card %d", num+1);
++ else {
++ while (fgets (line, 255, sndstat)) {
++ if (!strncmp (line, "pcm", 3) && (atoi (&line[3]) == num))
++ {
++ devname = line;
++ while (*devname++ != '<')
++ ;
++ p = devname;
++ while (*p != '>')
++ p++;
++ *p = '\0';
++ g_snprintf (new_device->info.name, 31, devname);
++ }
++ }
++ fclose(sndstat);
++ }
+ #endif
+ /*
+ * several bitmasks describing the mixer