No description
Find a file
Charles Strahan af0c3bde27 macosx: track system default output/input device
module-coreaudio-detect creates one PulseAudio sink per CoreAudio device
and pins the default to whichever sink was last set. As a result,
changes to macOS's System Settings > Sound output (and hot-plug events
that flip the default) were not reflected in PulseAudio, so streams
played to the daemon's default sink kept routing to a stale device.

Register property listeners on kAudioHardwarePropertyDefaultOutputDevice
and kAudioHardwarePropertyDefaultInputDevice. On each change, resolve
the current CoreAudio default to the matching PulseAudio sink/source
and drive core->policy_default_sink/source via
pa_core_set_policy_default_sink/source. A user-set configured default
still takes precedence, matching the policy/configured layering used
by module-switch-on-connect.

CoreAudio notifications are multiplexed over the existing self-pipe
with an event-type byte so the main thread can dispatch each event
type distinctly. At init we sync once against the current CoreAudio
default, and PA_CORE_HOOK_SINK_PUT / PA_CORE_HOOK_SOURCE_PUT hooks
re-apply when a device module's sink appears after a default-change
notification has already arrived (hot-plug race).

A new follow_system_default=<bool> modarg (default true) disables
the behavior for anyone who prefers the old pinned semantics.
2026-04-27 13:53:53 -05:00
.gitlab doc: Add some contributor guidelines 2021-01-04 15:30:38 +00:00
coverity build: Add Coverity scan model 2017-03-06 08:22:33 +01:00
doc card: handle sticky profile flag 2021-06-10 10:30:58 +00:00
doxygen meson: doxygen and tests to feature options 2025-11-04 01:13:27 +00:00
man pactl, pacmd: Allow to unset the configured default sink or source 2023-03-25 20:55:48 +00:00
po Translated using Weblate (Occitan) 2025-12-18 20:40:35 +00:00
scripts meson: Add DEF file to export APIs in Windows 2023-03-16 13:05:44 +05:30
shell-completion shell-completion: Fix typo in --use-pid-file= suggestion 2023-10-24 22:53:51 +03:00
src macosx: track system default output/input device 2026-04-27 13:53:53 -05:00
subprojects build-sys: Add a wrap file for Orc 2024-03-22 08:53:46 -04:00
vala vala: Couple of libpulse binding fixes 2021-09-22 15:56:27 +00:00
.gitignore build-sys: Add a webrtc-audio-processing wrap file 2023-09-01 11:21:12 -04:00
.gitlab-ci.yml ci: Fetch tags by default before building 2025-09-15 13:15:55 -04:00
.mailmap add a .mailmap file for git shortlog 2009-02-04 22:41:45 +01:00
CODE_OF_CONDUCT.md Adopt a Code of Conduct 2018-09-26 02:39:00 +00:00
CONTRIBUTING.md CONTRIBUTING.md: fix another typo 2021-07-30 13:13:46 +00:00
git-version-gen git-version-gen: Avoid further processing when tarball-version is present 2015-10-20 16:55:23 +02:00
GPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
LGPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
libpulse-mainloop-glib.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse-simple.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
LICENSE qpaeq: change license from AGPL to LGPL v2.1 2017-09-19 21:29:44 +03:00
meson.build meson: add native to add_languages 2025-11-04 01:13:27 +00:00
meson_options.txt meson: doxygen and tests to feature options 2025-11-04 01:13:27 +00:00
NEWS Update NEWS for 17.0 2024-01-12 12:22:09 -05:00
PROTOCOL protocol-native: add message sending capability 2020-12-03 14:41:39 +00:00
pulseaudio-text.svg merge 'lennart' branch back into trunk. 2007-10-28 19:13:50 +00:00
pulseaudio.supp Add a Valgrind suppression file 2014-09-21 11:00:51 +03:00
pulseaudio.svg Add PulseAudio logo to tree. 2006-08-28 06:25:41 +00:00
PulseAudioConfig.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
PulseAudioConfigVersion.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
README doc: link to site documentation for IRC channels 2021-06-14 18:55:33 +03:00
todo build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30

PULSEAUDIO SOUND SERVER

WEB SITE:
	http://pulseaudio.org/

GIT:
	https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git

GitLab:
	https://gitlab.freedesktop.org/pulseaudio/pulseaudio

MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

GIT COMMITS MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits

TRAC/BUGZILLA TICKET CHANGES MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-bugs

IRC:
	https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/#ircandmatrix

FRESHMEAT:
	http://freshmeat.net/projects/pulseaudio/

OHLOH:
	http://www.ohloh.net/projects/4038

AUTHORS:
	Several

HACKING:
	In order to run pulseaudio from the build dir:
	  meson build
	  meson compile -C build
	  build/src/daemon/pulseaudio -n -F build/src/daemon/default.pa -p $(pwd)/build/src/modules/

SPELLING:
        PulseAudio