mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2026-02-05 04:06:31 -05:00
No description
Disabling UCM devices might save some power, according to an earlier discussion [1]. Disable them when suspending sinks/sources, and enable them when unsuspending. However, doing only that much introduces problems. The hardware controls we track for volume and mute state can change as part of disabling the UCM device. Enabling it back does not restore it to its pre-suspend state, so the UCM-triggered changes to disable the device will show up on user interfaces and cause confusion. The volume/mute should not be kept in sync with hardware for inactive UCM devices [2]. Skip the callbacks for reading/changing volume/mute state if the UCM device is disabled. This way, the volume/mute controls for sinks/sources are essentially detached from the hardware controls until the UCM device is re-enabled. Finally, sync volume and mute state for the sinks/sources just after we re-enable the UCM devices, to restore things to the pre-suspend state. Combined with the above, this means we can still change volume/mute state in user interfaces while the sink/source is suspended, and its updated value will be applied to the UCM device when it's actually going to be used. [1] https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/294#note_522388 [2] https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/772#note_1872757 Co-developed-by: Tanu Kaskinen <tanuk@iki.fi> [Alper: Rebase, split enable/disable functions, skip volume/mute callbacks if disabled, sync mixer at unsuspend, edit message] Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> |
||
|---|---|---|
| .gitlab | ||
| coverity | ||
| doc | ||
| doxygen | ||
| man | ||
| po | ||
| scripts | ||
| shell-completion | ||
| src | ||
| subprojects | ||
| vala | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .mailmap | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| git-version-gen | ||
| GPL | ||
| LGPL | ||
| libpulse-mainloop-glib.pc.in | ||
| libpulse-simple.pc.in | ||
| libpulse.pc.in | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| NEWS | ||
| 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:
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