]> code.delx.au - pulseaudio/commitdiff
fix module-detect on FreeBSD (patch from Diego "Flameeyes" Pettenó)
authorLennart Poettering <lennart@poettering.net>
Tue, 18 Jul 2006 19:19:52 +0000 (19:19 +0000)
committerLennart Poettering <lennart@poettering.net>
Tue, 18 Jul 2006 19:19:52 +0000 (19:19 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1102 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/modules/module-detect.c

index 3e4d2bf6358adb898fbfd3aaa9099b3c49fdc494..ebafa10dfb003cfc8faec343a2b6b2f4b9105c0d 100644 (file)
@@ -135,23 +135,29 @@ static int detect_oss(pa_core *c, int just_one) {
         line[strcspn(line, "\r\n")] = 0;
 
         if (!b) {
-            b = strcmp(line, "Audio devices:") == 0;
+            b = strcmp(line, "Audio devices:") == 0 || strcmp(line, "Installed devices:") == 0;
             continue;
         }
 
         if (line[0] == 0)
             break;
         
-        if (sscanf(line, "%u: ", &device) != 1)
-            continue;
-
-        if (device == 0)
-            snprintf(args, sizeof(args), "device=/dev/dsp");
-        else
-            snprintf(args, sizeof(args), "device=/dev/dsp%u", device);
-        
-        if (!pa_module_load(c, "module-oss", args))
-            continue;
+        if (sscanf(line, "%u: ", &device) == 1) {
+            if (device == 0)
+                snprintf(args, sizeof(args), "device=/dev/dsp");
+            else
+                snprintf(args, sizeof(args), "device=/dev/dsp%u", device);
+            
+            if (!pa_module_load(c, "module-oss", args))
+                continue;
+            
+       } else if (sscanf(line, "pcm%u: ", &device) == 1) {
+            /* FreeBSD support, the devices are named /dev/dsp0.0, dsp0.1 and so on */
+            snprintf(args, sizeof(args), "device=/dev/dsp%u.0", device);
+            
+            if (!pa_module_load(c, "module-oss", args))
+                continue;
+       }
 
         n++;