[pulseaudio-discuss] [PATCH 5/5] alsa-sink: Don't assume we were able to enable hw-volume or sync-volume
oku at iki.fi
oku at iki.fi
Mon Dec 20 08:47:24 PST 2010
From: Jyri Sarha <jyri.sarha at nokia.com>
---
src/modules/alsa/alsa-sink.c | 39 ++++++++++++++++++++-------------------
1 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index a8ba363..fd418fc 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -1762,29 +1762,30 @@ static int setup_mixer(struct userdata *u, pa_bool_t ignore_dB, pa_bool_t sync_v
pa_log_info("Using hardware mute control.");
}
- if (sync_volume) {
- u->mixer_pd = pa_alsa_mixer_pdata_new();
- mixer_callback = io_mixer_callback;
-
- if (pa_alsa_set_mixer_rtpoll(u->mixer_pd, u->mixer_handle, u->rtpoll) < 0) {
- pa_log("Failed to initialize file descriptor monitoring");
- return -1;
- }
+ if (u->sink->flags & PA_SINK_HW_VOLUME_CTRL) {
+ if (u->sink->flags & PA_SINK_SYNC_VOLUME) {
+ u->mixer_pd = pa_alsa_mixer_pdata_new();
+ mixer_callback = io_mixer_callback;
- } else {
- u->mixer_fdl = pa_alsa_fdlist_new();
- mixer_callback = ctl_mixer_callback;
+ if (pa_alsa_set_mixer_rtpoll(u->mixer_pd, u->mixer_handle, u->rtpoll) < 0) {
+ pa_log("Failed to initialize file descriptor monitoring");
+ return -1;
+ }
+ } else {
+ u->mixer_fdl = pa_alsa_fdlist_new();
+ mixer_callback = ctl_mixer_callback;
- if (pa_alsa_fdlist_set_mixer(u->mixer_fdl, u->mixer_handle, u->core->mainloop) < 0) {
- pa_log("Failed to initialize file descriptor monitoring");
- return -1;
+ if (pa_alsa_fdlist_set_mixer(u->mixer_fdl, u->mixer_handle, u->core->mainloop) < 0) {
+ pa_log("Failed to initialize file descriptor monitoring");
+ return -1;
+ }
}
- }
- if (u->mixer_path_set)
- pa_alsa_path_set_set_callback(u->mixer_path_set, u->mixer_handle, mixer_callback, u);
- else
- pa_alsa_path_set_callback(u->mixer_path, u->mixer_handle, mixer_callback, u);
+ if (u->mixer_path_set)
+ pa_alsa_path_set_set_callback(u->mixer_path_set, u->mixer_handle, mixer_callback, u);
+ else
+ pa_alsa_path_set_callback(u->mixer_path, u->mixer_handle, mixer_callback, u);
+ }
return 0;
}
--
1.7.1
More information about the pulseaudio-discuss
mailing list