mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-12-15 08:56:34 -05:00
No description
In single profile mode (headphone and speaker use different PCMs), when headphone is plugged in, pa_device_port_set_available() will call pa_core_update_default_sink/source() before posting PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_CHANGE to the gnome. And pa_core_update_default_sink/source() will post PA_SUBSCRIPTION_EVENT_SERVER | PA_SUBSCRIPTION_EVENT_CHANGE to the gnome. So the original event sequence is: 1. PA_SUBSCRIPTION_EVENT_SERVER | PA_SUBSCRIPTION_EVENT_CHANGE 2. PA_SUBSCRIPTION_EVENT_CARD | PA_SUBSCRIPTION_EVENT_CHANGE In gnome-control-center: When it receives PA_SUBSCRIPTION_EVENT_SERVER, it will call req_update_server_info () to update the panel; When it receives PA_SUBSCRIPTION_EVENT_CARD, it will update the card information, for example, when the headphone is connected, it will call gtk_list_store_append() to append the headphone. Let's use an example to clarify the correct sequence. Assume we plug in headphone. PA will set the default sink to headphone from speaker, and hope gnome sound setting "Output Deivce" to highlight to "headphone". PA should send PA_SUBSCRIPTION_EVENT_CARD firstly to notify gnome-control-center "headphone" is plugged in. And then it sends PA_SUBSCRIPTION_EVENT_SERVER to trigger sound setting to highlight to "headphone". Signed-off-by: Libin Yang <libin.yang@intel.com> |
||
|---|---|---|
| .gitlab/issue_templates | ||
| coverity | ||
| doc | ||
| doxygen | ||
| m4 | ||
| man | ||
| po | ||
| scripts | ||
| shell-completion | ||
| src | ||
| vala | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .mailmap | ||
| autogen.sh | ||
| bootstrap.sh | ||
| CODE_OF_CONDUCT.md | ||
| configure.ac | ||
| git-version-gen | ||
| GPL | ||
| LGPL | ||
| libpulse-mainloop-glib.pc.in | ||
| libpulse-simple.pc.in | ||
| libpulse.pc.in | ||
| LICENSE | ||
| Makefile.am | ||
| meson.build | ||
| meson_options.txt | ||
| NEWS | ||
| orc.mak | ||
| PROTOCOL | ||
| pulseaudio-text.svg | ||
| pulseaudio.supp | ||
| pulseaudio.svg | ||
| PulseAudioConfig.cmake.in | ||
| PulseAudioConfigVersion.cmake.in | ||
| README | ||
| todo | ||
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:
#pulseaudio on irc.freenode.org
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 __OPTIMIZE__ should be
disabled (look at src/pulsecore/core-util.h::pa_run_from_build_tree()),
this can be done by passing "CFLAGS=-O0" to the configure script:
./autogen.sh
CFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure
make
./src/pulseaudio -n -F src/default.pa -p $(pwd)/src/
SPELLING:
PulseAudio