aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/gnome-media/Makefile2
-rw-r--r--audio/gnome-media/files/patch-gmix_gmix.c42
-rw-r--r--audio/gnomemedia2/Makefile2
-rw-r--r--audio/gnomemedia2/files/patch-gmix_gmix.c42
4 files changed, 86 insertions, 2 deletions
diff --git a/audio/gnome-media/Makefile b/audio/gnome-media/Makefile
index 824b52f560f1..745beaabb4c8 100644
--- a/audio/gnome-media/Makefile
+++ b/audio/gnome-media/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/gnome-media/files/patch-gmix_gmix.c b/audio/gnome-media/files/patch-gmix_gmix.c
new file mode 100644
index 000000000000..d306c14e282d
--- /dev/null
+++ b/audio/gnome-media/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
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