From 8985f47fb00b78fea4be240e2c67e54b7d7699e8 Mon Sep 17 00:00:00 2001 From: marcus Date: Fri, 20 Jun 2003 00:47:33 +0000 Subject: Show real device names in gmix so it's easier to control individual sound cards. Submitted by: Hendrik Scholz --- audio/gnomemedia2/files/patch-gmix_gmix.c | 42 +++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 audio/gnomemedia2/files/patch-gmix_gmix.c (limited to 'audio/gnomemedia2/files') 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 -- cgit