--- pulseaudio.orig/Makefile 2016-10-25 12:53:23 UTC +++ pulseaudio/Makefile @@ -6,6 +6,7 @@ PORTNAME= pulseaudio PORTVERSION= 9.0 +PORTREVISION= 1 CATEGORIES= audio MASTER_SITES= http://freedesktop.org/software/pulseaudio/releases/ --- pulseaudio.orig/files/patch-src_modules_module-detect.c 2016-10-25 12:53:23 UTC +++ pulseaudio/files/patch-src_modules_module-detect.c @@ -1,12 +1,51 @@ --- src/modules/module-detect.c.orig 2016-05-10 12:28:04 UTC +++ src/modules/module-detect.c -@@ -160,8 +160,7 @@ static int detect_oss(pa_core *c, int ju +@@ -160,11 +160,45 @@ static int detect_oss(pa_core *c, int ju continue; } else if (sscanf(line, "pcm%u: ", &device) == 1) { - /* FreeBSD support, the devices are named /dev/dsp0.0, dsp0.1 and so on */ - pa_snprintf(args, sizeof(args), "device=/dev/dsp%u.0", device); + pa_snprintf(args, sizeof(args), "device=/dev/dsp%u", device); ++ pa_module *m = pa_module_load(c, "module-oss", args); - if (!pa_module_load(c, "module-oss", args)) +- if (!pa_module_load(c, "module-oss", args)) ++ if (!m) ++ continue; ++ ++ if (!pa_endswith(line, "default")) ++ continue; ++ ++ const char *p = strrchr(line, '>'); ++ ++ if (!p) continue; ++ ++ if (!c->default_sink && strstr(p, "play")) { ++ uint32_t idx = PA_IDXSET_INVALID; ++ pa_sink *s; ++ PA_IDXSET_FOREACH(s, c->sinks, idx) { ++ if (s->module == m) { ++ if (!pa_namereg_set_default_sink(c, s)) ++ pa_log_error("failed to set default sink for device: /dev/dsp%u", device); ++ ++ break; ++ } ++ } ++ } ++ ++ if (!c->default_source && strstr(p, "rec")) { ++ uint32_t idx = PA_IDXSET_INVALID; ++ pa_source *s; ++ PA_IDXSET_FOREACH(s, c->sources, idx) { ++ if (s->module == m) { ++ if (!pa_namereg_set_default_source(c, s)) ++ pa_log_error("failed to set default source for device: /dev/dsp%u", device); ++ ++ break; ++ } ++ } ++ } + } + + n++; --- pulseaudio.orig/files/pkg-message.in 2015-06-14 02:54:49 UTC +++ pulseaudio/files/pkg-message.in @@ -1,8 +1,10 @@ +Pulseaudio tries to determine default values for FreeBSD OSS driver at first +start, based on /dev/sndstat output. The hw.snd.default_unit sysctl may affect +these values, but restart of the Pulseaudio might be needed to rescan it again, +e.g. `pacmd exit`. -Pulseaudio doesn't know about the hw.snd.default_unit=3 sysctl for the -FreeBSD OSS driver that is used to select the active input/output. So -for Pulseaudio we also need to tell it which input/output to use. The -difference is that Pulseaudio has separate input and output configure lines. +Pulseaudio has separate input and output configure lines. You can change them +with using following commands: To change the default sink (output): # pacmd set-default-sink 3 @@ -11,7 +13,7 @@ This can also be set in %%PREFIX%%/etc/pulse/default.pa -Replace the number '3' with the new default your want to set. +Replace the number '3' with the new default you want to set. The audio/freedesktop-sound-theme is needed if the default sound files