summaryrefslogtreecommitdiff
path: root/audio/gnomemedia2
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2003-06-20 00:47:33 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2003-06-20 00:47:33 +0000
commitce944c6bc6af395488eb9d4e7e3e898cb1b7643a (patch)
tree344b01bf195515eb540e6c9f187c051d4123614e /audio/gnomemedia2
parentChange the LATEST_LINK to make this port easier to find. (diff)
Show real device names in gmix so it's easier to control individual
sound cards. Submitted by: Hendrik Scholz <hscholz@raisdorf.net>
Notes
Notes: svn path=/head/; revision=83337
Diffstat (limited to 'audio/gnomemedia2')
-rw-r--r--audio/gnomemedia2/Makefile2
-rw-r--r--audio/gnomemedia2/files/patch-gmix_gmix.c42
2 files changed, 43 insertions, 1 deletions
diff --git a/audio/gnomemedia2/Makefile b/audio/gnomemedia2/Makefile
index 824b52f560f1..745beaabb4c8 100644
--- a/audio/gnomemedia2/Makefile
+++ b/audio/gnomemedia2/Makefile
@@ -7,7 +7,7 @@
PORTNAME= gnomemedia2
PORTVERSION= 2.2.1.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= audio gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/gnome-media/2.2
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