[pulseaudio-discuss] [PATCH 0/3] Use a new way to get notifications for Jack and ELD changes
David Henningsson
david.henningsson at canonical.com
Mon Sep 1 07:08:50 PDT 2014
This began as an investigation of this memleak bug:
https://bugs.freedesktop.org/show_bug.cgi?id=74213
It turned out that ALSA's snd_mixer API was using the hctl callbacks (and userdata)
to, among other things, deallocate the data it has previously allocated.
I couldn't just simply call the ALSA's callback from my own callback,
because there is no API to get the current/old callback function pointer (doh!).
While looking I also found a different way to accessing the mixer - by making a new
"mixer class". This mixer class gets notifications, provided that the class creates its
own mixer elements.
Finally, with everything moved over to the "mixer class" API instead of the hctl API,
we can remove a lot of "hctl_handle" variables all over.
David Henningsson (3):
alsa-util: Add functions for accessing mixer elements through mixer
class
alsa-mixer/card: Move to use the new mixer interface
alsa: Remove unnecessary hctl handles being passed around
src/modules/alsa/alsa-mixer.c | 14 ++---
src/modules/alsa/alsa-mixer.h | 6 +-
src/modules/alsa/alsa-sink.c | 6 +-
src/modules/alsa/alsa-source.c | 6 +-
src/modules/alsa/alsa-ucm.c | 7 +--
src/modules/alsa/alsa-util.c | 111 ++++++++++++++++++++++++------------
src/modules/alsa/alsa-util.h | 7 +--
src/modules/alsa/module-alsa-card.c | 50 ++++++++--------
8 files changed, 120 insertions(+), 87 deletions(-)
--
1.9.1
More information about the pulseaudio-discuss
mailing list